// Generated by Lisette bindgen
// Source: syscall (Go stdlib)
// Go: 1.25.10
// Lisette: 0.2.1
import "go:sync"
pub enum Errno: uintptr {
E2BIG = 7,
EACCES = 13,
EADDRINUSE = 98,
EADDRNOTAVAIL = 99,
EADV = 68,
EAFNOSUPPORT = 97,
EAGAIN = 11,
EALREADY = 114,
EBADE = 52,
EBADF = 9,
EBADFD = 77,
EBADMSG = 74,
EBADR = 53,
EBADRQC = 56,
EBADSLT = 57,
EBFONT = 59,
EBUSY = 16,
ECANCELED = 125,
ECHILD = 10,
ECHRNG = 44,
ECOMM = 70,
ECONNABORTED = 103,
ECONNREFUSED = 111,
ECONNRESET = 104,
EDEADLK = 35,
EDEADLOCK = 35,
EDESTADDRREQ = 89,
EDOM = 33,
EDOTDOT = 73,
EDQUOT = 122,
EEXIST = 17,
EFAULT = 14,
EFBIG = 27,
EHOSTDOWN = 112,
EHOSTUNREACH = 113,
EHWPOISON = 133,
EIDRM = 43,
EILSEQ = 84,
EINPROGRESS = 115,
EINTR = 4,
EINVAL = 22,
EIO = 5,
EISCONN = 106,
EISDIR = 21,
EISNAM = 120,
EKEYEXPIRED = 127,
EKEYREJECTED = 129,
EKEYREVOKED = 128,
EL2HLT = 51,
EL2NSYNC = 45,
EL3HLT = 46,
EL3RST = 47,
ELIBACC = 79,
ELIBBAD = 80,
ELIBEXEC = 83,
ELIBMAX = 82,
ELIBSCN = 81,
ELNRNG = 48,
ELOOP = 40,
EMEDIUMTYPE = 124,
EMFILE = 24,
EMLINK = 31,
EMSGSIZE = 90,
EMULTIHOP = 72,
ENAMETOOLONG = 36,
ENAVAIL = 119,
ENETDOWN = 100,
ENETRESET = 102,
ENETUNREACH = 101,
ENFILE = 23,
ENOANO = 55,
ENOBUFS = 105,
ENOCSI = 50,
ENODATA = 61,
ENODEV = 19,
ENOENT = 2,
ENOEXEC = 8,
ENOKEY = 126,
ENOLCK = 37,
ENOLINK = 67,
ENOMEDIUM = 123,
ENOMEM = 12,
ENOMSG = 42,
ENONET = 64,
ENOPKG = 65,
ENOPROTOOPT = 92,
ENOSPC = 28,
ENOSR = 63,
ENOSTR = 60,
ENOSYS = 38,
ENOTBLK = 15,
ENOTCONN = 107,
ENOTDIR = 20,
ENOTEMPTY = 39,
ENOTNAM = 118,
ENOTRECOVERABLE = 131,
ENOTSOCK = 88,
ENOTSUP = 95,
ENOTTY = 25,
ENOTUNIQ = 76,
ENXIO = 6,
EOPNOTSUPP = 95,
EOVERFLOW = 75,
EOWNERDEAD = 130,
EPERM = 1,
EPFNOSUPPORT = 96,
EPIPE = 32,
EPROTO = 71,
EPROTONOSUPPORT = 93,
EPROTOTYPE = 91,
ERANGE = 34,
EREMCHG = 78,
EREMOTE = 66,
EREMOTEIO = 121,
ERESTART = 85,
ERFKILL = 132,
EROFS = 30,
ESHUTDOWN = 108,
ESOCKTNOSUPPORT = 94,
ESPIPE = 29,
ESRCH = 3,
ESRMNT = 69,
ESTALE = 116,
ESTRPIPE = 86,
ETIME = 62,
ETIMEDOUT = 110,
ETOOMANYREFS = 109,
ETXTBSY = 26,
EUCLEAN = 117,
EUNATCH = 49,
EUSERS = 87,
EWOULDBLOCK = 11,
EXDEV = 18,
EXFULL = 54,
}
/// Errors
pub const E2BIG: Errno = 7
/// Errors
pub const EACCES: Errno = 13
/// Errors
pub const EADDRINUSE: Errno = 98
/// Errors
pub const EADDRNOTAVAIL: Errno = 99
/// Errors
pub const EADV: Errno = 68
/// Errors
pub const EAFNOSUPPORT: Errno = 97
/// Errors
pub const EAGAIN: Errno = 11
/// Errors
pub const EALREADY: Errno = 114
/// Errors
pub const EBADE: Errno = 52
/// Errors
pub const EBADF: Errno = 9
/// Errors
pub const EBADFD: Errno = 77
/// Errors
pub const EBADMSG: Errno = 74
/// Errors
pub const EBADR: Errno = 53
/// Errors
pub const EBADRQC: Errno = 56
/// Errors
pub const EBADSLT: Errno = 57
/// Errors
pub const EBFONT: Errno = 59
/// Errors
pub const EBUSY: Errno = 16
/// Errors
pub const ECANCELED: Errno = 125
/// Errors
pub const ECHILD: Errno = 10
/// Errors
pub const ECHRNG: Errno = 44
/// Errors
pub const ECOMM: Errno = 70
/// Errors
pub const ECONNABORTED: Errno = 103
/// Errors
pub const ECONNREFUSED: Errno = 111
/// Errors
pub const ECONNRESET: Errno = 104
/// Errors
pub const EDEADLK: Errno = 35
/// Errors
pub const EDEADLOCK: Errno = 35
/// Errors
pub const EDESTADDRREQ: Errno = 89
/// Errors
pub const EDOM: Errno = 33
/// Errors
pub const EDOTDOT: Errno = 73
/// Errors
pub const EDQUOT: Errno = 122
/// Errors
pub const EEXIST: Errno = 17
/// Errors
pub const EFAULT: Errno = 14
/// Errors
pub const EFBIG: Errno = 27
/// Errors
pub const EHOSTDOWN: Errno = 112
/// Errors
pub const EHOSTUNREACH: Errno = 113
/// Errors
pub const EHWPOISON: Errno = 133
/// Errors
pub const EIDRM: Errno = 43
/// Errors
pub const EILSEQ: Errno = 84
/// Errors
pub const EINPROGRESS: Errno = 115
/// Errors
pub const EINTR: Errno = 4
/// Errors
pub const EINVAL: Errno = 22
/// Errors
pub const EIO: Errno = 5
/// Errors
pub const EISCONN: Errno = 106
/// Errors
pub const EISDIR: Errno = 21
/// Errors
pub const EISNAM: Errno = 120
/// Errors
pub const EKEYEXPIRED: Errno = 127
/// Errors
pub const EKEYREJECTED: Errno = 129
/// Errors
pub const EKEYREVOKED: Errno = 128
/// Errors
pub const EL2HLT: Errno = 51
/// Errors
pub const EL2NSYNC: Errno = 45
/// Errors
pub const EL3HLT: Errno = 46
/// Errors
pub const EL3RST: Errno = 47
/// Errors
pub const ELIBACC: Errno = 79
/// Errors
pub const ELIBBAD: Errno = 80
/// Errors
pub const ELIBEXEC: Errno = 83
/// Errors
pub const ELIBMAX: Errno = 82
/// Errors
pub const ELIBSCN: Errno = 81
/// Errors
pub const ELNRNG: Errno = 48
/// Errors
pub const ELOOP: Errno = 40
/// Errors
pub const EMEDIUMTYPE: Errno = 124
/// Errors
pub const EMFILE: Errno = 24
/// Errors
pub const EMLINK: Errno = 31
/// Errors
pub const EMSGSIZE: Errno = 90
/// Errors
pub const EMULTIHOP: Errno = 72
/// Errors
pub const ENAMETOOLONG: Errno = 36
/// Errors
pub const ENAVAIL: Errno = 119
/// Errors
pub const ENETDOWN: Errno = 100
/// Errors
pub const ENETRESET: Errno = 102
/// Errors
pub const ENETUNREACH: Errno = 101
/// Errors
pub const ENFILE: Errno = 23
/// Errors
pub const ENOANO: Errno = 55
/// Errors
pub const ENOBUFS: Errno = 105
/// Errors
pub const ENOCSI: Errno = 50
/// Errors
pub const ENODATA: Errno = 61
/// Errors
pub const ENODEV: Errno = 19
/// Errors
pub const ENOENT: Errno = 2
/// Errors
pub const ENOEXEC: Errno = 8
/// Errors
pub const ENOKEY: Errno = 126
/// Errors
pub const ENOLCK: Errno = 37
/// Errors
pub const ENOLINK: Errno = 67
/// Errors
pub const ENOMEDIUM: Errno = 123
/// Errors
pub const ENOMEM: Errno = 12
/// Errors
pub const ENOMSG: Errno = 42
/// Errors
pub const ENONET: Errno = 64
/// Errors
pub const ENOPKG: Errno = 65
/// Errors
pub const ENOPROTOOPT: Errno = 92
/// Errors
pub const ENOSPC: Errno = 28
/// Errors
pub const ENOSR: Errno = 63
/// Errors
pub const ENOSTR: Errno = 60
/// Errors
pub const ENOSYS: Errno = 38
/// Errors
pub const ENOTBLK: Errno = 15
/// Errors
pub const ENOTCONN: Errno = 107
/// Errors
pub const ENOTDIR: Errno = 20
/// Errors
pub const ENOTEMPTY: Errno = 39
/// Errors
pub const ENOTNAM: Errno = 118
/// Errors
pub const ENOTRECOVERABLE: Errno = 131
/// Errors
pub const ENOTSOCK: Errno = 88
/// Errors
pub const ENOTSUP: Errno = 95
/// Errors
pub const ENOTTY: Errno = 25
/// Errors
pub const ENOTUNIQ: Errno = 76
/// Errors
pub const ENXIO: Errno = 6
/// Errors
pub const EOPNOTSUPP: Errno = 95
/// Errors
pub const EOVERFLOW: Errno = 75
/// Errors
pub const EOWNERDEAD: Errno = 130
/// Errors
pub const EPERM: Errno = 1
/// Errors
pub const EPFNOSUPPORT: Errno = 96
/// Errors
pub const EPIPE: Errno = 32
/// Errors
pub const EPROTO: Errno = 71
/// Errors
pub const EPROTONOSUPPORT: Errno = 93
/// Errors
pub const EPROTOTYPE: Errno = 91
/// Errors
pub const ERANGE: Errno = 34
/// Errors
pub const EREMCHG: Errno = 78
/// Errors
pub const EREMOTE: Errno = 66
/// Errors
pub const EREMOTEIO: Errno = 121
/// Errors
pub const ERESTART: Errno = 85
/// Errors
pub const ERFKILL: Errno = 132
/// Errors
pub const EROFS: Errno = 30
/// Errors
pub const ESHUTDOWN: Errno = 108
/// Errors
pub const ESOCKTNOSUPPORT: Errno = 94
/// Errors
pub const ESPIPE: Errno = 29
/// Errors
pub const ESRCH: Errno = 3
/// Errors
pub const ESRMNT: Errno = 69
/// Errors
pub const ESTALE: Errno = 116
/// Errors
pub const ESTRPIPE: Errno = 86
/// Errors
pub const ETIME: Errno = 62
/// Errors
pub const ETIMEDOUT: Errno = 110
/// Errors
pub const ETOOMANYREFS: Errno = 109
/// Errors
pub const ETXTBSY: Errno = 26
/// Errors
pub const EUCLEAN: Errno = 117
/// Errors
pub const EUNATCH: Errno = 49
/// Errors
pub const EUSERS: Errno = 87
/// Errors
pub const EWOULDBLOCK: Errno = 11
/// Errors
pub const EXDEV: Errno = 18
/// Errors
pub const EXFULL: Errno = 54
pub enum Signal: int {
SIGABRT = 6,
SIGALRM = 14,
SIGBUS = 7,
SIGCHLD = 17,
SIGCLD = 17,
SIGCONT = 18,
SIGFPE = 8,
SIGHUP = 1,
SIGILL = 4,
SIGINT = 2,
SIGIO = 29,
SIGIOT = 6,
SIGKILL = 9,
SIGPIPE = 13,
SIGPOLL = 29,
SIGPROF = 27,
SIGPWR = 30,
SIGQUIT = 3,
SIGSEGV = 11,
SIGSTKFLT = 16,
SIGSTOP = 19,
SIGSYS = 31,
SIGTERM = 15,
SIGTRAP = 5,
SIGTSTP = 20,
SIGTTIN = 21,
SIGTTOU = 22,
SIGUNUSED = 31,
SIGURG = 23,
SIGUSR1 = 10,
SIGUSR2 = 12,
SIGVTALRM = 26,
SIGWINCH = 28,
SIGXCPU = 24,
SIGXFSZ = 25,
}
/// Signals
pub const SIGABRT: Signal = 6
/// Signals
pub const SIGALRM: Signal = 14
/// Signals
pub const SIGBUS: Signal = 7
/// Signals
pub const SIGCHLD: Signal = 17
/// Signals
pub const SIGCLD: Signal = 17
/// Signals
pub const SIGCONT: Signal = 18
/// Signals
pub const SIGFPE: Signal = 8
/// Signals
pub const SIGHUP: Signal = 1
/// Signals
pub const SIGILL: Signal = 4
/// Signals
pub const SIGINT: Signal = 2
/// Signals
pub const SIGIO: Signal = 29
/// Signals
pub const SIGIOT: Signal = 6
/// Signals
pub const SIGKILL: Signal = 9
/// Signals
pub const SIGPIPE: Signal = 13
/// Signals
pub const SIGPOLL: Signal = 29
/// Signals
pub const SIGPROF: Signal = 27
/// Signals
pub const SIGPWR: Signal = 30
/// Signals
pub const SIGQUIT: Signal = 3
/// Signals
pub const SIGSEGV: Signal = 11
/// Signals
pub const SIGSTKFLT: Signal = 16
/// Signals
pub const SIGSTOP: Signal = 19
/// Signals
pub const SIGSYS: Signal = 31
/// Signals
pub const SIGTERM: Signal = 15
/// Signals
pub const SIGTRAP: Signal = 5
/// Signals
pub const SIGTSTP: Signal = 20
/// Signals
pub const SIGTTIN: Signal = 21
/// Signals
pub const SIGTTOU: Signal = 22
/// Signals
pub const SIGUNUSED: Signal = 31
/// Signals
pub const SIGURG: Signal = 23
/// Signals
pub const SIGUSR1: Signal = 10
/// Signals
pub const SIGUSR2: Signal = 12
/// Signals
pub const SIGVTALRM: Signal = 26
/// Signals
pub const SIGWINCH: Signal = 28
/// Signals
pub const SIGXCPU: Signal = 24
/// Signals
pub const SIGXFSZ: Signal = 25
pub fn Accept(fd: int) -> Result<(int, Sockaddr), error>
pub fn Accept4(fd: int, flags: int) -> Result<(int, Sockaddr), error>
pub fn Access(path: string, mode: uint32) -> Result<(), error>
pub fn Acct(path: string) -> Result<(), error>
pub fn Adjtimex(buf: Ref<Timex>) -> Result<int, error>
/// AllThreadsSyscall performs a syscall on each OS thread of the Go
/// runtime. It first invokes the syscall on one thread. Should that
/// invocation fail, it returns immediately with the error status.
/// Otherwise, it invokes the syscall on all of the remaining threads
/// in parallel. It will terminate the program if it observes any
/// invoked syscall's return value differs from that of the first
/// invocation.
///
/// AllThreadsSyscall is intended for emulating simultaneous
/// process-wide state changes that require consistently modifying
/// per-thread state of the Go runtime.
///
/// AllThreadsSyscall is unaware of any threads that are launched
/// explicitly by cgo linked code, so the function always returns
/// [ENOTSUP] in binaries that use cgo.
pub fn AllThreadsSyscall(trap: uint, a1: uint, a2: uint, a3: uint) -> (uint, uint, Errno)
/// AllThreadsSyscall6 is like [AllThreadsSyscall], but extended to six
/// arguments.
pub fn AllThreadsSyscall6(
trap: uint,
a1: uint,
a2: uint,
a3: uint,
a4: uint,
a5: uint,
a6: uint,
) -> (uint, uint, Errno)
/// Deprecated: Use golang.org/x/net/bpf instead.
pub fn AttachLsf(fd: int, i: Slice<SockFilter>) -> Result<(), error>
pub fn Bind(fd: int, sa: Sockaddr) -> Result<(), error>
/// BindToDevice binds the socket associated with fd to device.
pub fn BindToDevice(fd: int, device: string) -> Result<(), error>
/// BytePtrFromString returns a pointer to a NUL-terminated array of
/// bytes containing the text of s. If s contains a NUL byte at any
/// location, it returns (nil, [EINVAL]).
pub fn BytePtrFromString(s: string) -> Result<Ref<byte>, error>
/// ByteSliceFromString returns a NUL-terminated slice of bytes
/// containing the text of s. If s contains a NUL byte at any
/// location, it returns (nil, [EINVAL]).
pub fn ByteSliceFromString(s: string) -> Result<Slice<byte>, error>
pub fn Chdir(path: string) -> Result<(), error>
pub fn Chmod(path: string, mode: uint32) -> Result<(), error>
pub fn Chown(path: string, uid: int, gid: int) -> Result<(), error>
pub fn Chroot(path: string) -> Result<(), error>
pub fn Clearenv()
pub fn Close(fd: int) -> Result<(), error>
pub fn CloseOnExec(fd: int)
/// CmsgLen returns the value to store in the Len field of the [Cmsghdr]
/// structure, taking into account any necessary alignment.
pub fn CmsgLen(datalen: int) -> int
/// CmsgSpace returns the number of bytes an ancillary element with
/// payload of the passed data length occupies.
pub fn CmsgSpace(datalen: int) -> int
pub fn Connect(fd: int, sa: Sockaddr) -> Result<(), error>
pub fn Creat(path: string, mode: uint32) -> Result<int, error>
/// Deprecated: Use golang.org/x/net/bpf instead.
pub fn DetachLsf(fd: int) -> Result<(), error>
pub fn Dup(oldfd: int) -> Result<int, error>
pub fn Dup3(oldfd: int, newfd: int, flags: int) -> Result<(), error>
pub fn Environ() -> Slice<string>
pub fn EpollCreate(size: int) -> Result<int, error>
pub fn EpollCreate1(flag: int) -> Result<int, error>
pub fn EpollCtl(epfd: int, op: int, fd: int, event: Ref<EpollEvent>) -> Result<(), error>
pub fn EpollWait(epfd: int, events: Slice<EpollEvent>, msec: int) -> Result<int, error>
/// Exec invokes the execve(2) system call.
pub fn Exec(argv0: string, argv: Slice<string>, envv: Slice<string>) -> Result<(), error>
pub fn Exit(code: int)
pub fn Faccessat(dirfd: int, path: string, mode: uint32, flags: int) -> Result<(), error>
pub fn Fallocate(fd: int, mode: uint32, off: int64, len: int64) -> Result<(), error>
pub fn Fchdir(fd: int) -> Result<(), error>
pub fn Fchmod(fd: int, mode: uint32) -> Result<(), error>
pub fn Fchmodat(dirfd: int, path: string, mode: uint32, flags: int) -> Result<(), error>
pub fn Fchown(fd: int, uid: int, gid: int) -> Result<(), error>
pub fn Fchownat(dirfd: int, path: string, uid: int, gid: int, flags: int) -> Result<(), error>
/// FcntlFlock performs a fcntl syscall for the [F_GETLK], [F_SETLK] or [F_SETLKW] command.
pub fn FcntlFlock(fd: uint, cmd: int, lk: Ref<Flock_t>) -> Result<(), error>
pub fn Fdatasync(fd: int) -> Result<(), error>
pub fn Flock(fd: int, how: int) -> Result<(), error>
/// Combination of fork and exec, careful to be thread safe.
pub fn ForkExec(argv0: string, argv: Slice<string>, attr: Ref<ProcAttr>) -> Result<int, error>
pub fn Fstat(fd: int, stat: Ref<Stat_t>) -> Result<(), error>
pub fn Fstatat(fd: int, path: string, stat: Ref<Stat_t>, flags: int) -> Result<(), error>
pub fn Fstatfs(fd: int, buf: Ref<Statfs_t>) -> Result<(), error>
pub fn Fsync(fd: int) -> Result<(), error>
pub fn Ftruncate(fd: int, length: int64) -> Result<(), error>
pub fn Futimes(fd: int, tv: Slice<Timeval>) -> Result<(), error>
pub fn Futimesat(dirfd: int, path: string, tv: Slice<Timeval>) -> Result<(), error>
pub fn Getcwd(buf: Slice<byte>) -> Result<int, error>
pub fn Getdents(fd: int, buf: Slice<byte>) -> Result<int, error>
pub fn Getegid() -> int
pub fn Getenv(key: string) -> Option<string>
pub fn Geteuid() -> int
pub fn Getgid() -> int
pub fn Getgroups() -> Result<Slice<int>, error>
pub fn Getpagesize() -> int
pub fn Getpeername(fd: int) -> Result<Sockaddr, error>
pub fn Getpgid(pid: int) -> Result<int, error>
pub fn Getpgrp() -> int
pub fn Getpid() -> int
pub fn Getppid() -> int
pub fn Getpriority(which: int, who: int) -> Result<int, error>
pub fn Getrlimit(resource: int, rlim: Ref<Rlimit>) -> Result<(), error>
pub fn Getrusage(who: int, rusage: Ref<Rusage>) -> Result<(), error>
pub fn Getsockname(fd: int) -> Result<Sockaddr, error>
pub fn GetsockoptICMPv6Filter(fd: int, level: int, opt: int) -> Result<Ref<ICMPv6Filter>, error>
pub fn GetsockoptIPMreq(fd: int, level: int, opt: int) -> Result<Ref<IPMreq>, error>
pub fn GetsockoptIPMreqn(fd: int, level: int, opt: int) -> Result<Ref<IPMreqn>, error>
pub fn GetsockoptIPv6MTUInfo(fd: int, level: int, opt: int) -> Result<Ref<IPv6MTUInfo>, error>
pub fn GetsockoptIPv6Mreq(fd: int, level: int, opt: int) -> Result<Ref<IPv6Mreq>, error>
pub fn GetsockoptInet4Addr(fd: int, level: int, opt: int) -> Result<Slice<byte>, error>
pub fn GetsockoptInt(fd: int, level: int, opt: int) -> Result<int, error>
pub fn GetsockoptUcred(fd: int, level: int, opt: int) -> Result<Ref<Ucred>, error>
pub fn Gettid() -> int
pub fn Gettimeofday(tv: Ref<Timeval>) -> Result<(), error>
pub fn Getuid() -> int
pub fn Getwd() -> Result<string, error>
pub fn Getxattr(path: string, attr: string, dest: Slice<byte>) -> Result<int, error>
pub fn InotifyAddWatch(fd: int, pathname: string, mask: uint32) -> Result<int, error>
pub fn InotifyInit() -> Result<int, error>
pub fn InotifyInit1(flags: int) -> Result<int, error>
pub fn InotifyRmWatch(fd: int, watchdesc: uint32) -> Result<int, error>
pub fn Kill(pid: int, sig: Signal) -> Result<(), error>
pub fn Klogctl(typ: int, buf: Slice<byte>) -> Result<int, error>
pub fn Lchown(path: string, uid: int, gid: int) -> Result<(), error>
pub fn Link(oldpath: string, newpath: string) -> Result<(), error>
pub fn Listen(s: int, n: int) -> Result<(), error>
pub fn Listxattr(path: string, dest: Slice<byte>) -> Result<int, error>
/// Deprecated: Use golang.org/x/net/bpf instead.
pub fn LsfJump(code: int, k: int, jt: int, jf: int) -> Ref<SockFilter>
/// Deprecated: Use golang.org/x/net/bpf instead.
pub fn LsfSocket(ifindex: int, proto: int) -> Result<int, error>
/// Deprecated: Use golang.org/x/net/bpf instead.
pub fn LsfStmt(code: int, k: int) -> Ref<SockFilter>
pub fn Lstat(path: string, stat: Ref<Stat_t>) -> Result<(), error>
pub fn Madvise(b: Slice<byte>, advice: int) -> Result<(), error>
pub fn Mkdir(path: string, mode: uint32) -> Result<(), error>
pub fn Mkdirat(dirfd: int, path: string, mode: uint32) -> Result<(), error>
pub fn Mkfifo(path: string, mode: uint32) -> Result<(), error>
pub fn Mknod(path: string, mode: uint32, dev: int) -> Result<(), error>
pub fn Mknodat(dirfd: int, path: string, mode: uint32, dev: int) -> Result<(), error>
pub fn Mlock(b: Slice<byte>) -> Result<(), error>
pub fn Mlockall(flags: int) -> Result<(), error>
pub fn Mmap(fd: int, offset: int64, length: int, prot: int, flags: int) -> Result<Slice<byte>, error>
pub fn Mount(
source: string,
target: string,
fstype: string,
flags: uint,
data: string,
) -> Result<(), error>
pub fn Mprotect(b: Slice<byte>, prot: int) -> Result<(), error>
pub fn Munlock(b: Slice<byte>) -> Result<(), error>
pub fn Munlockall() -> Result<(), error>
pub fn Munmap(b: Slice<byte>) -> Result<(), error>
pub fn Nanosleep(time: Ref<Timespec>, leftover: Ref<Timespec>) -> Result<(), error>
/// NetlinkRIB returns routing information base, as known as RIB, which
/// consists of network facility information, states and parameters.
pub fn NetlinkRIB(proto: int, family: int) -> Result<Slice<byte>, error>
/// NsecToTimespec converts a number of nanoseconds into a [Timespec].
pub fn NsecToTimespec(nsec: int64) -> Timespec
/// NsecToTimeval converts a number of nanoseconds into a [Timeval].
pub fn NsecToTimeval(nsec: int64) -> Timeval
pub fn Open(path: string, mode: int, perm: uint32) -> Result<int, error>
pub fn Openat(dirfd: int, path: string, flags: int, mode: uint32) -> Result<int, error>
/// ParseDirent parses up to max directory entries in buf,
/// appending the names to names. It returns the number of
/// bytes consumed from buf, the number of entries added
/// to names, and the new names slice.
pub fn ParseDirent(buf: Slice<byte>, max: int, names: Slice<string>) -> (int, int, Slice<string>)
/// ParseNetlinkMessage parses b as an array of netlink messages and
/// returns the slice containing the NetlinkMessage structures.
pub fn ParseNetlinkMessage(b: Slice<byte>) -> Result<Slice<NetlinkMessage>, error>
/// ParseNetlinkRouteAttr parses m's payload as an array of netlink
/// route attributes and returns the slice containing the
/// NetlinkRouteAttr structures.
pub fn ParseNetlinkRouteAttr(m: Ref<NetlinkMessage>) -> Result<Slice<NetlinkRouteAttr>, error>
/// ParseSocketControlMessage parses b as an array of socket control
/// messages.
pub fn ParseSocketControlMessage(b: Slice<byte>) -> Result<Slice<SocketControlMessage>, error>
/// ParseUnixCredentials decodes a socket control message that contains
/// credentials in a Ucred structure. To receive such a message, the
/// SO_PASSCRED option must be enabled on the socket.
pub fn ParseUnixCredentials(m: Ref<SocketControlMessage>) -> Result<Ref<Ucred>, error>
/// ParseUnixRights decodes a socket control message that contains an
/// integer array of open file descriptors from another process.
pub fn ParseUnixRights(m: Ref<SocketControlMessage>) -> Result<Slice<int>, error>
pub fn Pause() -> Result<(), error>
pub fn Pipe(mut p: Slice<int>) -> Result<(), error>
pub fn Pipe2(p: Slice<int>, flags: int) -> Result<(), error>
pub fn PivotRoot(newroot: string, putold: string) -> Result<(), error>
pub fn Pread(fd: int, mut p: Slice<byte>, offset: int64) -> Result<int, error>
pub fn PtraceAttach(pid: int) -> Result<(), error>
pub fn PtraceCont(pid: int, signal: int) -> Result<(), error>
pub fn PtraceDetach(pid: int) -> Result<(), error>
pub fn PtraceGetEventMsg(pid: int) -> Result<uint, error>
pub fn PtraceGetRegs(pid: int, regsout: Ref<PtraceRegs>) -> Result<(), error>
pub fn PtracePeekData(pid: int, addr: uint, out: Slice<byte>) -> Result<int, error>
pub fn PtracePeekText(pid: int, addr: uint, out: Slice<byte>) -> Result<int, error>
pub fn PtracePokeData(pid: int, addr: uint, data: Slice<byte>) -> Result<int, error>
pub fn PtracePokeText(pid: int, addr: uint, data: Slice<byte>) -> Result<int, error>
pub fn PtraceSetOptions(pid: int, options: int) -> Result<(), error>
pub fn PtraceSetRegs(pid: int, regs: Ref<PtraceRegs>) -> Result<(), error>
pub fn PtraceSingleStep(pid: int) -> Result<(), error>
pub fn PtraceSyscall(pid: int, signal: int) -> Result<(), error>
pub fn Pwrite(fd: int, p: Slice<byte>, offset: int64) -> Result<int, error>
pub fn RawSyscall(trap: uint, a1: uint, a2: uint, a3: uint) -> (uint, uint, Errno)
pub fn RawSyscall6(
trap: uint,
a1: uint,
a2: uint,
a3: uint,
a4: uint,
a5: uint,
a6: uint,
) -> (uint, uint, Errno)
pub fn Read(fd: int, mut p: Slice<byte>) -> Result<int, error>
pub fn ReadDirent(fd: int, mut buf: Slice<byte>) -> Result<int, error>
pub fn Readlink(path: string, mut buf: Slice<byte>) -> Result<int, error>
pub fn Reboot(cmd: int) -> Result<(), error>
pub fn Recvfrom(fd: int, mut p: Slice<byte>, flags: int) -> Result<(int, Sockaddr), error>
pub fn Recvmsg(fd: int, mut p: Slice<byte>, mut oob: Slice<byte>, flags: int) -> Result<(int, int, int, Sockaddr), error>
pub fn Removexattr(path: string, attr: string) -> Result<(), error>
pub fn Rename(oldpath: string, newpath: string) -> Result<(), error>
pub fn Renameat(olddirfd: int, oldpath: string, newdirfd: int, newpath: string) -> Result<(), error>
pub fn Rmdir(path: string) -> Result<(), error>
pub fn Seek(fd: int, offset: int64, whence: int) -> Result<int64, error>
pub fn Select(
nfd: int,
r: Ref<FdSet>,
w: Ref<FdSet>,
e: Ref<FdSet>,
timeout: Ref<Timeval>,
) -> Result<int, error>
pub fn Sendfile(outfd: int, infd: int, offset: Ref<int64>, count: int) -> Result<int, error>
pub fn Sendmsg(
fd: int,
p: Slice<byte>,
oob: Slice<byte>,
to: Sockaddr,
flags: int,
) -> Result<(), error>
pub fn SendmsgN(
fd: int,
p: Slice<byte>,
oob: Slice<byte>,
to: Sockaddr,
flags: int,
) -> Result<int, error>
pub fn Sendto(fd: int, p: Slice<byte>, flags: int, to: Sockaddr) -> Result<(), error>
/// Deprecated: Use golang.org/x/net/bpf instead.
pub fn SetLsfPromisc(name: string, m: bool) -> Result<(), error>
pub fn SetNonblock(fd: int, nonblocking: bool) -> Result<(), error>
pub fn Setdomainname(p: Slice<byte>) -> Result<(), error>
pub fn Setegid(egid: int) -> Result<(), error>
pub fn Setenv(key: string, value: string) -> Result<(), error>
pub fn Seteuid(euid: int) -> Result<(), error>
pub fn Setfsgid(gid: int) -> Result<(), error>
pub fn Setfsuid(uid: int) -> Result<(), error>
pub fn Setgid(gid: int) -> Result<(), error>
pub fn Setgroups(gids: Slice<int>) -> Result<(), error>
pub fn Sethostname(p: Slice<byte>) -> Result<(), error>
pub fn Setpgid(pid: int, pgid: int) -> Result<(), error>
pub fn Setpriority(which: int, who: int, prio: int) -> Result<(), error>
pub fn Setregid(rgid: int, egid: int) -> Result<(), error>
pub fn Setresgid(rgid: int, egid: int, sgid: int) -> Result<(), error>
pub fn Setresuid(ruid: int, euid: int, suid: int) -> Result<(), error>
pub fn Setreuid(ruid: int, euid: int) -> Result<(), error>
pub fn Setrlimit(resource: int, rlim: Ref<Rlimit>) -> Result<(), error>
pub fn Setsid() -> Result<int, error>
pub fn SetsockoptByte(fd: int, level: int, opt: int, value: byte) -> Result<(), error>
pub fn SetsockoptICMPv6Filter(
fd: int,
level: int,
opt: int,
filter: Ref<ICMPv6Filter>,
) -> Result<(), error>
pub fn SetsockoptIPMreq(fd: int, level: int, opt: int, mreq: Ref<IPMreq>) -> Result<(), error>
pub fn SetsockoptIPMreqn(fd: int, level: int, opt: int, mreq: Ref<IPMreqn>) -> Result<(), error>
pub fn SetsockoptIPv6Mreq(fd: int, level: int, opt: int, mreq: Ref<IPv6Mreq>) -> Result<(), error>
// SKIPPED: SetsockoptInet4Addr - array-currently-not-representable
// fixed-size array cannot currently be represented in Lisette
pub fn SetsockoptInt(fd: int, level: int, opt: int, value: int) -> Result<(), error>
pub fn SetsockoptLinger(fd: int, level: int, opt: int, l: Ref<Linger>) -> Result<(), error>
pub fn SetsockoptString(fd: int, level: int, opt: int, s: string) -> Result<(), error>
pub fn SetsockoptTimeval(fd: int, level: int, opt: int, tv: Ref<Timeval>) -> Result<(), error>
pub fn Settimeofday(tv: Ref<Timeval>) -> Result<(), error>
pub fn Setuid(uid: int) -> Result<(), error>
pub fn Setxattr(path: string, attr: string, data: Slice<byte>, flags: int) -> Result<(), error>
pub fn Shutdown(fd: int, how: int) -> Result<(), error>
/// SlicePtrFromStrings converts a slice of strings to a slice of
/// pointers to NUL-terminated byte arrays. If any string contains
/// a NUL byte, it returns (nil, [EINVAL]).
pub fn SlicePtrFromStrings(ss: Slice<string>) -> Result<Slice<Ref<byte>>, error>
pub fn Socket(domain: int, typ: int, proto: int) -> Result<int, error>
pub fn Socketpair(domain: int, typ: int, proto: int) -> Result<Slice<int>, error>
pub fn Splice(
rfd: int,
roff: Ref<int64>,
wfd: int,
woff: Ref<int64>,
len: int,
flags: int,
) -> Result<int64, error>
/// StartProcess wraps [ForkExec] for package os.
pub fn StartProcess(argv0: string, argv: Slice<string>, attr: Ref<ProcAttr>) -> Result<(int, uint), error>
pub fn Stat(path: string, stat: Ref<Stat_t>) -> Result<(), error>
pub fn Statfs(path: string, buf: Ref<Statfs_t>) -> Result<(), error>
/// StringBytePtr returns a pointer to a NUL-terminated array of bytes.
/// If s contains a NUL byte this function panics instead of returning
/// an error.
///
/// Deprecated: Use [BytePtrFromString] instead.
pub fn StringBytePtr(s: string) -> Ref<byte>
/// StringByteSlice converts a string to a NUL-terminated []byte,
/// If s contains a NUL byte this function panics instead of
/// returning an error.
///
/// Deprecated: Use ByteSliceFromString instead.
pub fn StringByteSlice(s: string) -> Slice<byte>
/// StringSlicePtr converts a slice of strings to a slice of pointers
/// to NUL-terminated byte arrays. If any string contains a NUL byte
/// this function panics instead of returning an error.
///
/// Deprecated: Use [SlicePtrFromStrings] instead.
pub fn StringSlicePtr(ss: Slice<string>) -> Slice<Ref<byte>>
pub fn Symlink(oldpath: string, newpath: string) -> Result<(), error>
pub fn Sync()
pub fn SyncFileRange(fd: int, off: int64, n: int64, flags: int) -> Result<(), error>
pub fn Syscall(trap: uint, a1: uint, a2: uint, a3: uint) -> (uint, uint, Errno)
pub fn Syscall6(
trap: uint,
a1: uint,
a2: uint,
a3: uint,
a4: uint,
a5: uint,
a6: uint,
) -> (uint, uint, Errno)
pub fn Sysinfo(info: Ref<Sysinfo_t>) -> Result<(), error>
pub fn Tee(rfd: int, wfd: int, len: int, flags: int) -> Result<int64, error>
pub fn Tgkill(tgid: int, tid: int, sig: Signal) -> Result<(), error>
pub fn Time(t: Ref<Time_t>) -> Result<Time_t, error>
pub fn Times(tms: Ref<Tms>) -> Result<uint, error>
/// TimespecToNsec returns the time stored in ts as nanoseconds.
pub fn TimespecToNsec(ts: Timespec) -> int64
/// TimevalToNsec returns the time stored in tv as nanoseconds.
pub fn TimevalToNsec(tv: Timeval) -> int64
pub fn Truncate(path: string, length: int64) -> Result<(), error>
pub fn Umask(mask: int) -> int
pub fn Uname(buf: Ref<Utsname>) -> Result<(), error>
/// UnixCredentials encodes credentials into a socket control message
/// for sending to another process. This can be used for
/// authentication.
pub fn UnixCredentials(ucred: Ref<Ucred>) -> Slice<byte>
/// UnixRights encodes a set of open file descriptors into a socket
/// control message for sending to another process.
pub fn UnixRights(fds: VarArgs<int>) -> Slice<byte>
pub fn Unlink(path: string) -> Result<(), error>
pub fn Unlinkat(dirfd: int, path: string) -> Result<(), error>
pub fn Unmount(target: string, flags: int) -> Result<(), error>
pub fn Unsetenv(key: string) -> Result<(), error>
pub fn Unshare(flags: int) -> Result<(), error>
pub fn Utime(path: string, buf: Ref<Utimbuf>) -> Result<(), error>
pub fn Utimes(path: string, tv: Slice<Timeval>) -> Result<(), error>
pub fn UtimesNano(path: string, ts: Slice<Timespec>) -> Result<(), error>
pub fn Wait4(
pid: int,
wstatus: Ref<WaitStatus>,
options: int,
rusage: Ref<Rusage>,
) -> Result<int, error>
pub fn Write(fd: int, p: Slice<byte>) -> Result<int, error>
pub struct Cmsghdr {
pub Len: uint64,
pub Level: int32,
pub Type: int32,
}
/// Conn is implemented by some types in the net and os packages to provide
/// access to the underlying file descriptor or handle.
pub interface Conn {
fn SyscallConn() -> Result<RawConn, error>
}
/// Credential holds user and group identities to be assumed
/// by a child process started by [StartProcess].
pub struct Credential {
pub Uid: uint32,
pub Gid: uint32,
pub Groups: Slice<uint32>,
pub NoSetGroups: bool,
}
pub struct Dirent {
pub Ino: uint64,
pub Off: int64,
pub Reclen: uint16,
pub Type: uint8,
// SKIPPED field "Name": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct EpollEvent {
pub Events: uint32,
pub Fd: int32,
pub Pad: int32,
}
// SKIPPED field "Bits": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub type FdSet
pub struct Flock_t {
pub Type: int16,
pub Whence: int16,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Start: int64,
pub Len: int64,
pub Pid: int32,
// SKIPPED field "Pad_cgo_1": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
// SKIPPED field "X__val": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub type Fsid
// SKIPPED field "Data": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub type ICMPv6Filter
// SKIPPED field "Multiaddr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Interface": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub type IPMreq
pub struct IPMreqn {
// SKIPPED field "Multiaddr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Address": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Ifindex: int32,
}
pub struct IPv6MTUInfo {
pub Addr: RawSockaddrInet6,
pub Mtu: uint32,
}
pub struct IPv6Mreq {
// SKIPPED field "Multiaddr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Interface: uint32,
}
pub struct IfAddrmsg {
pub Family: uint8,
pub Prefixlen: uint8,
pub Flags: uint8,
pub Scope: uint8,
pub Index: uint32,
}
pub struct IfInfomsg {
pub Family: uint8,
pub X__ifi_pad: uint8,
pub Type: uint16,
pub Index: int32,
pub Flags: uint32,
pub Change: uint32,
}
pub struct Inet4Pktinfo {
pub Ifindex: int32,
// SKIPPED field "Spec_dst": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct Inet6Pktinfo {
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Ifindex: uint32,
}
pub struct InotifyEvent {
pub Wd: int32,
pub Mask: uint32,
pub Cookie: uint32,
pub Len: uint32,
// SKIPPED field "Name": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct Iovec {
pub Base: Option<Ref<byte>>,
pub Len: uint64,
}
pub struct Linger {
pub Onoff: int32,
pub Linger: int32,
}
pub struct Msghdr {
pub Name: Option<Ref<byte>>,
pub Namelen: uint32,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Iov: Option<Ref<Iovec>>,
pub Iovlen: uint64,
pub Control: Option<Ref<byte>>,
pub Controllen: uint64,
pub Flags: int32,
// SKIPPED field "Pad_cgo_1": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
/// NetlinkMessage represents a netlink message.
pub struct NetlinkMessage {
pub Header: NlMsghdr,
pub Data: Slice<byte>,
}
/// NetlinkRouteAttr represents a netlink route attribute.
pub struct NetlinkRouteAttr {
pub Attr: RtAttr,
pub Value: Slice<byte>,
}
/// NetlinkRouteRequest represents a request message to receive routing
/// and link states from the kernel.
pub struct NetlinkRouteRequest {
pub Header: NlMsghdr,
pub Data: RtGenmsg,
}
pub struct NlAttr {
pub Len: uint16,
pub Type: uint16,
}
pub struct NlMsgerr {
pub Error: int32,
pub Msg: NlMsghdr,
}
pub struct NlMsghdr {
pub Len: uint32,
pub Type: uint16,
pub Flags: uint16,
pub Seq: uint32,
pub Pid: uint32,
}
/// ProcAttr holds attributes that will be applied to a new process started
/// by [StartProcess].
pub struct ProcAttr {
pub Dir: string,
pub Env: Slice<string>,
pub Files: Slice<uint>,
pub Sys: Option<Ref<SysProcAttr>>,
}
pub struct PtraceRegs {
// SKIPPED field "Regs": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Sp: uint64,
pub Pc: uint64,
pub Pstate: uint64,
}
/// A RawConn is a raw network connection.
pub interface RawConn {
fn Control(f: fn(uint) -> ()) -> Result<(), error>
fn Read(f: fn(uint) -> bool) -> Result<(), error>
fn Write(f: fn(uint) -> bool) -> Result<(), error>
}
pub struct RawSockaddr {
pub Family: uint16,
// SKIPPED field "Data": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct RawSockaddrAny {
pub Addr: RawSockaddr,
// SKIPPED field "Pad": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct RawSockaddrInet4 {
pub Family: uint16,
pub Port: uint16,
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Zero": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct RawSockaddrInet6 {
pub Family: uint16,
pub Port: uint16,
pub Flowinfo: uint32,
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Scope_id: uint32,
}
pub struct RawSockaddrLinklayer {
pub Family: uint16,
pub Protocol: uint16,
pub Ifindex: int32,
pub Hatype: uint16,
pub Pkttype: uint8,
pub Halen: uint8,
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct RawSockaddrNetlink {
pub Family: uint16,
pub Pad: uint16,
pub Pid: uint32,
pub Groups: uint32,
}
pub struct RawSockaddrUnix {
pub Family: uint16,
// SKIPPED field "Path": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct Rlimit {
pub Cur: uint64,
pub Max: uint64,
}
pub struct RtAttr {
pub Len: uint16,
pub Type: uint16,
}
pub struct RtGenmsg {
pub Family: uint8,
}
pub struct RtMsg {
pub Family: uint8,
pub Dst_len: uint8,
pub Src_len: uint8,
pub Tos: uint8,
pub Table: uint8,
pub Protocol: uint8,
pub Scope: uint8,
pub Type: uint8,
pub Flags: uint32,
}
pub struct RtNexthop {
pub Len: uint16,
pub Flags: uint8,
pub Hops: uint8,
pub Ifindex: int32,
}
pub struct Rusage {
pub Utime: Timeval,
pub Stime: Timeval,
pub Maxrss: int64,
pub Ixrss: int64,
pub Idrss: int64,
pub Isrss: int64,
pub Minflt: int64,
pub Majflt: int64,
pub Nswap: int64,
pub Inblock: int64,
pub Oublock: int64,
pub Msgsnd: int64,
pub Msgrcv: int64,
pub Nsignals: int64,
pub Nvcsw: int64,
pub Nivcsw: int64,
}
pub struct SockFilter {
pub Code: uint16,
pub Jt: uint8,
pub Jf: uint8,
pub K: uint32,
}
pub struct SockFprog {
pub Len: uint16,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Filter: Option<Ref<SockFilter>>,
}
pub interface Sockaddr {}
pub struct SockaddrInet4 {
pub Port: int,
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct SockaddrInet6 {
pub Port: int,
pub ZoneId: uint32,
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct SockaddrLinklayer {
pub Protocol: uint16,
pub Ifindex: int,
pub Hatype: uint16,
pub Pkttype: uint8,
pub Halen: uint8,
// SKIPPED field "Addr": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct SockaddrNetlink {
pub Family: uint16,
pub Pad: uint16,
pub Pid: uint32,
pub Groups: uint32,
}
pub struct SockaddrUnix {
pub Name: string,
}
/// SocketControlMessage represents a socket control message.
pub struct SocketControlMessage {
pub Header: Cmsghdr,
pub Data: Slice<byte>,
}
pub struct Stat_t {
pub Dev: uint64,
pub Ino: uint64,
pub Mode: uint32,
pub Nlink: uint32,
pub Uid: uint32,
pub Gid: uint32,
pub Rdev: uint64,
pub X__pad1: uint64,
pub Size: int64,
pub Blksize: int32,
pub X__pad2: int32,
pub Blocks: int64,
pub Atim: Timespec,
pub Mtim: Timespec,
pub Ctim: Timespec,
// SKIPPED field "X__glibc_reserved": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct Statfs_t {
pub Type: int64,
pub Bsize: int64,
pub Blocks: uint64,
pub Bfree: uint64,
pub Bavail: uint64,
pub Files: uint64,
pub Ffree: uint64,
pub Fsid: Fsid,
pub Namelen: int64,
pub Frsize: int64,
pub Flags: int64,
// SKIPPED field "Spare": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct SysProcAttr {
pub Chroot: string,
pub Credential: Option<Ref<Credential>>,
pub Ptrace: bool,
pub Setsid: bool,
pub Setpgid: bool,
pub Setctty: bool,
pub Noctty: bool,
pub Ctty: int,
pub Foreground: bool,
pub Pgid: int,
pub Pdeathsig: Signal,
pub Cloneflags: uint,
pub Unshareflags: uint,
pub UidMappings: Slice<SysProcIDMap>,
pub GidMappings: Slice<SysProcIDMap>,
pub GidMappingsEnableSetgroups: bool,
pub AmbientCaps: Slice<uint>,
pub UseCgroupFD: bool,
pub CgroupFD: int,
pub PidFD: Option<int>,
}
/// SysProcIDMap holds Container ID to Host ID mappings used for User Namespaces in Linux.
/// See user_namespaces(7).
///
/// Note that User Namespaces are not available on a number of popular Linux
/// versions (due to security issues), or are available but subject to AppArmor
/// restrictions like in Ubuntu 24.04.
pub struct SysProcIDMap {
pub ContainerID: int,
pub HostID: int,
pub Size: int,
}
pub struct Sysinfo_t {
pub Uptime: int64,
// SKIPPED field "Loads": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Totalram: uint64,
pub Freeram: uint64,
pub Sharedram: uint64,
pub Bufferram: uint64,
pub Totalswap: uint64,
pub Freeswap: uint64,
pub Procs: uint16,
pub Pad: uint16,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Totalhigh: uint64,
pub Freehigh: uint64,
pub Unit: uint32,
// SKIPPED field "X_f": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Pad_cgo_1": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct TCPInfo {
pub State: uint8,
pub Ca_state: uint8,
pub Retransmits: uint8,
pub Probes: uint8,
pub Backoff: uint8,
pub Options: uint8,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Rto: uint32,
pub Ato: uint32,
pub Snd_mss: uint32,
pub Rcv_mss: uint32,
pub Unacked: uint32,
pub Sacked: uint32,
pub Lost: uint32,
pub Retrans: uint32,
pub Fackets: uint32,
pub Last_data_sent: uint32,
pub Last_ack_sent: uint32,
pub Last_data_recv: uint32,
pub Last_ack_recv: uint32,
pub Pmtu: uint32,
pub Rcv_ssthresh: uint32,
pub Rtt: uint32,
pub Rttvar: uint32,
pub Snd_ssthresh: uint32,
pub Snd_cwnd: uint32,
pub Advmss: uint32,
pub Reordering: uint32,
pub Rcv_rtt: uint32,
pub Rcv_space: uint32,
pub Total_retrans: uint32,
}
pub struct Termios {
pub Iflag: uint32,
pub Oflag: uint32,
pub Cflag: uint32,
pub Lflag: uint32,
pub Line: uint8,
// SKIPPED field "Cc": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Ispeed: uint32,
pub Ospeed: uint32,
}
pub struct Time_t(int64)
pub struct Timespec {
pub Sec: int64,
pub Nsec: int64,
}
pub struct Timeval {
pub Sec: int64,
pub Usec: int64,
}
pub struct Timex {
pub Modes: uint32,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Offset: int64,
pub Freq: int64,
pub Maxerror: int64,
pub Esterror: int64,
pub Status: int32,
// SKIPPED field "Pad_cgo_1": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Constant: int64,
pub Precision: int64,
pub Tolerance: int64,
pub Time: Timeval,
pub Tick: int64,
pub Ppsfreq: int64,
pub Jitter: int64,
pub Shift: int32,
// SKIPPED field "Pad_cgo_2": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Stabil: int64,
pub Jitcnt: int64,
pub Calcnt: int64,
pub Errcnt: int64,
pub Stbcnt: int64,
pub Tai: int32,
// SKIPPED field "Pad_cgo_3": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct Tms {
pub Utime: int64,
pub Stime: int64,
pub Cutime: int64,
pub Cstime: int64,
}
pub struct Ucred {
pub Pid: int32,
pub Uid: uint32,
pub Gid: uint32,
}
pub struct Ustat_t {
pub Tfree: int32,
// SKIPPED field "Pad_cgo_0": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub Tinode: uint64,
// SKIPPED field "Fname": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Fpack": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Pad_cgo_1": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
}
pub struct Utimbuf {
pub Actime: int64,
pub Modtime: int64,
}
// SKIPPED field "Sysname": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Nodename": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Release": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Version": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Machine": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
// SKIPPED field "Domainname": array-currently-not-representable — fixed-size array cannot currently be represented in Lisette
pub type Utsname
pub struct WaitStatus(uint32)
pub const AF_ALG = 0x26
pub const AF_APPLETALK = 0x5
pub const AF_ASH = 0x12
pub const AF_ATMPVC = 0x8
pub const AF_ATMSVC = 0x14
pub const AF_AX25 = 0x3
pub const AF_BLUETOOTH = 0x1f
pub const AF_BRIDGE = 0x7
pub const AF_CAIF = 0x25
pub const AF_CAN = 0x1d
pub const AF_DECnet = 0xc
pub const AF_ECONET = 0x13
pub const AF_FILE = 0x1
pub const AF_IEEE802154 = 0x24
pub const AF_INET = 0x2
pub const AF_INET6 = 0xa
pub const AF_IPX = 0x4
pub const AF_IRDA = 0x17
pub const AF_ISDN = 0x22
pub const AF_IUCV = 0x20
pub const AF_KEY = 0xf
pub const AF_LLC = 0x1a
pub const AF_LOCAL = 0x1
pub const AF_MAX = 0x29
pub const AF_NETBEUI = 0xd
pub const AF_NETLINK = 0x10
pub const AF_NETROM = 0x6
pub const AF_NFC = 0x27
pub const AF_PACKET = 0x11
pub const AF_PHONET = 0x23
pub const AF_PPPOX = 0x18
pub const AF_RDS = 0x15
pub const AF_ROSE = 0xb
pub const AF_ROUTE = 0x10
pub const AF_RXRPC = 0x21
pub const AF_SECURITY = 0xe
pub const AF_SNA = 0x16
pub const AF_TIPC = 0x1e
pub const AF_UNIX = 0x1
pub const AF_UNSPEC = 0x0
pub const AF_VSOCK = 0x28
pub const AF_WANPIPE = 0x19
pub const AF_X25 = 0x9
pub const ARPHRD_ADAPT = 0x108
pub const ARPHRD_APPLETLK = 0x8
pub const ARPHRD_ARCNET = 0x7
pub const ARPHRD_ASH = 0x30d
pub const ARPHRD_ATM = 0x13
pub const ARPHRD_AX25 = 0x3
pub const ARPHRD_BIF = 0x307
pub const ARPHRD_CAIF = 0x336
pub const ARPHRD_CAN = 0x118
pub const ARPHRD_CHAOS = 0x5
pub const ARPHRD_CISCO = 0x201
pub const ARPHRD_CSLIP = 0x101
pub const ARPHRD_CSLIP6 = 0x103
pub const ARPHRD_DDCMP = 0x205
pub const ARPHRD_DLCI = 0xf
pub const ARPHRD_ECONET = 0x30e
pub const ARPHRD_EETHER = 0x2
pub const ARPHRD_ETHER = 0x1
pub const ARPHRD_EUI64 = 0x1b
pub const ARPHRD_FCAL = 0x311
pub const ARPHRD_FCFABRIC = 0x313
pub const ARPHRD_FCPL = 0x312
pub const ARPHRD_FCPP = 0x310
pub const ARPHRD_FDDI = 0x306
pub const ARPHRD_FRAD = 0x302
pub const ARPHRD_HDLC = 0x201
pub const ARPHRD_HIPPI = 0x30c
pub const ARPHRD_HWX25 = 0x110
pub const ARPHRD_IEEE1394 = 0x18
pub const ARPHRD_IEEE802 = 0x6
pub const ARPHRD_IEEE80211 = 0x321
pub const ARPHRD_IEEE80211_PRISM = 0x322
pub const ARPHRD_IEEE80211_RADIOTAP = 0x323
pub const ARPHRD_IEEE802154 = 0x324
pub const ARPHRD_IEEE802154_MONITOR = 0x325
pub const ARPHRD_IEEE802_TR = 0x320
pub const ARPHRD_INFINIBAND = 0x20
pub const ARPHRD_IP6GRE = 0x337
pub const ARPHRD_IPDDP = 0x309
pub const ARPHRD_IPGRE = 0x30a
pub const ARPHRD_IRDA = 0x30f
pub const ARPHRD_LAPB = 0x204
pub const ARPHRD_LOCALTLK = 0x305
pub const ARPHRD_LOOPBACK = 0x304
pub const ARPHRD_METRICOM = 0x17
pub const ARPHRD_NETLINK = 0x338
pub const ARPHRD_NETROM = 0x0
pub const ARPHRD_NONE = 0xfffe
pub const ARPHRD_PHONET = 0x334
pub const ARPHRD_PHONET_PIPE = 0x335
pub const ARPHRD_PIMREG = 0x30b
pub const ARPHRD_PPP = 0x200
pub const ARPHRD_PRONET = 0x4
pub const ARPHRD_RAWHDLC = 0x206
pub const ARPHRD_ROSE = 0x10e
pub const ARPHRD_RSRVD = 0x104
pub const ARPHRD_SIT = 0x308
pub const ARPHRD_SKIP = 0x303
pub const ARPHRD_SLIP = 0x100
pub const ARPHRD_SLIP6 = 0x102
pub const ARPHRD_TUNNEL = 0x300
pub const ARPHRD_TUNNEL6 = 0x301
pub const ARPHRD_VOID = 0xffff
pub const ARPHRD_X25 = 0x10f
pub const B0 = 0x0
pub const B1000000 = 0x1008
pub const B110 = 0x3
pub const B115200 = 0x1002
pub const B1152000 = 0x1009
pub const B1200 = 0x9
pub const B134 = 0x4
pub const B150 = 0x5
pub const B1500000 = 0x100a
pub const B1800 = 0xa
pub const B19200 = 0xe
pub const B200 = 0x6
pub const B2000000 = 0x100b
pub const B230400 = 0x1003
pub const B2400 = 0xb
pub const B2500000 = 0x100c
pub const B300 = 0x7
pub const B3000000 = 0x100d
pub const B3500000 = 0x100e
pub const B38400 = 0xf
pub const B4000000 = 0x100f
pub const B460800 = 0x1004
pub const B4800 = 0xc
pub const B50 = 0x1
pub const B500000 = 0x1005
pub const B57600 = 0x1001
pub const B576000 = 0x1006
pub const B600 = 0x8
pub const B75 = 0x2
pub const B921600 = 0x1007
pub const B9600 = 0xd
pub const BPF_A = 0x10
pub const BPF_ABS = 0x20
pub const BPF_ADD = 0x0
pub const BPF_ALU = 0x4
pub const BPF_AND = 0x50
pub const BPF_B = 0x10
pub const BPF_DIV = 0x30
pub const BPF_H = 0x8
pub const BPF_IMM = 0x0
pub const BPF_IND = 0x40
pub const BPF_JA = 0x0
pub const BPF_JEQ = 0x10
pub const BPF_JGE = 0x30
pub const BPF_JGT = 0x20
pub const BPF_JMP = 0x5
pub const BPF_JSET = 0x40
pub const BPF_K = 0x0
pub const BPF_LD = 0x0
pub const BPF_LDX = 0x1
pub const BPF_LEN = 0x80
pub const BPF_LSH = 0x60
pub const BPF_MAJOR_VERSION = 0x1
pub const BPF_MAXINSNS = 0x1000
pub const BPF_MEM = 0x60
pub const BPF_MEMWORDS = 0x10
pub const BPF_MINOR_VERSION = 0x1
pub const BPF_MISC = 0x7
pub const BPF_MOD = 0x90
pub const BPF_MSH = 0xa0
pub const BPF_MUL = 0x20
pub const BPF_NEG = 0x80
pub const BPF_OR = 0x40
pub const BPF_RET = 0x6
pub const BPF_RSH = 0x70
pub const BPF_ST = 0x2
pub const BPF_STX = 0x3
pub const BPF_SUB = 0x10
pub const BPF_TAX = 0x0
pub const BPF_TXA = 0x80
pub const BPF_W = 0x0
pub const BPF_X = 0x8
pub const BPF_XOR = 0xa0
pub const BRKINT = 0x2
pub const CFLUSH = 0xf
pub const CLOCAL = 0x800
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_CHILD_CLEARTID = 0x00200000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_CHILD_SETTID = 0x01000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_CLEAR_SIGHAND = 0x100000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_DETACHED = 0x00400000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_FILES = 0x00000400
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_FS = 0x00000200
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_INTO_CGROUP = 0x200000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_IO = 0x80000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWCGROUP = 0x02000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWIPC = 0x08000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWNET = 0x40000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWNS = 0x00020000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWPID = 0x20000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWTIME = 0x00000080
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWUSER = 0x10000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_NEWUTS = 0x04000000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_PARENT = 0x00008000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_PARENT_SETTID = 0x00100000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_PIDFD = 0x00001000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_PTRACE = 0x00002000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_SETTLS = 0x00080000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_SIGHAND = 0x00000800
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_SYSVSEM = 0x00040000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_THREAD = 0x00010000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_UNTRACED = 0x00800000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_VFORK = 0x00004000
/// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
/// copied from linux/sched.h.
pub const CLONE_VM = 0x00000100
pub const CREAD = 0x80
pub const CS5 = 0x0
pub const CS6 = 0x10
pub const CS7 = 0x20
pub const CS8 = 0x30
pub const CSIGNAL = 0xff
pub const CSIZE = 0x30
pub const CSTART = 0x11
pub const CSTATUS = 0x0
pub const CSTOP = 0x13
pub const CSTOPB = 0x40
pub const CSUSP = 0x1a
pub const DT_BLK = 0x6
pub const DT_CHR = 0x2
pub const DT_DIR = 0x4
pub const DT_FIFO = 0x1
pub const DT_LNK = 0xa
pub const DT_REG = 0x8
pub const DT_SOCK = 0xc
pub const DT_UNKNOWN = 0x0
pub const DT_WHT = 0xe
pub const ECHO = 0x8
pub const ECHOCTL = 0x200
pub const ECHOE = 0x10
pub const ECHOK = 0x20
pub const ECHOKE = 0x800
pub const ECHONL = 0x40
pub const ECHOPRT = 0x400
pub const ENCODING_DEFAULT = 0x0
pub const ENCODING_FM_MARK = 0x3
pub const ENCODING_FM_SPACE = 0x4
pub const ENCODING_MANCHESTER = 0x5
pub const ENCODING_NRZ = 0x1
pub const ENCODING_NRZI = 0x2
pub const EPOLLERR = 0x8
pub const EPOLLET = 0x80000000
pub const EPOLLHUP = 0x10
pub const EPOLLIN = 0x1
pub const EPOLLMSG = 0x400
pub const EPOLLONESHOT = 0x40000000
pub const EPOLLOUT = 0x4
pub const EPOLLPRI = 0x2
pub const EPOLLRDBAND = 0x80
pub const EPOLLRDHUP = 0x2000
pub const EPOLLRDNORM = 0x40
pub const EPOLLWAKEUP = 0x20000000
pub const EPOLLWRBAND = 0x200
pub const EPOLLWRNORM = 0x100
pub const EPOLL_CLOEXEC = 0x80000
pub const EPOLL_CTL_ADD = 0x1
pub const EPOLL_CTL_DEL = 0x2
pub const EPOLL_CTL_MOD = 0x3
pub const ETH_P_1588 = 0x88f7
pub const ETH_P_8021AD = 0x88a8
pub const ETH_P_8021AH = 0x88e7
pub const ETH_P_8021Q = 0x8100
pub const ETH_P_802_2 = 0x4
pub const ETH_P_802_3 = 0x1
pub const ETH_P_802_3_MIN = 0x600
pub const ETH_P_802_EX1 = 0x88b5
pub const ETH_P_AARP = 0x80f3
pub const ETH_P_AF_IUCV = 0xfbfb
pub const ETH_P_ALL = 0x3
pub const ETH_P_AOE = 0x88a2
pub const ETH_P_ARCNET = 0x1a
pub const ETH_P_ARP = 0x806
pub const ETH_P_ATALK = 0x809b
pub const ETH_P_ATMFATE = 0x8884
pub const ETH_P_ATMMPOA = 0x884c
pub const ETH_P_AX25 = 0x2
pub const ETH_P_BATMAN = 0x4305
pub const ETH_P_BPQ = 0x8ff
pub const ETH_P_CAIF = 0xf7
pub const ETH_P_CAN = 0xc
pub const ETH_P_CANFD = 0xd
pub const ETH_P_CONTROL = 0x16
pub const ETH_P_CUST = 0x6006
pub const ETH_P_DDCMP = 0x6
pub const ETH_P_DEC = 0x6000
pub const ETH_P_DIAG = 0x6005
pub const ETH_P_DNA_DL = 0x6001
pub const ETH_P_DNA_RC = 0x6002
pub const ETH_P_DNA_RT = 0x6003
pub const ETH_P_DSA = 0x1b
pub const ETH_P_ECONET = 0x18
pub const ETH_P_EDSA = 0xdada
pub const ETH_P_FCOE = 0x8906
pub const ETH_P_FIP = 0x8914
pub const ETH_P_HDLC = 0x19
pub const ETH_P_IEEE802154 = 0xf6
pub const ETH_P_IEEEPUP = 0xa00
pub const ETH_P_IEEEPUPAT = 0xa01
pub const ETH_P_IP = 0x800
pub const ETH_P_IPV6 = 0x86dd
pub const ETH_P_IPX = 0x8137
pub const ETH_P_IRDA = 0x17
pub const ETH_P_LAT = 0x6004
pub const ETH_P_LINK_CTL = 0x886c
pub const ETH_P_LOCALTALK = 0x9
pub const ETH_P_LOOP = 0x60
pub const ETH_P_MOBITEX = 0x15
pub const ETH_P_MPLS_MC = 0x8848
pub const ETH_P_MPLS_UC = 0x8847
pub const ETH_P_MVRP = 0x88f5
pub const ETH_P_PAE = 0x888e
pub const ETH_P_PAUSE = 0x8808
pub const ETH_P_PHONET = 0xf5
pub const ETH_P_PPPTALK = 0x10
pub const ETH_P_PPP_DISC = 0x8863
pub const ETH_P_PPP_MP = 0x8
pub const ETH_P_PPP_SES = 0x8864
pub const ETH_P_PRP = 0x88fb
pub const ETH_P_PUP = 0x200
pub const ETH_P_PUPAT = 0x201
pub const ETH_P_QINQ1 = 0x9100
pub const ETH_P_QINQ2 = 0x9200
pub const ETH_P_QINQ3 = 0x9300
pub const ETH_P_RARP = 0x8035
pub const ETH_P_SCA = 0x6007
pub const ETH_P_SLOW = 0x8809
pub const ETH_P_SNAP = 0x5
pub const ETH_P_TDLS = 0x890d
pub const ETH_P_TEB = 0x6558
pub const ETH_P_TIPC = 0x88ca
pub const ETH_P_TRAILER = 0x1c
pub const ETH_P_TR_802_2 = 0x11
pub const ETH_P_WAN_PPP = 0x7
pub const ETH_P_WCCP = 0x883e
pub const ETH_P_X25 = 0x805
pub const EXTA = 0xe
pub const EXTB = 0xf
pub const EXTPROC = 0x10000
pub const FD_CLOEXEC = 0x1
pub const FD_SETSIZE = 0x400
pub const FLUSHO = 0x1000
pub const F_DUPFD = 0x0
pub const F_DUPFD_CLOEXEC = 0x406
pub const F_EXLCK = 0x4
pub const F_GETFD = 0x1
pub const F_GETFL = 0x3
pub const F_GETLEASE = 0x401
pub const F_GETLK = 0x5
pub const F_GETLK64 = 0x5
pub const F_GETOWN = 0x9
pub const F_GETOWN_EX = 0x10
pub const F_GETPIPE_SZ = 0x408
pub const F_GETSIG = 0xb
pub const F_LOCK = 0x1
pub const F_NOTIFY = 0x402
pub const F_OK = 0x0
pub const F_RDLCK = 0x0
pub const F_SETFD = 0x2
pub const F_SETFL = 0x4
pub const F_SETLEASE = 0x400
pub const F_SETLK = 0x6
pub const F_SETLK64 = 0x6
pub const F_SETLKW = 0x7
pub const F_SETLKW64 = 0x7
pub const F_SETOWN = 0x8
pub const F_SETOWN_EX = 0xf
pub const F_SETPIPE_SZ = 0x407
pub const F_SETSIG = 0xa
pub const F_SHLCK = 0x8
pub const F_TEST = 0x3
pub const F_TLOCK = 0x2
pub const F_ULOCK = 0x0
pub const F_UNLCK = 0x2
pub const F_WRLCK = 0x1
pub const HUPCL = 0x400
pub const ICANON = 0x2
pub const ICMPV6_FILTER = 0x1
pub const ICRNL = 0x100
pub const IEXTEN = 0x8000
pub const IFA_ADDRESS = 0x1
pub const IFA_ANYCAST = 0x5
pub const IFA_BROADCAST = 0x4
pub const IFA_CACHEINFO = 0x6
pub const IFA_F_DADFAILED = 0x8
pub const IFA_F_DEPRECATED = 0x20
pub const IFA_F_HOMEADDRESS = 0x10
pub const IFA_F_NODAD = 0x2
pub const IFA_F_OPTIMISTIC = 0x4
pub const IFA_F_PERMANENT = 0x80
pub const IFA_F_SECONDARY = 0x1
pub const IFA_F_TEMPORARY = 0x1
pub const IFA_F_TENTATIVE = 0x40
pub const IFA_LABEL = 0x3
pub const IFA_LOCAL = 0x2
pub const IFA_MAX = 0x7
pub const IFA_MULTICAST = 0x7
pub const IFA_UNSPEC = 0x0
pub const IFF_802_1Q_VLAN = 0x1
pub const IFF_ALLMULTI = 0x200
pub const IFF_ATTACH_QUEUE = 0x200
pub const IFF_AUTOMEDIA = 0x4000
pub const IFF_BONDING = 0x20
pub const IFF_BRIDGE_PORT = 0x4000
pub const IFF_BROADCAST = 0x2
pub const IFF_DEBUG = 0x4
pub const IFF_DETACH_QUEUE = 0x400
pub const IFF_DISABLE_NETPOLL = 0x1000
pub const IFF_DONT_BRIDGE = 0x800
pub const IFF_DORMANT = 0x20000
pub const IFF_DYNAMIC = 0x8000
pub const IFF_EBRIDGE = 0x2
pub const IFF_ECHO = 0x40000
pub const IFF_ISATAP = 0x80
pub const IFF_LIVE_ADDR_CHANGE = 0x100000
pub const IFF_LOOPBACK = 0x8
pub const IFF_LOWER_UP = 0x10000
pub const IFF_MACVLAN = 0x200000
pub const IFF_MACVLAN_PORT = 0x2000
pub const IFF_MASTER = 0x400
pub const IFF_MASTER_8023AD = 0x8
pub const IFF_MASTER_ALB = 0x10
pub const IFF_MASTER_ARPMON = 0x100
pub const IFF_MULTICAST = 0x1000
pub const IFF_MULTI_QUEUE = 0x100
pub const IFF_NOARP = 0x80
pub const IFF_NOFILTER = 0x1000
pub const IFF_NOTRAILERS = 0x20
pub const IFF_NO_PI = 0x1000
pub const IFF_ONE_QUEUE = 0x2000
pub const IFF_OVS_DATAPATH = 0x8000
pub const IFF_PERSIST = 0x800
pub const IFF_POINTOPOINT = 0x10
pub const IFF_PORTSEL = 0x2000
pub const IFF_PROMISC = 0x100
pub const IFF_RUNNING = 0x40
pub const IFF_SLAVE = 0x800
pub const IFF_SLAVE_INACTIVE = 0x4
pub const IFF_SLAVE_NEEDARP = 0x40
pub const IFF_SUPP_NOFCS = 0x80000
pub const IFF_TAP = 0x2
pub const IFF_TEAM_PORT = 0x40000
pub const IFF_TUN = 0x1
pub const IFF_TUN_EXCL = 0x8000
pub const IFF_TX_SKB_SHARING = 0x10000
pub const IFF_UNICAST_FLT = 0x20000
pub const IFF_UP = 0x1
pub const IFF_VNET_HDR = 0x4000
pub const IFF_VOLATILE = 0x70c5a
pub const IFF_WAN_HDLC = 0x200
pub const IFF_XMIT_DST_RELEASE = 0x400
pub const IFLA_ADDRESS = 0x1
pub const IFLA_BROADCAST = 0x2
pub const IFLA_COST = 0x8
pub const IFLA_IFALIAS = 0x14
pub const IFLA_IFNAME = 0x3
pub const IFLA_LINK = 0x5
pub const IFLA_LINKINFO = 0x12
pub const IFLA_LINKMODE = 0x11
pub const IFLA_MAP = 0xe
pub const IFLA_MASTER = 0xa
pub const IFLA_MAX = 0x24
pub const IFLA_MTU = 0x4
pub const IFLA_NET_NS_PID = 0x13
pub const IFLA_OPERSTATE = 0x10
pub const IFLA_PRIORITY = 0x9
pub const IFLA_PROTINFO = 0xc
pub const IFLA_QDISC = 0x6
pub const IFLA_STATS = 0x7
pub const IFLA_TXQLEN = 0xd
pub const IFLA_UNSPEC = 0x0
pub const IFLA_WEIGHT = 0xf
pub const IFLA_WIRELESS = 0xb
pub const IFNAMSIZ = 0x10
pub const IGNBRK = 0x1
pub const IGNCR = 0x80
pub const IGNPAR = 0x4
pub const IMAXBEL = 0x2000
pub const INLCR = 0x40
pub const INPCK = 0x10
pub const IN_ACCESS = 0x1
pub const IN_ALL_EVENTS = 0xfff
pub const IN_ATTRIB = 0x4
pub const IN_CLASSA_HOST = 0xffffff
pub const IN_CLASSA_MAX = 0x80
pub const IN_CLASSA_NET = 0xff000000
pub const IN_CLASSA_NSHIFT = 0x18
pub const IN_CLASSB_HOST = 0xffff
pub const IN_CLASSB_MAX = 0x10000
pub const IN_CLASSB_NET = 0xffff0000
pub const IN_CLASSB_NSHIFT = 0x10
pub const IN_CLASSC_HOST = 0xff
pub const IN_CLASSC_NET = 0xffffff00
pub const IN_CLASSC_NSHIFT = 0x8
pub const IN_CLOEXEC = 0x80000
pub const IN_CLOSE = 0x18
pub const IN_CLOSE_NOWRITE = 0x10
pub const IN_CLOSE_WRITE = 0x8
pub const IN_CREATE = 0x100
pub const IN_DELETE = 0x200
pub const IN_DELETE_SELF = 0x400
pub const IN_DONT_FOLLOW = 0x2000000
pub const IN_EXCL_UNLINK = 0x4000000
pub const IN_IGNORED = 0x8000
pub const IN_ISDIR = 0x40000000
pub const IN_LOOPBACKNET = 0x7f
pub const IN_MASK_ADD = 0x20000000
pub const IN_MODIFY = 0x2
pub const IN_MOVE = 0xc0
pub const IN_MOVED_FROM = 0x40
pub const IN_MOVED_TO = 0x80
pub const IN_MOVE_SELF = 0x800
pub const IN_NONBLOCK = 0x800
pub const IN_ONESHOT = 0x80000000
pub const IN_ONLYDIR = 0x1000000
pub const IN_OPEN = 0x20
pub const IN_Q_OVERFLOW = 0x4000
pub const IN_UNMOUNT = 0x2000
pub const IPPROTO_AH = 0x33
pub const IPPROTO_BEETPH = 0x5e
pub const IPPROTO_COMP = 0x6c
pub const IPPROTO_DCCP = 0x21
pub const IPPROTO_DSTOPTS = 0x3c
pub const IPPROTO_EGP = 0x8
pub const IPPROTO_ENCAP = 0x62
pub const IPPROTO_ESP = 0x32
pub const IPPROTO_FRAGMENT = 0x2c
pub const IPPROTO_GRE = 0x2f
pub const IPPROTO_HOPOPTS = 0x0
pub const IPPROTO_ICMP = 0x1
pub const IPPROTO_ICMPV6 = 0x3a
pub const IPPROTO_IDP = 0x16
pub const IPPROTO_IGMP = 0x2
pub const IPPROTO_IP = 0x0
pub const IPPROTO_IPIP = 0x4
pub const IPPROTO_IPV6 = 0x29
pub const IPPROTO_MH = 0x87
pub const IPPROTO_MTP = 0x5c
pub const IPPROTO_NONE = 0x3b
pub const IPPROTO_PIM = 0x67
pub const IPPROTO_PUP = 0xc
pub const IPPROTO_RAW = 0xff
pub const IPPROTO_ROUTING = 0x2b
pub const IPPROTO_RSVP = 0x2e
pub const IPPROTO_SCTP = 0x84
pub const IPPROTO_TCP = 0x6
pub const IPPROTO_TP = 0x1d
pub const IPPROTO_UDP = 0x11
pub const IPPROTO_UDPLITE = 0x88
pub const IPV6_2292DSTOPTS = 0x4
pub const IPV6_2292HOPLIMIT = 0x8
pub const IPV6_2292HOPOPTS = 0x3
pub const IPV6_2292PKTINFO = 0x2
pub const IPV6_2292PKTOPTIONS = 0x6
pub const IPV6_2292RTHDR = 0x5
pub const IPV6_ADDRFORM = 0x1
pub const IPV6_ADD_MEMBERSHIP = 0x14
pub const IPV6_AUTHHDR = 0xa
pub const IPV6_CHECKSUM = 0x7
pub const IPV6_DROP_MEMBERSHIP = 0x15
pub const IPV6_DSTOPTS = 0x3b
pub const IPV6_HOPLIMIT = 0x34
pub const IPV6_HOPOPTS = 0x36
pub const IPV6_IPSEC_POLICY = 0x22
pub const IPV6_JOIN_ANYCAST = 0x1b
pub const IPV6_JOIN_GROUP = 0x14
pub const IPV6_LEAVE_ANYCAST = 0x1c
pub const IPV6_LEAVE_GROUP = 0x15
pub const IPV6_MTU = 0x18
pub const IPV6_MTU_DISCOVER = 0x17
pub const IPV6_MULTICAST_HOPS = 0x12
pub const IPV6_MULTICAST_IF = 0x11
pub const IPV6_MULTICAST_LOOP = 0x13
pub const IPV6_NEXTHOP = 0x9
pub const IPV6_PKTINFO = 0x32
pub const IPV6_PMTUDISC_DO = 0x2
pub const IPV6_PMTUDISC_DONT = 0x0
pub const IPV6_PMTUDISC_PROBE = 0x3
pub const IPV6_PMTUDISC_WANT = 0x1
pub const IPV6_RECVDSTOPTS = 0x3a
pub const IPV6_RECVERR = 0x19
pub const IPV6_RECVHOPLIMIT = 0x33
pub const IPV6_RECVHOPOPTS = 0x35
pub const IPV6_RECVPKTINFO = 0x31
pub const IPV6_RECVRTHDR = 0x38
pub const IPV6_RECVTCLASS = 0x42
pub const IPV6_ROUTER_ALERT = 0x16
pub const IPV6_RTHDR = 0x39
pub const IPV6_RTHDRDSTOPTS = 0x37
pub const IPV6_RTHDR_LOOSE = 0x0
pub const IPV6_RTHDR_STRICT = 0x1
pub const IPV6_RTHDR_TYPE_0 = 0x0
pub const IPV6_RXDSTOPTS = 0x3b
pub const IPV6_RXHOPOPTS = 0x36
pub const IPV6_TCLASS = 0x43
pub const IPV6_UNICAST_HOPS = 0x10
pub const IPV6_V6ONLY = 0x1a
pub const IPV6_XFRM_POLICY = 0x23
pub const IP_ADD_MEMBERSHIP = 0x23
pub const IP_ADD_SOURCE_MEMBERSHIP = 0x27
pub const IP_BLOCK_SOURCE = 0x26
pub const IP_DEFAULT_MULTICAST_LOOP = 0x1
pub const IP_DEFAULT_MULTICAST_TTL = 0x1
pub const IP_DF = 0x4000
pub const IP_DROP_MEMBERSHIP = 0x24
pub const IP_DROP_SOURCE_MEMBERSHIP = 0x28
pub const IP_FREEBIND = 0xf
pub const IP_HDRINCL = 0x3
pub const IP_IPSEC_POLICY = 0x10
pub const IP_MAXPACKET = 0xffff
pub const IP_MAX_MEMBERSHIPS = 0x14
pub const IP_MF = 0x2000
pub const IP_MINTTL = 0x15
pub const IP_MSFILTER = 0x29
pub const IP_MSS = 0x240
pub const IP_MTU = 0xe
pub const IP_MTU_DISCOVER = 0xa
pub const IP_MULTICAST_ALL = 0x31
pub const IP_MULTICAST_IF = 0x20
pub const IP_MULTICAST_LOOP = 0x22
pub const IP_MULTICAST_TTL = 0x21
pub const IP_OFFMASK = 0x1fff
pub const IP_OPTIONS = 0x4
pub const IP_ORIGDSTADDR = 0x14
pub const IP_PASSSEC = 0x12
pub const IP_PKTINFO = 0x8
pub const IP_PKTOPTIONS = 0x9
pub const IP_PMTUDISC = 0xa
pub const IP_PMTUDISC_DO = 0x2
pub const IP_PMTUDISC_DONT = 0x0
pub const IP_PMTUDISC_PROBE = 0x3
pub const IP_PMTUDISC_WANT = 0x1
pub const IP_RECVERR = 0xb
pub const IP_RECVOPTS = 0x6
pub const IP_RECVORIGDSTADDR = 0x14
pub const IP_RECVRETOPTS = 0x7
pub const IP_RECVTOS = 0xd
pub const IP_RECVTTL = 0xc
pub const IP_RETOPTS = 0x7
pub const IP_RF = 0x8000
pub const IP_ROUTER_ALERT = 0x5
pub const IP_TOS = 0x1
pub const IP_TRANSPARENT = 0x13
pub const IP_TTL = 0x2
pub const IP_UNBLOCK_SOURCE = 0x25
pub const IP_UNICAST_IF = 0x32
pub const IP_XFRM_POLICY = 0x11
pub const ISIG = 0x1
pub const ISTRIP = 0x20
pub const IUCLC = 0x200
pub const IUTF8 = 0x4000
pub const IXANY = 0x800
pub const IXOFF = 0x1000
pub const IXON = 0x400
pub const ImplementsGetwd = true
pub const LINUX_REBOOT_CMD_CAD_OFF = 0x0
pub const LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
pub const LINUX_REBOOT_CMD_HALT = 0xcdef0123
pub const LINUX_REBOOT_CMD_KEXEC = 0x45584543
pub const LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
pub const LINUX_REBOOT_CMD_RESTART = 0x1234567
pub const LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
pub const LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
pub const LINUX_REBOOT_MAGIC1 = 0xfee1dead
pub const LINUX_REBOOT_MAGIC2 = 0x28121969
pub const LOCK_EX = 0x2
pub const LOCK_NB = 0x4
pub const LOCK_SH = 0x1
pub const LOCK_UN = 0x8
pub const MADV_DODUMP = 0x11
pub const MADV_DOFORK = 0xb
pub const MADV_DONTDUMP = 0x10
pub const MADV_DONTFORK = 0xa
pub const MADV_DONTNEED = 0x4
pub const MADV_HUGEPAGE = 0xe
pub const MADV_HWPOISON = 0x64
pub const MADV_MERGEABLE = 0xc
pub const MADV_NOHUGEPAGE = 0xf
pub const MADV_NORMAL = 0x0
pub const MADV_RANDOM = 0x1
pub const MADV_REMOVE = 0x9
pub const MADV_SEQUENTIAL = 0x2
pub const MADV_UNMERGEABLE = 0xd
pub const MADV_WILLNEED = 0x3
pub const MAP_ANON = 0x20
pub const MAP_ANONYMOUS = 0x20
pub const MAP_DENYWRITE = 0x800
pub const MAP_EXECUTABLE = 0x1000
pub const MAP_FILE = 0x0
pub const MAP_FIXED = 0x10
pub const MAP_GROWSDOWN = 0x100
pub const MAP_HUGETLB = 0x40000
pub const MAP_HUGE_MASK = 0x3f
pub const MAP_HUGE_SHIFT = 0x1a
pub const MAP_LOCKED = 0x2000
pub const MAP_NONBLOCK = 0x10000
pub const MAP_NORESERVE = 0x4000
pub const MAP_POPULATE = 0x8000
pub const MAP_PRIVATE = 0x2
pub const MAP_SHARED = 0x1
pub const MAP_STACK = 0x20000
pub const MAP_TYPE = 0xf
pub const MCL_CURRENT = 0x1
pub const MCL_FUTURE = 0x2
pub const MNT_DETACH = 0x2
pub const MNT_EXPIRE = 0x4
pub const MNT_FORCE = 0x1
pub const MSG_CMSG_CLOEXEC = 0x40000000
pub const MSG_CONFIRM = 0x800
pub const MSG_CTRUNC = 0x8
pub const MSG_DONTROUTE = 0x4
pub const MSG_DONTWAIT = 0x40
pub const MSG_EOR = 0x80
pub const MSG_ERRQUEUE = 0x2000
pub const MSG_FASTOPEN = 0x20000000
pub const MSG_FIN = 0x200
pub const MSG_MORE = 0x8000
pub const MSG_NOSIGNAL = 0x4000
pub const MSG_OOB = 0x1
pub const MSG_PEEK = 0x2
pub const MSG_PROXY = 0x10
pub const MSG_RST = 0x1000
pub const MSG_SYN = 0x400
pub const MSG_TRUNC = 0x20
pub const MSG_TRYHARD = 0x4
pub const MSG_WAITALL = 0x100
pub const MSG_WAITFORONE = 0x10000
pub const MS_ACTIVE = 0x40000000
pub const MS_ASYNC = 0x1
pub const MS_BIND = 0x1000
pub const MS_DIRSYNC = 0x80
pub const MS_INVALIDATE = 0x2
pub const MS_I_VERSION = 0x800000
pub const MS_KERNMOUNT = 0x400000
pub const MS_MANDLOCK = 0x40
pub const MS_MGC_MSK = 0xffff0000
pub const MS_MGC_VAL = 0xc0ed0000
pub const MS_MOVE = 0x2000
pub const MS_NOATIME = 0x400
pub const MS_NODEV = 0x4
pub const MS_NODIRATIME = 0x800
pub const MS_NOEXEC = 0x8
pub const MS_NOSUID = 0x2
pub const MS_NOUSER = -0x80000000
pub const MS_POSIXACL = 0x10000
pub const MS_PRIVATE = 0x40000
pub const MS_RDONLY = 0x1
pub const MS_REC = 0x4000
pub const MS_RELATIME = 0x200000
pub const MS_REMOUNT = 0x20
pub const MS_RMT_MASK = 0x800051
pub const MS_SHARED = 0x100000
pub const MS_SILENT = 0x8000
pub const MS_SLAVE = 0x80000
pub const MS_STRICTATIME = 0x1000000
pub const MS_SYNC = 0x4
pub const MS_SYNCHRONOUS = 0x10
pub const MS_UNBINDABLE = 0x20000
pub const NAME_MAX = 0xff
pub const NETLINK_ADD_MEMBERSHIP = 0x1
pub const NETLINK_AUDIT = 0x9
pub const NETLINK_BROADCAST_ERROR = 0x4
pub const NETLINK_CONNECTOR = 0xb
pub const NETLINK_CRYPTO = 0x15
pub const NETLINK_DNRTMSG = 0xe
pub const NETLINK_DROP_MEMBERSHIP = 0x2
pub const NETLINK_ECRYPTFS = 0x13
pub const NETLINK_FIB_LOOKUP = 0xa
pub const NETLINK_FIREWALL = 0x3
pub const NETLINK_GENERIC = 0x10
pub const NETLINK_INET_DIAG = 0x4
pub const NETLINK_IP6_FW = 0xd
pub const NETLINK_ISCSI = 0x8
pub const NETLINK_KOBJECT_UEVENT = 0xf
pub const NETLINK_NETFILTER = 0xc
pub const NETLINK_NFLOG = 0x5
pub const NETLINK_NO_ENOBUFS = 0x5
pub const NETLINK_PKTINFO = 0x3
pub const NETLINK_RDMA = 0x14
pub const NETLINK_ROUTE = 0x0
pub const NETLINK_RX_RING = 0x6
pub const NETLINK_SCSITRANSPORT = 0x12
pub const NETLINK_SELINUX = 0x7
pub const NETLINK_SOCK_DIAG = 0x4
pub const NETLINK_TX_RING = 0x7
pub const NETLINK_UNUSED = 0x1
pub const NETLINK_USERSOCK = 0x2
pub const NETLINK_XFRM = 0x6
pub const NLA_ALIGNTO = 0x4
pub const NLA_F_NESTED = 0x8000
pub const NLA_F_NET_BYTEORDER = 0x4000
pub const NLA_HDRLEN = 0x4
pub const NLMSG_ALIGNTO = 0x4
pub const NLMSG_DONE = 0x3
pub const NLMSG_ERROR = 0x2
pub const NLMSG_HDRLEN = 0x10
pub const NLMSG_MIN_TYPE = 0x10
pub const NLMSG_NOOP = 0x1
pub const NLMSG_OVERRUN = 0x4
pub const NLM_F_ACK = 0x4
pub const NLM_F_APPEND = 0x800
pub const NLM_F_ATOMIC = 0x400
pub const NLM_F_CREATE = 0x400
pub const NLM_F_DUMP = 0x300
pub const NLM_F_DUMP_INTR = 0x10
pub const NLM_F_ECHO = 0x8
pub const NLM_F_EXCL = 0x200
pub const NLM_F_MATCH = 0x200
pub const NLM_F_MULTI = 0x2
pub const NLM_F_REPLACE = 0x100
pub const NLM_F_REQUEST = 0x1
pub const NLM_F_ROOT = 0x100
pub const NOFLSH = 0x80
pub const OCRNL = 0x8
pub const OFDEL = 0x80
pub const OFILL = 0x40
pub const OLCUC = 0x2
pub const ONLCR = 0x4
pub const ONLRET = 0x20
pub const ONOCR = 0x10
pub const OPOST = 0x1
pub const O_ACCMODE = 0x3
pub const O_APPEND = 0x400
pub const O_ASYNC = 0x2000
pub const O_CLOEXEC = 0x80000
pub const O_CREAT = 0x40
pub const O_DIRECT = 0x10000
pub const O_DIRECTORY = 0x4000
pub const O_DSYNC = 0x1000
pub const O_EXCL = 0x80
pub const O_FSYNC = 0x101000
pub const O_LARGEFILE = 0x0
pub const O_NDELAY = 0x800
pub const O_NOATIME = 0x40000
pub const O_NOCTTY = 0x100
pub const O_NOFOLLOW = 0x8000
pub const O_NONBLOCK = 0x800
pub const O_PATH = 0x200000
pub const O_RDONLY = 0x0
pub const O_RDWR = 0x2
pub const O_RSYNC = 0x101000
pub const O_SYNC = 0x101000
pub const O_TMPFILE = 0x410000
pub const O_TRUNC = 0x200
pub const O_WRONLY = 0x1
pub const PACKET_ADD_MEMBERSHIP = 0x1
pub const PACKET_AUXDATA = 0x8
pub const PACKET_BROADCAST = 0x1
pub const PACKET_COPY_THRESH = 0x7
pub const PACKET_DROP_MEMBERSHIP = 0x2
pub const PACKET_FANOUT = 0x12
pub const PACKET_FANOUT_CPU = 0x2
pub const PACKET_FANOUT_FLAG_DEFRAG = 0x8000
pub const PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
pub const PACKET_FANOUT_HASH = 0x0
pub const PACKET_FANOUT_LB = 0x1
pub const PACKET_FANOUT_RND = 0x4
pub const PACKET_FANOUT_ROLLOVER = 0x3
pub const PACKET_FASTROUTE = 0x6
pub const PACKET_HDRLEN = 0xb
pub const PACKET_HOST = 0x0
pub const PACKET_LOOPBACK = 0x5
pub const PACKET_LOSS = 0xe
pub const PACKET_MR_ALLMULTI = 0x2
pub const PACKET_MR_MULTICAST = 0x0
pub const PACKET_MR_PROMISC = 0x1
pub const PACKET_MR_UNICAST = 0x3
pub const PACKET_MULTICAST = 0x2
pub const PACKET_ORIGDEV = 0x9
pub const PACKET_OTHERHOST = 0x3
pub const PACKET_OUTGOING = 0x4
pub const PACKET_RECV_OUTPUT = 0x3
pub const PACKET_RESERVE = 0xc
pub const PACKET_RX_RING = 0x5
pub const PACKET_STATISTICS = 0x6
pub const PACKET_TIMESTAMP = 0x11
pub const PACKET_TX_HAS_OFF = 0x13
pub const PACKET_TX_RING = 0xd
pub const PACKET_TX_TIMESTAMP = 0x10
pub const PACKET_VERSION = 0xa
pub const PACKET_VNET_HDR = 0xf
pub const PARENB = 0x100
pub const PARITY_CRC16_PR0 = 0x2
pub const PARITY_CRC16_PR0_CCITT = 0x4
pub const PARITY_CRC16_PR1 = 0x3
pub const PARITY_CRC16_PR1_CCITT = 0x5
pub const PARITY_CRC32_PR0_CCITT = 0x6
pub const PARITY_CRC32_PR1_CCITT = 0x7
pub const PARITY_DEFAULT = 0x0
pub const PARITY_NONE = 0x1
pub const PARMRK = 0x8
pub const PARODD = 0x200
pub const PENDIN = 0x4000
pub const PRIO_PGRP = 0x1
pub const PRIO_PROCESS = 0x0
pub const PRIO_USER = 0x2
pub const PROT_EXEC = 0x4
pub const PROT_GROWSDOWN = 0x1000000
pub const PROT_GROWSUP = 0x2000000
pub const PROT_NONE = 0x0
pub const PROT_READ = 0x1
pub const PROT_WRITE = 0x2
pub const PR_CAPBSET_DROP = 0x18
pub const PR_CAPBSET_READ = 0x17
pub const PR_ENDIAN_BIG = 0x0
pub const PR_ENDIAN_LITTLE = 0x1
pub const PR_ENDIAN_PPC_LITTLE = 0x2
pub const PR_FPEMU_NOPRINT = 0x1
pub const PR_FPEMU_SIGFPE = 0x2
pub const PR_FP_EXC_ASYNC = 0x2
pub const PR_FP_EXC_DISABLED = 0x0
pub const PR_FP_EXC_DIV = 0x10000
pub const PR_FP_EXC_INV = 0x100000
pub const PR_FP_EXC_NONRECOV = 0x1
pub const PR_FP_EXC_OVF = 0x20000
pub const PR_FP_EXC_PRECISE = 0x3
pub const PR_FP_EXC_RES = 0x80000
pub const PR_FP_EXC_SW_ENABLE = 0x80
pub const PR_FP_EXC_UND = 0x40000
pub const PR_GET_CHILD_SUBREAPER = 0x25
pub const PR_GET_DUMPABLE = 0x3
pub const PR_GET_ENDIAN = 0x13
pub const PR_GET_FPEMU = 0x9
pub const PR_GET_FPEXC = 0xb
pub const PR_GET_KEEPCAPS = 0x7
pub const PR_GET_NAME = 0x10
pub const PR_GET_NO_NEW_PRIVS = 0x27
pub const PR_GET_PDEATHSIG = 0x2
pub const PR_GET_SECCOMP = 0x15
pub const PR_GET_SECUREBITS = 0x1b
pub const PR_GET_TID_ADDRESS = 0x28
pub const PR_GET_TIMERSLACK = 0x1e
pub const PR_GET_TIMING = 0xd
pub const PR_GET_TSC = 0x19
pub const PR_GET_UNALIGN = 0x5
pub const PR_MCE_KILL = 0x21
pub const PR_MCE_KILL_CLEAR = 0x0
pub const PR_MCE_KILL_DEFAULT = 0x2
pub const PR_MCE_KILL_EARLY = 0x1
pub const PR_MCE_KILL_GET = 0x22
pub const PR_MCE_KILL_LATE = 0x0
pub const PR_MCE_KILL_SET = 0x1
pub const PR_SET_CHILD_SUBREAPER = 0x24
pub const PR_SET_DUMPABLE = 0x4
pub const PR_SET_ENDIAN = 0x14
pub const PR_SET_FPEMU = 0xa
pub const PR_SET_FPEXC = 0xc
pub const PR_SET_KEEPCAPS = 0x8
pub const PR_SET_MM = 0x23
pub const PR_SET_MM_ARG_END = 0x9
pub const PR_SET_MM_ARG_START = 0x8
pub const PR_SET_MM_AUXV = 0xc
pub const PR_SET_MM_BRK = 0x7
pub const PR_SET_MM_END_CODE = 0x2
pub const PR_SET_MM_END_DATA = 0x4
pub const PR_SET_MM_ENV_END = 0xb
pub const PR_SET_MM_ENV_START = 0xa
pub const PR_SET_MM_EXE_FILE = 0xd
pub const PR_SET_MM_START_BRK = 0x6
pub const PR_SET_MM_START_CODE = 0x1
pub const PR_SET_MM_START_DATA = 0x3
pub const PR_SET_MM_START_STACK = 0x5
pub const PR_SET_NAME = 0xf
pub const PR_SET_NO_NEW_PRIVS = 0x26
pub const PR_SET_PDEATHSIG = 0x1
pub const PR_SET_PTRACER = 0x59616d61
pub const PR_SET_PTRACER_ANY = -0x1
pub const PR_SET_SECCOMP = 0x16
pub const PR_SET_SECUREBITS = 0x1c
pub const PR_SET_TIMERSLACK = 0x1d
pub const PR_SET_TIMING = 0xe
pub const PR_SET_TSC = 0x1a
pub const PR_SET_UNALIGN = 0x6
pub const PR_TASK_PERF_EVENTS_DISABLE = 0x1f
pub const PR_TASK_PERF_EVENTS_ENABLE = 0x20
pub const PR_TIMING_STATISTICAL = 0x0
pub const PR_TIMING_TIMESTAMP = 0x1
pub const PR_TSC_ENABLE = 0x1
pub const PR_TSC_SIGSEGV = 0x2
pub const PR_UNALIGN_NOPRINT = 0x1
pub const PR_UNALIGN_SIGBUS = 0x2
pub const PTRACE_ATTACH = 0x10
pub const PTRACE_CONT = 0x7
pub const PTRACE_DETACH = 0x11
pub const PTRACE_EVENT_CLONE = 0x3
pub const PTRACE_EVENT_EXEC = 0x4
pub const PTRACE_EVENT_EXIT = 0x6
pub const PTRACE_EVENT_FORK = 0x1
pub const PTRACE_EVENT_SECCOMP = 0x7
pub const PTRACE_EVENT_STOP = 0x80
pub const PTRACE_EVENT_VFORK = 0x2
pub const PTRACE_EVENT_VFORK_DONE = 0x5
pub const PTRACE_GETEVENTMSG = 0x4201
pub const PTRACE_GETREGS = 0xc
pub const PTRACE_GETREGSET = 0x4204
pub const PTRACE_GETSIGINFO = 0x4202
pub const PTRACE_GETSIGMASK = 0x420a
pub const PTRACE_INTERRUPT = 0x4207
pub const PTRACE_KILL = 0x8
pub const PTRACE_LISTEN = 0x4208
pub const PTRACE_O_EXITKILL = 0x100000
pub const PTRACE_O_MASK = 0x1000ff
pub const PTRACE_O_TRACECLONE = 0x8
pub const PTRACE_O_TRACEEXEC = 0x10
pub const PTRACE_O_TRACEEXIT = 0x40
pub const PTRACE_O_TRACEFORK = 0x2
pub const PTRACE_O_TRACESECCOMP = 0x80
pub const PTRACE_O_TRACESYSGOOD = 0x1
pub const PTRACE_O_TRACEVFORK = 0x4
pub const PTRACE_O_TRACEVFORKDONE = 0x20
pub const PTRACE_PEEKDATA = 0x2
pub const PTRACE_PEEKSIGINFO = 0x4209
pub const PTRACE_PEEKSIGINFO_SHARED = 0x1
pub const PTRACE_PEEKTEXT = 0x1
pub const PTRACE_PEEKUSR = 0x3
pub const PTRACE_POKEDATA = 0x5
pub const PTRACE_POKETEXT = 0x4
pub const PTRACE_POKEUSR = 0x6
pub const PTRACE_SEIZE = 0x4206
pub const PTRACE_SETOPTIONS = 0x4200
pub const PTRACE_SETREGS = 0xd
pub const PTRACE_SETREGSET = 0x4205
pub const PTRACE_SETSIGINFO = 0x4203
pub const PTRACE_SETSIGMASK = 0x420b
pub const PTRACE_SINGLESTEP = 0x9
pub const PTRACE_SYSCALL = 0x18
pub const PTRACE_TRACEME = 0x0
pub const PathMax = 0x1000
pub const RLIMIT_AS = 0x9
pub const RLIMIT_CORE = 0x4
pub const RLIMIT_CPU = 0x0
pub const RLIMIT_DATA = 0x2
pub const RLIMIT_FSIZE = 0x1
pub const RLIMIT_NOFILE = 0x7
pub const RLIMIT_STACK = 0x3
pub const RLIM_INFINITY = -0x1
pub const RTAX_ADVMSS = 0x8
pub const RTAX_CWND = 0x7
pub const RTAX_FEATURES = 0xc
pub const RTAX_FEATURE_ALLFRAG = 0x8
pub const RTAX_FEATURE_ECN = 0x1
pub const RTAX_FEATURE_SACK = 0x2
pub const RTAX_FEATURE_TIMESTAMP = 0x4
pub const RTAX_HOPLIMIT = 0xa
pub const RTAX_INITCWND = 0xb
pub const RTAX_INITRWND = 0xe
pub const RTAX_LOCK = 0x1
pub const RTAX_MAX = 0xf
pub const RTAX_MTU = 0x2
pub const RTAX_QUICKACK = 0xf
pub const RTAX_REORDERING = 0x9
pub const RTAX_RTO_MIN = 0xd
pub const RTAX_RTT = 0x4
pub const RTAX_RTTVAR = 0x5
pub const RTAX_SSTHRESH = 0x6
pub const RTAX_UNSPEC = 0x0
pub const RTAX_WINDOW = 0x3
pub const RTA_ALIGNTO = 0x4
pub const RTA_CACHEINFO = 0xc
pub const RTA_DST = 0x1
pub const RTA_FLOW = 0xb
pub const RTA_GATEWAY = 0x5
pub const RTA_IIF = 0x3
pub const RTA_MAX = 0x11
pub const RTA_METRICS = 0x8
pub const RTA_MULTIPATH = 0x9
pub const RTA_OIF = 0x4
pub const RTA_PREFSRC = 0x7
pub const RTA_PRIORITY = 0x6
pub const RTA_SRC = 0x2
pub const RTA_TABLE = 0xf
pub const RTA_UNSPEC = 0x0
pub const RTCF_DIRECTSRC = 0x4000000
pub const RTCF_DOREDIRECT = 0x1000000
pub const RTCF_LOG = 0x2000000
pub const RTCF_MASQ = 0x400000
pub const RTCF_NAT = 0x800000
pub const RTCF_VALVE = 0x200000
pub const RTF_ADDRCLASSMASK = 0xf8000000
pub const RTF_ADDRCONF = 0x40000
pub const RTF_ALLONLINK = 0x20000
pub const RTF_BROADCAST = 0x10000000
pub const RTF_CACHE = 0x1000000
pub const RTF_DEFAULT = 0x10000
pub const RTF_DYNAMIC = 0x10
pub const RTF_FLOW = 0x2000000
pub const RTF_GATEWAY = 0x2
pub const RTF_HOST = 0x4
pub const RTF_INTERFACE = 0x40000000
pub const RTF_IRTT = 0x100
pub const RTF_LINKRT = 0x100000
pub const RTF_LOCAL = 0x80000000
pub const RTF_MODIFIED = 0x20
pub const RTF_MSS = 0x40
pub const RTF_MTU = 0x40
pub const RTF_MULTICAST = 0x20000000
pub const RTF_NAT = 0x8000000
pub const RTF_NOFORWARD = 0x1000
pub const RTF_NONEXTHOP = 0x200000
pub const RTF_NOPMTUDISC = 0x4000
pub const RTF_POLICY = 0x4000000
pub const RTF_REINSTATE = 0x8
pub const RTF_REJECT = 0x200
pub const RTF_STATIC = 0x400
pub const RTF_THROW = 0x2000
pub const RTF_UP = 0x1
pub const RTF_WINDOW = 0x80
pub const RTF_XRESOLVE = 0x800
pub const RTM_BASE = 0x10
pub const RTM_DELACTION = 0x31
pub const RTM_DELADDR = 0x15
pub const RTM_DELADDRLABEL = 0x49
pub const RTM_DELLINK = 0x11
pub const RTM_DELMDB = 0x55
pub const RTM_DELNEIGH = 0x1d
pub const RTM_DELQDISC = 0x25
pub const RTM_DELROUTE = 0x19
pub const RTM_DELRULE = 0x21
pub const RTM_DELTCLASS = 0x29
pub const RTM_DELTFILTER = 0x2d
pub const RTM_F_CLONED = 0x200
pub const RTM_F_EQUALIZE = 0x400
pub const RTM_F_NOTIFY = 0x100
pub const RTM_F_PREFIX = 0x800
pub const RTM_GETACTION = 0x32
pub const RTM_GETADDR = 0x16
pub const RTM_GETADDRLABEL = 0x4a
pub const RTM_GETANYCAST = 0x3e
pub const RTM_GETDCB = 0x4e
pub const RTM_GETLINK = 0x12
pub const RTM_GETMDB = 0x56
pub const RTM_GETMULTICAST = 0x3a
pub const RTM_GETNEIGH = 0x1e
pub const RTM_GETNEIGHTBL = 0x42
pub const RTM_GETNETCONF = 0x52
pub const RTM_GETQDISC = 0x26
pub const RTM_GETROUTE = 0x1a
pub const RTM_GETRULE = 0x22
pub const RTM_GETTCLASS = 0x2a
pub const RTM_GETTFILTER = 0x2e
pub const RTM_MAX = 0x57
pub const RTM_NEWACTION = 0x30
pub const RTM_NEWADDR = 0x14
pub const RTM_NEWADDRLABEL = 0x48
pub const RTM_NEWLINK = 0x10
pub const RTM_NEWMDB = 0x54
pub const RTM_NEWNDUSEROPT = 0x44
pub const RTM_NEWNEIGH = 0x1c
pub const RTM_NEWNEIGHTBL = 0x40
pub const RTM_NEWNETCONF = 0x50
pub const RTM_NEWPREFIX = 0x34
pub const RTM_NEWQDISC = 0x24
pub const RTM_NEWROUTE = 0x18
pub const RTM_NEWRULE = 0x20
pub const RTM_NEWTCLASS = 0x28
pub const RTM_NEWTFILTER = 0x2c
pub const RTM_NR_FAMILIES = 0x12
pub const RTM_NR_MSGTYPES = 0x48
pub const RTM_SETDCB = 0x4f
pub const RTM_SETLINK = 0x13
pub const RTM_SETNEIGHTBL = 0x43
pub const RTNH_ALIGNTO = 0x4
pub const RTNH_F_DEAD = 0x1
pub const RTNH_F_ONLINK = 0x4
pub const RTNH_F_PERVASIVE = 0x2
pub const RTNLGRP_IPV4_IFADDR = 0x5
pub const RTNLGRP_IPV4_MROUTE = 0x6
pub const RTNLGRP_IPV4_ROUTE = 0x7
pub const RTNLGRP_IPV4_RULE = 0x8
pub const RTNLGRP_IPV6_IFADDR = 0x9
pub const RTNLGRP_IPV6_IFINFO = 0xc
pub const RTNLGRP_IPV6_MROUTE = 0xa
pub const RTNLGRP_IPV6_PREFIX = 0x12
pub const RTNLGRP_IPV6_ROUTE = 0xb
pub const RTNLGRP_IPV6_RULE = 0x13
pub const RTNLGRP_LINK = 0x1
pub const RTNLGRP_ND_USEROPT = 0x14
pub const RTNLGRP_NEIGH = 0x3
pub const RTNLGRP_NONE = 0x0
pub const RTNLGRP_NOTIFY = 0x2
pub const RTNLGRP_TC = 0x4
pub const RTN_ANYCAST = 0x4
pub const RTN_BLACKHOLE = 0x6
pub const RTN_BROADCAST = 0x3
pub const RTN_LOCAL = 0x2
pub const RTN_MAX = 0xb
pub const RTN_MULTICAST = 0x5
pub const RTN_NAT = 0xa
pub const RTN_PROHIBIT = 0x8
pub const RTN_THROW = 0x9
pub const RTN_UNICAST = 0x1
pub const RTN_UNREACHABLE = 0x7
pub const RTN_UNSPEC = 0x0
pub const RTN_XRESOLVE = 0xb
pub const RTPROT_BIRD = 0xc
pub const RTPROT_BOOT = 0x3
pub const RTPROT_DHCP = 0x10
pub const RTPROT_DNROUTED = 0xd
pub const RTPROT_GATED = 0x8
pub const RTPROT_KERNEL = 0x2
pub const RTPROT_MROUTED = 0x11
pub const RTPROT_MRT = 0xa
pub const RTPROT_NTK = 0xf
pub const RTPROT_RA = 0x9
pub const RTPROT_REDIRECT = 0x1
pub const RTPROT_STATIC = 0x4
pub const RTPROT_UNSPEC = 0x0
pub const RTPROT_XORP = 0xe
pub const RTPROT_ZEBRA = 0xb
pub const RT_CLASS_DEFAULT = 0xfd
pub const RT_CLASS_LOCAL = 0xff
pub const RT_CLASS_MAIN = 0xfe
pub const RT_CLASS_MAX = 0xff
pub const RT_CLASS_UNSPEC = 0x0
pub const RT_SCOPE_HOST = 0xfe
pub const RT_SCOPE_LINK = 0xfd
pub const RT_SCOPE_NOWHERE = 0xff
pub const RT_SCOPE_SITE = 0xc8
pub const RT_SCOPE_UNIVERSE = 0x0
pub const RT_TABLE_COMPAT = 0xfc
pub const RT_TABLE_DEFAULT = 0xfd
pub const RT_TABLE_LOCAL = 0xff
pub const RT_TABLE_MAIN = 0xfe
pub const RT_TABLE_MAX = 0xffffffff
pub const RT_TABLE_UNSPEC = 0x0
pub const RUSAGE_CHILDREN = -0x1
pub const RUSAGE_SELF = 0x0
pub const RUSAGE_THREAD = 0x1
pub const SCM_CREDENTIALS = 0x2
pub const SCM_RIGHTS = 0x1
pub const SCM_TIMESTAMP = 0x1d
pub const SCM_TIMESTAMPING = 0x25
pub const SCM_TIMESTAMPNS = 0x23
pub const SCM_WIFI_STATUS = 0x29
pub const SHUT_RD = 0x0
pub const SHUT_RDWR = 0x2
pub const SHUT_WR = 0x1
pub const SIOCADDDLCI = 0x8980
pub const SIOCADDMULTI = 0x8931
pub const SIOCADDRT = 0x890b
pub const SIOCATMARK = 0x8905
pub const SIOCDARP = 0x8953
pub const SIOCDELDLCI = 0x8981
pub const SIOCDELMULTI = 0x8932
pub const SIOCDELRT = 0x890c
pub const SIOCDEVPRIVATE = 0x89f0
pub const SIOCDIFADDR = 0x8936
pub const SIOCDRARP = 0x8960
pub const SIOCGARP = 0x8954
pub const SIOCGIFADDR = 0x8915
pub const SIOCGIFBR = 0x8940
pub const SIOCGIFBRDADDR = 0x8919
pub const SIOCGIFCONF = 0x8912
pub const SIOCGIFCOUNT = 0x8938
pub const SIOCGIFDSTADDR = 0x8917
pub const SIOCGIFENCAP = 0x8925
pub const SIOCGIFFLAGS = 0x8913
pub const SIOCGIFHWADDR = 0x8927
pub const SIOCGIFINDEX = 0x8933
pub const SIOCGIFMAP = 0x8970
pub const SIOCGIFMEM = 0x891f
pub const SIOCGIFMETRIC = 0x891d
pub const SIOCGIFMTU = 0x8921
pub const SIOCGIFNAME = 0x8910
pub const SIOCGIFNETMASK = 0x891b
pub const SIOCGIFPFLAGS = 0x8935
pub const SIOCGIFSLAVE = 0x8929
pub const SIOCGIFTXQLEN = 0x8942
pub const SIOCGPGRP = 0x8904
pub const SIOCGRARP = 0x8961
pub const SIOCGSTAMP = 0x8906
pub const SIOCGSTAMPNS = 0x8907
pub const SIOCPROTOPRIVATE = 0x89e0
pub const SIOCRTMSG = 0x890d
pub const SIOCSARP = 0x8955
pub const SIOCSIFADDR = 0x8916
pub const SIOCSIFBR = 0x8941
pub const SIOCSIFBRDADDR = 0x891a
pub const SIOCSIFDSTADDR = 0x8918
pub const SIOCSIFENCAP = 0x8926
pub const SIOCSIFFLAGS = 0x8914
pub const SIOCSIFHWADDR = 0x8924
pub const SIOCSIFHWBROADCAST = 0x8937
pub const SIOCSIFLINK = 0x8911
pub const SIOCSIFMAP = 0x8971
pub const SIOCSIFMEM = 0x8920
pub const SIOCSIFMETRIC = 0x891e
pub const SIOCSIFMTU = 0x8922
pub const SIOCSIFNAME = 0x8923
pub const SIOCSIFNETMASK = 0x891c
pub const SIOCSIFPFLAGS = 0x8934
pub const SIOCSIFSLAVE = 0x8930
pub const SIOCSIFTXQLEN = 0x8943
pub const SIOCSPGRP = 0x8902
pub const SIOCSRARP = 0x8962
pub const SOCK_CLOEXEC = 0x80000
pub const SOCK_DCCP = 0x6
pub const SOCK_DGRAM = 0x2
pub const SOCK_NONBLOCK = 0x800
pub const SOCK_PACKET = 0xa
pub const SOCK_RAW = 0x3
pub const SOCK_RDM = 0x4
pub const SOCK_SEQPACKET = 0x5
pub const SOCK_STREAM = 0x1
pub const SOL_AAL = 0x109
pub const SOL_ATM = 0x108
pub const SOL_DECNET = 0x105
pub const SOL_ICMPV6 = 0x3a
pub const SOL_IP = 0x0
pub const SOL_IPV6 = 0x29
pub const SOL_IRDA = 0x10a
pub const SOL_PACKET = 0x107
pub const SOL_RAW = 0xff
pub const SOL_SOCKET = 0x1
pub const SOL_TCP = 0x6
pub const SOL_X25 = 0x106
pub const SOMAXCONN = 0x80
pub const SO_ACCEPTCONN = 0x1e
pub const SO_ATTACH_FILTER = 0x1a
pub const SO_BINDTODEVICE = 0x19
pub const SO_BROADCAST = 0x6
pub const SO_BSDCOMPAT = 0xe
pub const SO_BUSY_POLL = 0x2e
pub const SO_DEBUG = 0x1
pub const SO_DETACH_FILTER = 0x1b
pub const SO_DOMAIN = 0x27
pub const SO_DONTROUTE = 0x5
pub const SO_ERROR = 0x4
pub const SO_GET_FILTER = 0x1a
pub const SO_KEEPALIVE = 0x9
pub const SO_LINGER = 0xd
pub const SO_LOCK_FILTER = 0x2c
pub const SO_MARK = 0x24
pub const SO_MAX_PACING_RATE = 0x2f
pub const SO_NOFCS = 0x2b
pub const SO_NO_CHECK = 0xb
pub const SO_OOBINLINE = 0xa
pub const SO_PASSCRED = 0x10
pub const SO_PASSSEC = 0x22
pub const SO_PEEK_OFF = 0x2a
pub const SO_PEERCRED = 0x11
pub const SO_PEERNAME = 0x1c
pub const SO_PEERSEC = 0x1f
pub const SO_PRIORITY = 0xc
pub const SO_PROTOCOL = 0x26
pub const SO_RCVBUF = 0x8
pub const SO_RCVBUFFORCE = 0x21
pub const SO_RCVLOWAT = 0x12
pub const SO_RCVTIMEO = 0x14
pub const SO_REUSEADDR = 0x2
pub const SO_REUSEPORT = 0xf
pub const SO_RXQ_OVFL = 0x28
pub const SO_SECURITY_AUTHENTICATION = 0x16
pub const SO_SECURITY_ENCRYPTION_NETWORK = 0x18
pub const SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
pub const SO_SELECT_ERR_QUEUE = 0x2d
pub const SO_SNDBUF = 0x7
pub const SO_SNDBUFFORCE = 0x20
pub const SO_SNDLOWAT = 0x13
pub const SO_SNDTIMEO = 0x15
pub const SO_TIMESTAMP = 0x1d
pub const SO_TIMESTAMPING = 0x25
pub const SO_TIMESTAMPNS = 0x23
pub const SO_TYPE = 0x3
pub const SO_WIFI_STATUS = 0x29
pub const SYS_ACCEPT = 202
pub const SYS_ACCEPT4 = 242
pub const SYS_ACCT = 89
pub const SYS_ADD_KEY = 217
pub const SYS_ADJTIMEX = 171
pub const SYS_ARCH_SPECIFIC_SYSCALL = 244
pub const SYS_BIND = 200
pub const SYS_BPF = 280
pub const SYS_BRK = 214
pub const SYS_CAPGET = 90
pub const SYS_CAPSET = 91
pub const SYS_CHDIR = 49
pub const SYS_CHROOT = 51
pub const SYS_CLOCK_ADJTIME = 266
pub const SYS_CLOCK_GETRES = 114
pub const SYS_CLOCK_GETTIME = 113
pub const SYS_CLOCK_NANOSLEEP = 115
pub const SYS_CLOCK_SETTIME = 112
pub const SYS_CLONE = 220
pub const SYS_CLOSE = 57
pub const SYS_CONNECT = 203
pub const SYS_DELETE_MODULE = 106
pub const SYS_DUP = 23
pub const SYS_DUP3 = 24
pub const SYS_EPOLL_CREATE1 = 20
pub const SYS_EPOLL_CTL = 21
pub const SYS_EPOLL_PWAIT = 22
pub const SYS_EVENTFD2 = 19
pub const SYS_EXECVE = 221
pub const SYS_EXECVEAT = 281
pub const SYS_EXIT = 93
pub const SYS_EXIT_GROUP = 94
pub const SYS_FACCESSAT = 48
pub const SYS_FADVISE64 = 223
pub const SYS_FALLOCATE = 47
pub const SYS_FANOTIFY_INIT = 262
pub const SYS_FANOTIFY_MARK = 263
pub const SYS_FCHDIR = 50
pub const SYS_FCHMOD = 52
pub const SYS_FCHMODAT = 53
pub const SYS_FCHOWN = 55
pub const SYS_FCHOWNAT = 54
pub const SYS_FCNTL = 25
pub const SYS_FDATASYNC = 83
pub const SYS_FGETXATTR = 10
pub const SYS_FINIT_MODULE = 273
pub const SYS_FLISTXATTR = 13
pub const SYS_FLOCK = 32
pub const SYS_FREMOVEXATTR = 16
pub const SYS_FSETXATTR = 7
pub const SYS_FSTAT = 80
pub const SYS_FSTATAT = 79
pub const SYS_FSTATFS = 44
pub const SYS_FSYNC = 82
pub const SYS_FTRUNCATE = 46
pub const SYS_FUTEX = 98
pub const SYS_GETCPU = 168
pub const SYS_GETCWD = 17
pub const SYS_GETDENTS64 = 61
pub const SYS_GETEGID = 177
pub const SYS_GETEUID = 175
pub const SYS_GETGID = 176
pub const SYS_GETGROUPS = 158
pub const SYS_GETITIMER = 102
pub const SYS_GETPEERNAME = 205
pub const SYS_GETPGID = 155
pub const SYS_GETPID = 172
pub const SYS_GETPPID = 173
pub const SYS_GETPRIORITY = 141
pub const SYS_GETRANDOM = 278
pub const SYS_GETRESGID = 150
pub const SYS_GETRESUID = 148
pub const SYS_GETRLIMIT = 163
pub const SYS_GETRUSAGE = 165
pub const SYS_GETSID = 156
pub const SYS_GETSOCKNAME = 204
pub const SYS_GETSOCKOPT = 209
pub const SYS_GETTID = 178
pub const SYS_GETTIMEOFDAY = 169
pub const SYS_GETUID = 174
pub const SYS_GETXATTR = 8
pub const SYS_GET_MEMPOLICY = 236
pub const SYS_GET_ROBUST_LIST = 100
pub const SYS_INIT_MODULE = 105
pub const SYS_INOTIFY_ADD_WATCH = 27
pub const SYS_INOTIFY_INIT1 = 26
pub const SYS_INOTIFY_RM_WATCH = 28
pub const SYS_IOCTL = 29
pub const SYS_IOPRIO_GET = 31
pub const SYS_IOPRIO_SET = 30
pub const SYS_IO_CANCEL = 3
pub const SYS_IO_DESTROY = 1
pub const SYS_IO_GETEVENTS = 4
pub const SYS_IO_SETUP = 0
pub const SYS_IO_SUBMIT = 2
pub const SYS_KCMP = 272
pub const SYS_KEXEC_LOAD = 104
pub const SYS_KEYCTL = 219
pub const SYS_KILL = 129
pub const SYS_LGETXATTR = 9
pub const SYS_LINKAT = 37
pub const SYS_LISTEN = 201
pub const SYS_LISTXATTR = 11
pub const SYS_LLISTXATTR = 12
pub const SYS_LOOKUP_DCOOKIE = 18
pub const SYS_LREMOVEXATTR = 15
pub const SYS_LSEEK = 62
pub const SYS_LSETXATTR = 6
pub const SYS_MADVISE = 233
pub const SYS_MBIND = 235
pub const SYS_MEMFD_CREATE = 279
pub const SYS_MIGRATE_PAGES = 238
pub const SYS_MINCORE = 232
pub const SYS_MKDIRAT = 34
pub const SYS_MKNODAT = 33
pub const SYS_MLOCK = 228
pub const SYS_MLOCKALL = 230
pub const SYS_MMAP = 222
pub const SYS_MOUNT = 40
pub const SYS_MOVE_PAGES = 239
pub const SYS_MPROTECT = 226
pub const SYS_MQ_GETSETATTR = 185
pub const SYS_MQ_NOTIFY = 184
pub const SYS_MQ_OPEN = 180
pub const SYS_MQ_TIMEDRECEIVE = 183
pub const SYS_MQ_TIMEDSEND = 182
pub const SYS_MQ_UNLINK = 181
pub const SYS_MREMAP = 216
pub const SYS_MSGCTL = 187
pub const SYS_MSGGET = 186
pub const SYS_MSGRCV = 188
pub const SYS_MSGSND = 189
pub const SYS_MSYNC = 227
pub const SYS_MUNLOCK = 229
pub const SYS_MUNLOCKALL = 231
pub const SYS_MUNMAP = 215
pub const SYS_NAME_TO_HANDLE_AT = 264
pub const SYS_NANOSLEEP = 101
pub const SYS_NFSSERVCTL = 42
pub const SYS_OPENAT = 56
pub const SYS_OPEN_BY_HANDLE_AT = 265
pub const SYS_PERF_EVENT_OPEN = 241
pub const SYS_PERSONALITY = 92
pub const SYS_PIPE2 = 59
pub const SYS_PIVOT_ROOT = 41
pub const SYS_PPOLL = 73
pub const SYS_PRCTL = 167
pub const SYS_PREAD64 = 67
pub const SYS_PREADV = 69
pub const SYS_PRLIMIT64 = 261
pub const SYS_PROCESS_VM_READV = 270
pub const SYS_PROCESS_VM_WRITEV = 271
pub const SYS_PSELECT6 = 72
pub const SYS_PTRACE = 117
pub const SYS_PWRITE64 = 68
pub const SYS_PWRITEV = 70
pub const SYS_QUOTACTL = 60
pub const SYS_READ = 63
pub const SYS_READAHEAD = 213
pub const SYS_READLINKAT = 78
pub const SYS_READV = 65
pub const SYS_REBOOT = 142
pub const SYS_RECVFROM = 207
pub const SYS_RECVMMSG = 243
pub const SYS_RECVMSG = 212
pub const SYS_REMAP_FILE_PAGES = 234
pub const SYS_REMOVEXATTR = 14
pub const SYS_RENAMEAT = 38
pub const SYS_RENAMEAT2 = 276
pub const SYS_REQUEST_KEY = 218
pub const SYS_RESTART_SYSCALL = 128
pub const SYS_RT_SIGACTION = 134
pub const SYS_RT_SIGPENDING = 136
pub const SYS_RT_SIGPROCMASK = 135
pub const SYS_RT_SIGQUEUEINFO = 138
pub const SYS_RT_SIGRETURN = 139
pub const SYS_RT_SIGSUSPEND = 133
pub const SYS_RT_SIGTIMEDWAIT = 137
pub const SYS_RT_TGSIGQUEUEINFO = 240
pub const SYS_SCHED_GETAFFINITY = 123
pub const SYS_SCHED_GETATTR = 275
pub const SYS_SCHED_GETPARAM = 121
pub const SYS_SCHED_GETSCHEDULER = 120
pub const SYS_SCHED_GET_PRIORITY_MAX = 125
pub const SYS_SCHED_GET_PRIORITY_MIN = 126
pub const SYS_SCHED_RR_GET_INTERVAL = 127
pub const SYS_SCHED_SETAFFINITY = 122
pub const SYS_SCHED_SETATTR = 274
pub const SYS_SCHED_SETPARAM = 118
pub const SYS_SCHED_SETSCHEDULER = 119
pub const SYS_SCHED_YIELD = 124
pub const SYS_SECCOMP = 277
pub const SYS_SEMCTL = 191
pub const SYS_SEMGET = 190
pub const SYS_SEMOP = 193
pub const SYS_SEMTIMEDOP = 192
pub const SYS_SENDFILE = 71
pub const SYS_SENDMMSG = 269
pub const SYS_SENDMSG = 211
pub const SYS_SENDTO = 206
pub const SYS_SETDOMAINNAME = 162
pub const SYS_SETFSGID = 152
pub const SYS_SETFSUID = 151
pub const SYS_SETGID = 144
pub const SYS_SETGROUPS = 159
pub const SYS_SETHOSTNAME = 161
pub const SYS_SETITIMER = 103
pub const SYS_SETNS = 268
pub const SYS_SETPGID = 154
pub const SYS_SETPRIORITY = 140
pub const SYS_SETREGID = 143
pub const SYS_SETRESGID = 149
pub const SYS_SETRESUID = 147
pub const SYS_SETREUID = 145
pub const SYS_SETRLIMIT = 164
pub const SYS_SETSID = 157
pub const SYS_SETSOCKOPT = 208
pub const SYS_SETTIMEOFDAY = 170
pub const SYS_SETUID = 146
pub const SYS_SETXATTR = 5
pub const SYS_SET_MEMPOLICY = 237
pub const SYS_SET_ROBUST_LIST = 99
pub const SYS_SET_TID_ADDRESS = 96
pub const SYS_SHMAT = 196
pub const SYS_SHMCTL = 195
pub const SYS_SHMDT = 197
pub const SYS_SHMGET = 194
pub const SYS_SHUTDOWN = 210
pub const SYS_SIGALTSTACK = 132
pub const SYS_SIGNALFD4 = 74
pub const SYS_SOCKET = 198
pub const SYS_SOCKETPAIR = 199
pub const SYS_SPLICE = 76
pub const SYS_STATFS = 43
pub const SYS_SWAPOFF = 225
pub const SYS_SWAPON = 224
pub const SYS_SYMLINKAT = 36
pub const SYS_SYNC = 81
pub const SYS_SYNCFS = 267
pub const SYS_SYNC_FILE_RANGE = 84
pub const SYS_SYNC_FILE_RANGE2 = 84
pub const SYS_SYSINFO = 179
pub const SYS_SYSLOG = 116
pub const SYS_TEE = 77
pub const SYS_TGKILL = 131
pub const SYS_TIMERFD_CREATE = 85
pub const SYS_TIMERFD_GETTIME = 87
pub const SYS_TIMERFD_SETTIME = 86
pub const SYS_TIMER_CREATE = 107
pub const SYS_TIMER_DELETE = 111
pub const SYS_TIMER_GETOVERRUN = 109
pub const SYS_TIMER_GETTIME = 108
pub const SYS_TIMER_SETTIME = 110
pub const SYS_TIMES = 153
pub const SYS_TKILL = 130
pub const SYS_TRUNCATE = 45
pub const SYS_UMASK = 166
pub const SYS_UMOUNT2 = 39
pub const SYS_UNAME = 160
pub const SYS_UNLINKAT = 35
pub const SYS_UNSHARE = 97
pub const SYS_UTIMENSAT = 88
pub const SYS_VHANGUP = 58
pub const SYS_VMSPLICE = 75
pub const SYS_WAIT4 = 260
pub const SYS_WAITID = 95
pub const SYS_WRITE = 64
pub const SYS_WRITEV = 66
pub const S_BLKSIZE = 0x200
pub const S_IEXEC = 0x40
pub const S_IFBLK = 0x6000
pub const S_IFCHR = 0x2000
pub const S_IFDIR = 0x4000
pub const S_IFIFO = 0x1000
pub const S_IFLNK = 0xa000
pub const S_IFMT = 0xf000
pub const S_IFREG = 0x8000
pub const S_IFSOCK = 0xc000
pub const S_IREAD = 0x100
pub const S_IRGRP = 0x20
pub const S_IROTH = 0x4
pub const S_IRUSR = 0x100
pub const S_IRWXG = 0x38
pub const S_IRWXO = 0x7
pub const S_IRWXU = 0x1c0
pub const S_ISGID = 0x400
pub const S_ISUID = 0x800
pub const S_ISVTX = 0x200
pub const S_IWGRP = 0x10
pub const S_IWOTH = 0x2
pub const S_IWRITE = 0x80
pub const S_IWUSR = 0x80
pub const S_IXGRP = 0x8
pub const S_IXOTH = 0x1
pub const S_IXUSR = 0x40
pub const SizeofCmsghdr = 0x10
pub const SizeofICMPv6Filter = 0x20
pub const SizeofIPMreq = 0x8
pub const SizeofIPMreqn = 0xc
pub const SizeofIPv6MTUInfo = 0x20
pub const SizeofIPv6Mreq = 0x14
pub const SizeofIfAddrmsg = 0x8
pub const SizeofIfInfomsg = 0x10
pub const SizeofInet4Pktinfo = 0xc
pub const SizeofInet6Pktinfo = 0x14
pub const SizeofInotifyEvent = 0x10
pub const SizeofLinger = 0x8
pub const SizeofMsghdr = 0x38
pub const SizeofNlAttr = 0x4
pub const SizeofNlMsgerr = 0x14
pub const SizeofNlMsghdr = 0x10
pub const SizeofRtAttr = 0x4
pub const SizeofRtGenmsg = 0x1
pub const SizeofRtMsg = 0xc
pub const SizeofRtNexthop = 0x8
pub const SizeofSockFilter = 0x8
pub const SizeofSockFprog = 0x10
pub const SizeofSockaddrAny = 0x70
pub const SizeofSockaddrInet4 = 0x10
pub const SizeofSockaddrInet6 = 0x1c
pub const SizeofSockaddrLinklayer = 0x14
pub const SizeofSockaddrNetlink = 0xc
pub const SizeofSockaddrUnix = 0x6e
pub const SizeofTCPInfo = 0x68
pub const SizeofUcred = 0xc
pub const TCFLSH = 0x540b
pub const TCGETS = 0x5401
pub const TCIFLUSH = 0x0
pub const TCIOFLUSH = 0x2
pub const TCOFLUSH = 0x1
pub const TCP_CONGESTION = 0xd
pub const TCP_COOKIE_IN_ALWAYS = 0x1
pub const TCP_COOKIE_MAX = 0x10
pub const TCP_COOKIE_MIN = 0x8
pub const TCP_COOKIE_OUT_NEVER = 0x2
pub const TCP_COOKIE_PAIR_SIZE = 0x20
pub const TCP_COOKIE_TRANSACTIONS = 0xf
pub const TCP_CORK = 0x3
pub const TCP_DEFER_ACCEPT = 0x9
pub const TCP_FASTOPEN = 0x17
pub const TCP_INFO = 0xb
pub const TCP_KEEPCNT = 0x6
pub const TCP_KEEPIDLE = 0x4
pub const TCP_KEEPINTVL = 0x5
pub const TCP_LINGER2 = 0x8
pub const TCP_MAXSEG = 0x2
pub const TCP_MAXWIN = 0xffff
pub const TCP_MAX_WINSHIFT = 0xe
pub const TCP_MD5SIG = 0xe
pub const TCP_MD5SIG_MAXKEYLEN = 0x50
pub const TCP_MSS = 0x200
pub const TCP_MSS_DEFAULT = 0x218
pub const TCP_MSS_DESIRED = 0x4c4
pub const TCP_NODELAY = 0x1
pub const TCP_QUEUE_SEQ = 0x15
pub const TCP_QUICKACK = 0xc
pub const TCP_REPAIR = 0x13
pub const TCP_REPAIR_OPTIONS = 0x16
pub const TCP_REPAIR_QUEUE = 0x14
pub const TCP_SYNCNT = 0x7
pub const TCP_S_DATA_IN = 0x4
pub const TCP_S_DATA_OUT = 0x8
pub const TCP_THIN_DUPACK = 0x11
pub const TCP_THIN_LINEAR_TIMEOUTS = 0x10
pub const TCP_TIMESTAMP = 0x18
pub const TCP_USER_TIMEOUT = 0x12
pub const TCP_WINDOW_CLAMP = 0xa
pub const TCSAFLUSH = 0x2
pub const TCSETS = 0x5402
pub const TIOCCBRK = 0x5428
pub const TIOCCONS = 0x541d
pub const TIOCEXCL = 0x540c
pub const TIOCGDEV = 0x80045432
pub const TIOCGETD = 0x5424
pub const TIOCGEXCL = 0x80045440
pub const TIOCGICOUNT = 0x545d
pub const TIOCGLCKTRMIOS = 0x5456
pub const TIOCGPGRP = 0x540f
pub const TIOCGPKT = 0x80045438
pub const TIOCGPTLCK = 0x80045439
pub const TIOCGPTN = 0x80045430
pub const TIOCGRS485 = 0x542e
pub const TIOCGSERIAL = 0x541e
pub const TIOCGSID = 0x5429
pub const TIOCGSOFTCAR = 0x5419
pub const TIOCGWINSZ = 0x5413
pub const TIOCINQ = 0x541b
pub const TIOCLINUX = 0x541c
pub const TIOCMBIC = 0x5417
pub const TIOCMBIS = 0x5416
pub const TIOCMGET = 0x5415
pub const TIOCMIWAIT = 0x545c
pub const TIOCMSET = 0x5418
pub const TIOCM_CAR = 0x40
pub const TIOCM_CD = 0x40
pub const TIOCM_CTS = 0x20
pub const TIOCM_DSR = 0x100
pub const TIOCM_DTR = 0x2
pub const TIOCM_LE = 0x1
pub const TIOCM_RI = 0x80
pub const TIOCM_RNG = 0x80
pub const TIOCM_RTS = 0x4
pub const TIOCM_SR = 0x10
pub const TIOCM_ST = 0x8
pub const TIOCNOTTY = 0x5422
pub const TIOCNXCL = 0x540d
pub const TIOCOUTQ = 0x5411
pub const TIOCPKT = 0x5420
pub const TIOCPKT_DATA = 0x0
pub const TIOCPKT_DOSTOP = 0x20
pub const TIOCPKT_FLUSHREAD = 0x1
pub const TIOCPKT_FLUSHWRITE = 0x2
pub const TIOCPKT_IOCTL = 0x40
pub const TIOCPKT_NOSTOP = 0x10
pub const TIOCPKT_START = 0x8
pub const TIOCPKT_STOP = 0x4
pub const TIOCSBRK = 0x5427
pub const TIOCSCTTY = 0x540e
pub const TIOCSERCONFIG = 0x5453
pub const TIOCSERGETLSR = 0x5459
pub const TIOCSERGETMULTI = 0x545a
pub const TIOCSERGSTRUCT = 0x5458
pub const TIOCSERGWILD = 0x5454
pub const TIOCSERSETMULTI = 0x545b
pub const TIOCSERSWILD = 0x5455
pub const TIOCSER_TEMT = 0x1
pub const TIOCSETD = 0x5423
pub const TIOCSIG = 0x40045436
pub const TIOCSLCKTRMIOS = 0x5457
pub const TIOCSPGRP = 0x5410
pub const TIOCSPTLCK = 0x40045431
pub const TIOCSRS485 = 0x542f
pub const TIOCSSERIAL = 0x541f
pub const TIOCSSOFTCAR = 0x541a
pub const TIOCSTI = 0x5412
pub const TIOCSWINSZ = 0x5414
pub const TIOCVHANGUP = 0x5437
pub const TOSTOP = 0x100
pub const TUNATTACHFILTER = 0x401054d5
pub const TUNDETACHFILTER = 0x401054d6
pub const TUNGETFEATURES = 0x800454cf
pub const TUNGETFILTER = 0x801054db
pub const TUNGETIFF = 0x800454d2
pub const TUNGETSNDBUF = 0x800454d3
pub const TUNGETVNETHDRSZ = 0x800454d7
pub const TUNSETDEBUG = 0x400454c9
pub const TUNSETGROUP = 0x400454ce
pub const TUNSETIFF = 0x400454ca
pub const TUNSETIFINDEX = 0x400454da
pub const TUNSETLINK = 0x400454cd
pub const TUNSETNOCSUM = 0x400454c8
pub const TUNSETOFFLOAD = 0x400454d0
pub const TUNSETOWNER = 0x400454cc
pub const TUNSETPERSIST = 0x400454cb
pub const TUNSETQUEUE = 0x400454d9
pub const TUNSETSNDBUF = 0x400454d4
pub const TUNSETTXFILTER = 0x400454d1
pub const TUNSETVNETHDRSZ = 0x400454d8
pub const VDISCARD = 0xd
pub const VEOF = 0x4
pub const VEOL = 0xb
pub const VEOL2 = 0x10
pub const VERASE = 0x2
pub const VINTR = 0x0
pub const VKILL = 0x3
pub const VLNEXT = 0xf
pub const VMIN = 0x6
pub const VQUIT = 0x1
pub const VREPRINT = 0xc
pub const VSTART = 0x8
pub const VSTOP = 0x9
pub const VSUSP = 0xa
pub const VSWTC = 0x7
pub const VT0 = 0x0
pub const VT1 = 0x4000
pub const VTDLY = 0x4000
pub const VTIME = 0x5
pub const VWERASE = 0xe
pub const WALL = 0x40000000
pub const WCLONE = 0x80000000
pub const WCONTINUED = 0x8
pub const WEXITED = 0x4
pub const WNOHANG = 0x1
pub const WNOTHREAD = 0x20000000
pub const WNOWAIT = 0x1000000
pub const WORDSIZE = 0x40
pub const WSTOPPED = 0x2
pub const WUNTRACED = 0x2
pub const XCASE = 0x4
/// ForkLock is used to synchronize creation of new file descriptors
/// with fork.
///
/// We want the child in a fork/exec sequence to inherit only the
/// file descriptors we intend. To do that, we mark all file
/// descriptors close-on-exec and then, in the child, explicitly
/// unmark the ones we want the exec'ed program to keep.
/// Unix doesn't make this easy: there is, in general, no way to
/// allocate a new file descriptor close-on-exec. Instead you
/// have to allocate the descriptor and then mark it close-on-exec.
/// If a fork happens between those two events, the child's exec
/// will inherit an unwanted file descriptor.
///
/// This lock solves that race: the create new fd/mark close-on-exec
/// operation is done holding ForkLock for reading, and the fork itself
/// is done holding ForkLock for writing. At least, that's the idea.
/// There are some complications.
///
/// Some system calls that create new file descriptors can block
/// for arbitrarily long times: open on a hung NFS server or named
/// pipe, accept on a socket, and so on. We can't reasonably grab
/// the lock across those operations.
///
/// It is worse to inherit some file descriptors than others.
/// If a non-malicious child accidentally inherits an open ordinary file,
/// that's not a big deal. On the other hand, if a long-lived child
/// accidentally inherits the write end of a pipe, then the reader
/// of that pipe will not see EOF until that child exits, potentially
/// causing the parent program to hang. This is a common problem
/// in threaded C programs that use popen.
///
/// Luckily, the file descriptors that are most important not to
/// inherit are not the ones that can take an arbitrarily long time
/// to create: pipe returns instantly, and the net package uses
/// non-blocking I/O to accept on a listening socket.
/// The rules for which file descriptor-creating operations use the
/// ForkLock are as follows:
///
/// - [Pipe]. Use pipe2 if available. Otherwise, does not block,
/// so use ForkLock.
/// - [Socket]. Use SOCK_CLOEXEC if available. Otherwise, does not
/// block, so use ForkLock.
/// - [Open]. Use [O_CLOEXEC] if available. Otherwise, may block,
/// so live with the race.
/// - [Dup]. Use [F_DUPFD_CLOEXEC] or dup3 if available. Otherwise,
/// does not block, so use ForkLock.
pub var ForkLock: sync.RWMutex
/// For testing: clients can set this flag to force
/// creation of IPv6 sockets to return [EAFNOSUPPORT].
pub var SocketDisableIPv6: bool
pub var Stderr: int
pub var Stdin: int
pub var Stdout: int
impl Cmsghdr {
fn SetLen(self: Ref<Cmsghdr>, length: int)
}
impl Errno {
fn Error(self) -> string
fn Is(self, target: error) -> bool
fn Temporary(self) -> bool
fn Timeout(self) -> bool
}
impl Iovec {
fn SetLen(self: Ref<Iovec>, length: int)
}
impl Msghdr {
fn SetControllen(self: Ref<Msghdr>, length: int)
}
impl PtraceRegs {
fn PC(self: Ref<PtraceRegs>) -> uint64
fn SetPC(self: Ref<PtraceRegs>, pc: uint64)
}
impl Signal {
fn Signal(self)
fn String(self) -> string
}
impl Timespec {
/// Nano returns the time stored in ts as nanoseconds.
fn Nano(self: Ref<Timespec>) -> int64
/// Unix returns the time stored in ts as seconds plus nanoseconds.
fn Unix(self: Ref<Timespec>) -> (int64, int64)
}
impl Timeval {
/// Nano returns the time stored in tv as nanoseconds.
fn Nano(self: Ref<Timeval>) -> int64
/// Unix returns the time stored in tv as seconds plus nanoseconds.
fn Unix(self: Ref<Timeval>) -> (int64, int64)
}
impl WaitStatus {
fn Continued(self) -> bool
fn CoreDump(self) -> bool
fn ExitStatus(self) -> int
fn Exited(self) -> bool
fn Signal(self) -> Signal
fn Signaled(self) -> bool
fn StopSignal(self) -> Signal
fn Stopped(self) -> bool
fn TrapCause(self) -> int
}