// defined in architecture specific module
use crate ::prelude::*;
s! {
pub struct sockaddr_un {
pub sun_family: crate ::sa_family_t,
pub sun_path: [c_char; 108 usize],
}
}
pub const AF_UNIX: c_int = 1 ;
pub const RTLD_DEFAULT: *mut c_void = -2 isize as *mut c_void;
pub const UTIME_OMIT: c_long = -1 ;
pub const AT_FDCWD: c_int = -2 ;
pub const O_DIRECTORY: c_int = 0 x200000;
pub const O_NOFOLLOW: c_int = 0 x100000;
pub const AT_EACCESS: c_int = 1 ;
pub const AT_SYMLINK_NOFOLLOW: c_int = 2 ;
pub const AT_SYMLINK_FOLLOW: c_int = 4 ;
pub const AT_REMOVEDIR: c_int = 8 ;
// signal.h
pub const SIG_BLOCK: c_int = 1 ;
pub const SIG_UNBLOCK: c_int = 2 ;
pub const SIG_SETMASK: c_int = 0 ;
pub const SIGHUP: c_int = 1 ;
pub const SIGINT: c_int = 2 ;
pub const SIGQUIT: c_int = 3 ;
pub const SIGILL: c_int = 4 ;
pub const SIGTRAP: c_int = 5 ;
pub const SIGABRT: c_int = 6 ;
pub const SIGEMT: c_int = 7 ;
pub const SIGFPE: c_int = 8 ;
pub const SIGKILL: c_int = 9 ;
pub const SIGBUS: c_int = 10 ;
pub const SIGSEGV: c_int = 11 ;
pub const SIGSYS: c_int = 12 ;
pub const SIGPIPE: c_int = 13 ;
pub const SIGALRM: c_int = 14 ;
pub const SIGTERM: c_int = 15 ;
pub const SIGURG: c_int = 16 ;
pub const SIGSTOP: c_int = 17 ;
pub const SIGTSTP: c_int = 18 ;
pub const SIGCONT: c_int = 19 ;
pub const SIGCHLD: c_int = 20 ;
pub const SIGCLD: c_int = 20 ;
pub const SIGTTIN: c_int = 21 ;
pub const SIGTTOU: c_int = 22 ;
pub const SIGIO: c_int = 23 ;
pub const SIGWINCH: c_int = 24 ;
pub const SIGUSR1: c_int = 25 ;
pub const SIGUSR2: c_int = 26 ;
pub const SIGRTMIN: c_int = 27 ;
pub const SIGRTMAX: c_int = 31 ;
pub const SIGXCPU: c_int = 24 ;
pub const SIGXFSZ: c_int = 25 ;
pub const SIGVTALRM: c_int = 26 ;
pub const SIGPROF: c_int = 27 ;
pub const SA_NOCLDSTOP: c_ulong = 0 x00000001;
pub const SA_SIGINFO: c_ulong = 0 x00000002;
pub const SA_ONSTACK: c_ulong = 0 x00000004;
pub const EAI_AGAIN: c_int = 2 ;
pub const EAI_BADFLAGS: c_int = 3 ;
pub const EAI_FAIL: c_int = 4 ;
pub const EAI_SERVICE: c_int = 9 ;
pub const EAI_SYSTEM: c_int = 11 ;
pub const EAI_OVERFLOW: c_int = 14 ;
pub const PTHREAD_STACK_MIN: size_t = 0 ;
// sys/wait.h
pub const WNOHANG: c_int = 1 ;
pub const WUNTRACED: c_int = 2 ;
// sys/socket.h
pub const SOMAXCONN: c_int = 128 ;
safe_f! {
pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & 0 xff) == 0 x7f
}
pub const fn WSTOPSIG(status: c_int) -> c_int {
// (status >> 8) & 0xff
WEXITSTATUS(status)
}
pub const fn WIFSIGNALED(status: c_int) -> bool {
((status & 0 x7f) > 0 ) && ((status & 0 x7f) < 0 x7f)
}
pub const fn WTERMSIG(status: c_int) -> c_int {
status & 0 x7f
}
pub const fn WIFEXITED(status: c_int) -> bool {
(status & 0 xff) == 0
}
pub const fn WEXITSTATUS(status: c_int) -> c_int {
(status >> 8 ) & 0 xff
}
// RTEMS doesn't have native WIFCONTINUED.
pub const fn WIFCONTINUED(_status: c_int) -> bool {
true
}
// RTEMS doesn't have native WCOREDUMP.
pub const fn WCOREDUMP(_status: c_int) -> bool {
false
}
}
extern "C" {
pub fn futimens(fd: c_int, times: *const crate ::timespec) -> c_int;
pub fn writev(fd: c_int, iov: *const crate ::iovec, iovcnt: c_int) -> ssize_t;
pub fn readv(fd: c_int, iov: *const crate ::iovec, iovcnt: c_int) -> ssize_t;
pub fn pthread_create(
native: *mut crate ::pthread_t,
attr: *const crate ::pthread_attr_t,
f: extern "C" fn (_: *mut c_void) -> *mut c_void,
value: *mut c_void,
) -> c_int;
pub fn pthread_condattr_setclock(
attr: *mut crate ::pthread_condattr_t,
clock_id: crate ::clockid_t,
) -> c_int;
pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int;
pub fn arc4random_buf(buf: *mut core::ffi::c_void, nbytes: size_t);
pub fn setgroups(ngroups: c_int, grouplist: *const crate ::gid_t) -> c_int;
}
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland