Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  bsd.rs

  Sprache: Rust
 

//! This file contains the BSD APIs available in Haiku. It corresponds to the
//! header files in `headers/compatibility/bsd`.
//!
//! Note that Haiku's BSD compatibility is a combination of system APIs and
//! utility libraries. There should only be system APIs in `libc`. When you are
//! trying to determine whether something should be included in this file, the
//! best indicator is whether it also exists in the BSD-specific definitions in
//! this libc crate.

use crate::prelude::*;

// stringlist.h (utility library)
// Note: this is kept because it was previously introduced
pub type StringList = _stringlist;

s! {
    // stringlist.h (utility library)
    // Note: this is kept because it was previously introduced
    pub struct _stringlist {
        pub sl_str: *mut *mut c_char,
        pub sl_max: size_t,
        pub sl_cur: size_t,
    }

    // sys/event.h
    pub struct kevent {
        pub ident: crate::uintptr_t,
        pub filter: c_short,
        pub flags: c_ushort,
        pub fflags: c_uint,
        pub data: i64,
        pub udata: *mut c_void,
        pub ext: [u64; 4],
    }

    // sys/link_elf.h
    pub struct dl_phdr_info {
        pub dlpi_addr: crate::Elf_Addr,
        pub dlpi_name: *const c_char,
        pub dlpi_phdr: *const crate::Elf_Phdr,
        pub dlpi_phnum: crate::Elf_Half,
    }
}

// sys/event.h
pub const EVFILT_READ: i16 = -1;
pub const EVFILT_WRITE: i16 = -2;
pub const EVFILT_PROC: i16 = -5;
pub const EV_ADD: u16 = 0x0001;
pub const EV_DELETE: u16 = 0x0002;
pub const EV_ONESHOT: u16 = 0x0010;
pub const EV_CLEAR: u16 = 0x0020;
pub const EV_EOF: u16 = 0x8000;
pub const EV_ERROR: u16 = 0x4000;
pub const NOTE_EXIT: u32 = 0x80000000;

// sys/ioccom.h
pub const IOC_VOID: c_ulong = 0x20000000;
pub const IOC_OUT: c_ulong = 0x40000000;
pub const IOC_IN: c_ulong = 0x80000000;
pub const IOC_INOUT: c_ulong = IOC_IN | IOC_OUT;
pub const IOC_DIRMASK: c_ulong = 0xe0000000;

#[link(name = "bsd")]
extern "C" {
    // stdlib.h
    pub fn daemon(nochdir: c_int, noclose: c_int) -> c_int;
    pub fn getprogname() -> *const c_char;
    pub fn setprogname(progname: *const c_char);
    pub fn arc4random() -> u32;
    pub fn arc4random_uniform(upper_bound: u32) -> u32;
    pub fn arc4random_buf(buf: *mut c_void, n: size_t);
    pub fn mkstemps(template: *mut c_char, suffixlen: c_int) -> c_int;
    pub fn strtonum(
        nptr: *const c_char,
        minval: c_longlong,
        maxval: c_longlong,
        errstr: *mut *const c_char,
    ) -> c_longlong;

    // pty.h
    pub fn openpty(
        amaster: *mut c_int,
        aslave: *mut c_int,
        name: *mut c_char,
        termp: *mut crate::termios,
        winp: *mut crate::winsize,
    ) -> c_int;
    pub fn login_tty(_fd: c_int) -> c_int;
    pub fn forkpty(
        amaster: *mut c_int,
        name: *mut c_char,
        termp: *mut crate::termios,
        winp: *mut crate::winsize,
    ) -> crate::pid_t;

    // string.h
    pub fn strsep(string: *mut *mut c_char, delimiters: *const c_char) -> *mut c_char;
    pub fn explicit_bzero(buf: *mut c_void, len: size_t);

    // stringlist.h (utility library)
    // Note: this is kept because it was previously introduced
    pub fn sl_init() -> *mut StringList;
    pub fn sl_add(sl: *mut StringList, n: *mut c_char) -> c_int;
    pub fn sl_free(sl: *mut StringList, i: c_int);
    pub fn sl_find(sl: *mut StringList, n: *mut c_char) -> *mut c_char;

    // sys/event.h
    pub fn kqueue() -> c_int;
    pub fn kevent(
        kq: c_int,
        changelist: *const kevent,
        nchanges: c_int,
        eventlist: *mut kevent,
        nevents: c_int,
        timeout: *const crate::timespec,
    ) -> c_int;

    // sys/link_elf.h
    pub fn dl_iterate_phdr(
        callback: Option<
            unsafe extern "C" fn(info: *mut dl_phdr_info, size: usize, data: *mut c_void) -> c_int,
        >,
        data: *mut c_void,
    ) -> c_int;

    // sys/time.h
    pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int;

    // sys/uov.h
    pub fn preadv(
        fd: c_int,
        iov: *const crate::iovec,
        iovcnt: c_int,
        offset: crate::off_t,
    ) -> ssize_t;
    pub fn pwritev(
        fd: c_int,
        iov: *const crate::iovec,
        iovcnt: c_int,
        offset: crate::off_t,
    ) -> ssize_t;

    // sys/wait.h
    pub fn wait4(
        pid: crate::pid_t,
        status: *mut c_int,
        options: c_int,
        rusage: *mut crate::rusage,
    ) -> crate::pid_t;
}

Messung V0.5 in Prozent
C=83 H=99 G=91

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=434850
#Domains=661743