ref: cfb284970e8c164d43d814496a5363b92782fb15
dir: /lib/sys/sys+openbsd:6.1-x64.myr/
/*
generated-ish source
stitched for openbsd:6.1 arch:x64
edit with caution.
*/
pkg sys =
type size = int64 /* spans entire address space */
type usize = uint64 /* unsigned size */
type off = int64 /* file offsets */
type intptr = uint64/* can hold any pointer losslessly */
type time = int64 /* milliseconds since epoch */
type pid = int32 /* process id */
type scno = int64 /*syscall*/
type fdopt = int64 /* fd options */
type fd = int32 /* fd */
type whence = uint64 /* seek from whence */
type mprot = int64 /* memory protection */
type mopt = int64 /* memory mapping options */
type socktype = int64 /* socket type */
type sockproto = int64 /* socket protocol */
type sockopt = int32 /* socket option */
type sockfam = uint8 /* socket family */
type filemode = uint32
type filetype = uint8
type fcntlcmd = int64
type signo = int32
type sigflags = int32
type sigset = uint32
type msg = void
type clock = union
`Clockrealtime
`Clockmonotonic
`Clockproccputime
`Clockthreadcputime
`Clockuptime
;;
type waitstatus = union
`Waitfail int32
`Waitexit int32
`Waitsig int32
`Waitstop int32
;;
type timespec = struct
sec : int64
nsec : int64
;;
type timeval = struct
sec : int64
usec : int64
;;
type pollfd = struct
fd : fd
events : uint16
revents : uint16
;;
type sigaction = struct
handler : byte# /* code pointer */
mask : sigset
flags : sigflags
;;
const Simaxsz = 128
const Sipad = (Simaxsz / 4) - 3
type siginfo = struct
signo : int
code : int
errno : int
pad : int[Sipad]
;;
type rusage = struct
utime : timeval /* user time */
stime : timeval /* system time */
maxrss : uint64 /* max resident set size*/
ixrss : uint64 /* shared text size */
idrss : uint64 /* unshared data size */
isrss : uint64 /* unshared stack size */
minflt : uint64 /* page reclaims */
majflt : uint64 /* page faults */
nswap : uint64 /* swaps */
inblock : uint64 /* block input ops */
oublock : uint64 /* block output ops */
msgsnd : uint64 /* messages sent */
msgrcv : uint64 /* messages received */
nsignals : uint64 /* signals received */
nvcsw : uint64 /* voluntary context switches */
nivcsw : uint64 /* involuntary context switches */
;;
type tforkparams = struct
tcb : void#
tid : pid#
stk : byte#
;;
type statbuf = struct
mode : filemode
dev : uint32
ino : uint64
nlink : uint32
uid : uint32
gid : uint32
rdev : uint32
atime : timespec
mtime : timespec
ctime : timespec
size : off
blocks : int64
blksize : uint32
flags : uint32
gen : uint32
birthtim : timespec
;;
type semun = struct
semarr : void#
;;
const Mfsnamelen = 16 /* length of fs type name, including nul */
const Mnamelen = 90 /* length of buffer for returned name */
type statfs = struct
flags : uint32 /* copy of mount flags */
bsize : uint32 /* file system block size */
iosize : uint32 /* optimal transfer block size */
/* unit is f_bsize */
blocks : uint64 /* total data blocks in file system */
bfree : uint64 /* free blocks in fs */
bavail : int64 /* free blocks avail to non-superuser */
files : int64 /* total file nodes in file system */
ffree : int64 /* free file nodes in fs */
favail : int64 /* free file nodes avail to non-root */
syncwr : int64 /* count of sync writes since mount */
syncrd : int64 /* count of sync reads since mount */
asyncwr : int64 /* count of async writes since mount */
asyncrd : int64 /* count of async reads since mount */
fsid : fsid /* file system id */
namemax : uint32 /* maximum filename length */
owner : uid /* user that mounted the file system */
ctime : uint64 /* last mount [-u] time */
fstypename : byte[Mfsnamelen]; /* fs type name */
mntonname : byte[Mnamelen]; /* directory on which mounted */
mntfromname : byte[Mnamelen]; /* mounted file system */
mntfromspec : byte[Mnamelen]; /* special for mount request */
///union mount_info mount_info; /* per-filesystem mount options */
__mountinfo : byte[160]; /* storage for 'union mount_info' */
;;
type utsname = struct
system : byte[32]
node : byte[32]
release : byte[32]
version : byte[32]
machine : byte[32]
;;
type sockaddr = struct
len : byte
fam : sockfam
data : byte[14] /* what is the *actual* length? */
;;
type sockaddr_in = struct
len : byte
fam : sockfam
port : uint16
addr : byte[4]
zero : byte[8]
;;
type sockaddr_in6 = struct
len : byte
fam : sockfam
port : uint16
flow : uint32
addr : byte[16]
scope : uint32
;;
type sockaddr_un = struct
len : uint8
fam : sockfam
path : byte[104]
;;
type sockaddr_storage = struct
len : byte
fam : sockfam
__pad1 : byte[6]
__align : int64
__pad2 : byte[240]
;;
type dirent = struct
fileno : uint64
off : uint64
reclen : uint16
ftype : uint8
namlen : uint8
__pad : byte[4]
name : byte[256]
;;
type iovec = struct
base : byte#
len : uint64
;;
/* open options */
const Ordonly : fdopt = 0x0
const Owronly : fdopt = 0x1
const Ordwr : fdopt = 0x2
const Oappend : fdopt = 0x8
const Ondelay : fdopt = 0x4
const Oshlock : fdopt = 0x10 /* open with shared file lock */
const Oexlock : fdopt = 0x20 /* open with exclusive file lock */
const Oasync : fdopt = 0x40 /* signal pgrp when data ready */
const Osync : fdopt = 0x80 /* backwards compatibility */
const Onofollow : fdopt = 0x100
const Ocreat : fdopt = 0x200
const Otrunc : fdopt = 0x400
const Oexcl : fdopt = 0x800
const Ocloexec : fdopt = 0x10000
const Odsync : fdopt = Osync /* synchronous data writes */
const Orsync : fdopt = Osync /* synchronous reads */
const Odir : fdopt = 0x20000
/* poll options */
const Pollin : uint16 = 0x0001
const Pollpri : uint16 = 0x0002
const Pollout : uint16 = 0x0004
const Pollerr : uint16 = 0x0008
const Pollhup : uint16 = 0x0010
const Pollnval : uint16 = 0x0020
const Pollnorm : uint16 = 0x0040
const Pollrdband: uint16 = 0x0080
const Pollwrband: uint16 = 0x0100
/* stat modes */
const Sifmt : filemode = 0xf000
const Sififo : filemode = 0x1000
const Sifchr : filemode = 0x2000
const Sifdir : filemode = 0x4000
const Sifblk : filemode = 0x6000
const Sifreg : filemode = 0x8000
const Siflnk : filemode = 0xa000
const Sifsock : filemode = 0xc000
const Sisvtx : filemode = 0x0200
/* mmap protection */
const Mprotnone : mprot = 0x0
const Mprotrd : mprot = 0x1
const Mprotwr : mprot = 0x2
const Mprotexec : mprot = 0x4
const Mprotrw : mprot = 0x3
/* mmap options */
const Mshared : mopt = 0x1
const Mpriv : mopt = 0x2
const Mfixed : mopt = 0x10
const Mfile : mopt = 0x0
const Manon : mopt = 0x1000
const Mstack : mopt = 0
const Mnoreplace : mopt = 0x0800
/* file types */
const Dtunknown : filetype = 0
const Dtfifo : filetype = 1
const Dtchr : filetype = 2
const Dtdir : filetype = 4
const Dtblk : filetype = 6
const Dtreg : filetype = 8
const Dtlnk : filetype = 10
const Dtsock : filetype = 12
/* socket families. INCOMPLETE. */
const Afunspec : sockfam = 0
const Afunix : sockfam = 1
const Afinet : sockfam = 2
const Afinet6 : sockfam = 24
/* socket types. */
const Sockstream : socktype = 1
const Sockdgram : socktype = 2
const Sockraw : socktype = 3
const Sockrdm : socktype = 4
const Sockseqpacket : socktype = 5
/* socket options */
const Sodebug : sockopt = 0x0001 /* turn on debugging info recording */
const Soacceptconn : sockopt = 0x0002 /* socket has had listen() */
const Soreuseaddr : sockopt = 0x0004 /* allow local address reuse */
const Sokeepalive : sockopt = 0x0008 /* keep connections alive */
const Sodontroute : sockopt = 0x0010 /* just use interface addresses */
const Sobroadcast : sockopt = 0x0020 /* permit sending of broadcast msgs */
const Souseloopback : sockopt = 0x0040 /* bypass hardware when possible */
const Solinger : sockopt = 0x0080 /* linger on close if data present */
const Sooobinline : sockopt = 0x0100 /* leave received OOB data in line */
const Soreuseport : sockopt = 0x0200 /* allow local address & port reuse */
const Sotimestamp : sockopt = 0x0800 /* timestamp received dgram traffic */
const Sobindany : sockopt = 0x1000 /* allow bind to any address */
const Sosndbuf : sockopt = 0x1001 /* send buffer size */
const Sorcvbuf : sockopt = 0x1002 /* receive buffer size */
const Sosndlowat : sockopt = 0x1003 /* send low-water mark */
const Sorcvlowat : sockopt = 0x1004 /* receive low-water mark */
const Sosndtimeo : sockopt = 0x1005 /* send timeout */
const Sorcvtimeo : sockopt = 0x1006 /* receive timeout */
const Soerror : sockopt = 0x1007 /* get error status and clear */
const Sotype : sockopt = 0x1008 /* get socket type */
const Sonetproc : sockopt = 0x1020 /* multiplex; network processing */
const Sortable : sockopt = 0x1021 /* routing table to be used */
const Sopeercred : sockopt = 0x1022 /* get connect-time credentials */
const Sosplice : sockopt = 0x1023 /* splice data to other socket */
/* socket option levels */
const Solsocket : sockproto = 0xffff
/* network protocols */
const Ipproto_ip : sockproto = 0
const Ipproto_icmp : sockproto = 1
const Ipproto_tcp : sockproto = 6
const Ipproto_udp : sockproto = 17
const Ipproto_raw : sockproto = 255
const Seekset : whence = 0
const Seekcur : whence = 1
const Seekend : whence = 2
/* system specific constants */
const Maxpathlen : size = 1024
/* fcntl constants */
const Fdupfd : fcntlcmd = 0 /* duplicate file descriptor */
const Fgetfd : fcntlcmd = 1 /* get file descriptor flags */
const Fsetfd : fcntlcmd = 2 /* set file descriptor flags */
const Fgetfl : fcntlcmd = 3 /* get file status flags */
const Fsetfl : fcntlcmd = 4 /* set file status flags */
const Fgetown : fcntlcmd = 5 /* get SIGIO/SIGURG proc/pgrp */
const Fsetown : fcntlcmd = 6 /* set SIGIO/SIGURG proc/pgrp */
const Fogetlk : fcntlcmd = 7 /* get record locking information */
const Fosetlk : fcntlcmd = 8 /* set record locking information */
/* return value for a failed mapping */
const Mapbad : byte# = (-1 : byte#)
/* signal flags */
const Saonstack : sigflags = 0x0001 /* take signal on signal stack */
const Sarestart : sigflags = 0x0002 /* restart system on signal return */
const Saresethand : sigflags = 0x0004 /* reset to SIG_DFL when taking signal */
const Sanodefer : sigflags = 0x0010 /* don't mask the signal we're delivering */
const Sanocldwait : sigflags = 0x0020 /* don't create zombies (assign to pid 1) */
const Sanocldstop : sigflags = 0x0008 /* do not generate SIGCHLD on child stop */
const Sasiginfo : sigflags = 0x0040 /* generate siginfo_t */
/* signals */
const Sighup : signo = 1 /* hangup */
const Sigint : signo = 2 /* interrupt */
const Sigquit : signo = 3 /* quit */
const Sigill : signo = 4 /* illegal instruction (not reset when caught) */
const Sigtrap : signo = 5 /* trace trap (not reset when caught) */
const Sigabrt : signo = 6 /* abort() */
const Sigiot : signo = Sigabrt /* compatibility */
const Sigemt : signo = 7 /* EMT instruction */
const Sigfpe : signo = 8 /* floating point exception */
const Sigkill : signo = 9 /* kill (cannot be caught or ignored) */
const Sigbus : signo = 10 /* bus error */
const Sigsegv : signo = 11 /* segmentation violation */
const Sigsys : signo = 12 /* bad argument to system call */
const Sigpipe : signo = 13 /* write on a pipe with no one to read it */
const Sigalrm : signo = 14 /* alarm clock */
const Sigterm : signo = 15 /* software termination signal from kill */
const Sigurg : signo = 16 /* urgent condition on IO channel */
const Sigstop : signo = 17 /* sendable stop signal not from tty */
const Sigtstp : signo = 18 /* stop signal from tty */
const Sigcont : signo = 19 /* continue a stopped process */
const Sigchld : signo = 20 /* to parent on child stop or exit */
const Sigttin : signo = 21 /* to readers pgrp upon background tty read */
const Sigttou : signo = 22 /* like TTIN for output if (tp->t_local<OSTOP) */
const Sigio : signo = 23 /* input/output possible signal */
const Sigxcpu : signo = 24 /* exceeded CPU time limit */
const Sigxfsz : signo = 25 /* exceeded file size limit */
const Sigvtalrm : signo = 26 /* virtual time alarm */
const Sigprof : signo = 27 /* profiling time alarm */
const Sigwinch : signo = 28 /* window size changes */
const Siginfo : signo = 29 /* information request */
const Sigusr1 : signo = 30 /* user defined signal 1 */
const Sigusr2 : signo = 31 /* user defined signal 2 */
const Sigthr : signo = 32 /* thread library AST */
extern const syscall : (sc:scno, args:... -> int64)
extern var __cenvp : byte##
type dev = int32
type uid = uint32
type gid = uint32
type fd_mask = uint32
type uintptr = uint64
type clockid = int32
type id = uint32
type rlim = uint64
type key = int64
type shmatt = int16
type tfork = struct
tcb : void#
tid : pid#
stack : void#
;;
type msghdr = struct
name : void#
namelen : int32
iov : iovec#
iovlen : uint
control : void#
controllen : int32
flags : int
;;
type fsid = struct
val : int32[2]
;;
type fid = struct
len : uint16
reserved : uint16
data : byte[16]
;;
type fhandle = struct
fsid : fsid
fid : fid
;;
type timezone = struct
minuteswest : int
dsttime : int
;;
type itimerval = struct
interval : timeval
value : timeval
;;
type fdset = struct
bits : fd_mask[32]
;;
type kevent = struct
ident : uintptr
filter : int16
flags : uint16
fflags : uint
data : int64
udata : void#
;;
type kbind = struct
addr : void#
size : size
;;
type fxsave64 = struct
fcw : uint16
fsw : uint16
ftw : uint8
unused1 : uint8
fop : uint16
rip : uint64
rdp : uint64
mxcsr : uint32
mxcsr_mask : uint32
st : uint64[2][8]
xmm : uint64[2][16]
unused3 : uint8[96]
;;
type sigcontext = struct
rdi : int64
rsi : int64
rdx : int64
rcx : int64
r8 : int64
r9 : int64
r10 : int64
r11 : int64
r12 : int64
r13 : int64
r14 : int64
r15 : int64
rbp : int64
rbx : int64
rax : int64
gs : int64
fs : int64
es : int64
ds : int64
trapno : int64
err : int64
rip : int64
cs : int64
rflags : int64
rsp : int64
ss : int64
fpstate : fxsave64#
unused : int
mask : int
cookie : int64
;;
type rlimit = struct
cur : rlim
max : rlim
;;
type sigaltstack = struct
sp : void#
size : size
flags : int
;;
type sembuf = struct
num : uint16
op : int16
flg : int16
;;
type ipc_perm = struct
cuid : uid
cgid : gid
uid : uid
gid : gid
mode : filemode
seq : uint16
key : key
;;
type shmid_ds = struct
perm : ipc_perm
segsz : int
lpid : pid
cpid : pid
nattch : shmatt
atime : time
atimensec : int64
dtime : time
dtimensec : int64
ctime : time
ctimensec : int64
internal : void#
;;
type msqid_ds = struct
perm : ipc_perm
first : msg#
last : msg#
cbytes : uint64
qnum : uint64
qbytes : uint64
lspid : pid
lrpid : pid
stime : time
pad1 : int64
rtime : time
pad2 : int64
ctime : time
pad3 : int64
pad4 : int64[4]
;;
const Sysexit : scno = 1
const Sysfork : scno = 2
const Sysread : scno = 3
const Syswrite : scno = 4
const Sysopen : scno = 5
const Sysclose : scno = 6
const Sysgetentropy : scno = 7
const Sys__tfork : scno = 8
const Syslink : scno = 9
const Sysunlink : scno = 10
const Syswait4 : scno = 11
const Syschdir : scno = 12
const Sysfchdir : scno = 13
const Sysmknod : scno = 14
const Syschmod : scno = 15
const Syschown : scno = 16
const Sysobreak : scno = 17
const Sysgetdtablecount : scno = 18
const Sysgetrusage : scno = 19
const Sysgetpid : scno = 20
const Sysmount : scno = 21
const Sysunmount : scno = 22
const Syssetuid : scno = 23
const Sysgetuid : scno = 24
const Sysgeteuid : scno = 25
const Sysptrace : scno = 26
const Sysrecvmsg : scno = 27
const Syssendmsg : scno = 28
const Sysrecvfrom : scno = 29
const Sysaccept : scno = 30
const Sysgetpeername : scno = 31
const Sysgetsockname : scno = 32
const Sysaccess : scno = 33
const Syschflags : scno = 34
const Sysfchflags : scno = 35
const Syssync : scno = 36
const Sysstat : scno = 38
const Sysgetppid : scno = 39
const Syslstat : scno = 40
const Sysdup : scno = 41
const Sysfstatat : scno = 42
const Sysgetegid : scno = 43
const Sysprofil : scno = 44
const Sysktrace : scno = 45
const Syssigaction : scno = 46
const Sysgetgid : scno = 47
const Syssigprocmask : scno = 48
const Sysgetlogin59 : scno = 49
const Syssetlogin : scno = 50
const Sysacct : scno = 51
const Syssigpending : scno = 52
const Sysfstat : scno = 53
const Sysioctl : scno = 54
const Sysreboot : scno = 55
const Sysrevoke : scno = 56
const Syssymlink : scno = 57
const Sysreadlink : scno = 58
const Sysexecve : scno = 59
const Sysumask : scno = 60
const Syschroot : scno = 61
const Sysgetfsstat : scno = 62
const Sysstatfs : scno = 63
const Sysfstatfs : scno = 64
const Sysfhstatfs : scno = 65
const Sysvfork : scno = 66
const Sysgettimeofday : scno = 67
const Syssettimeofday : scno = 68
const Syssetitimer : scno = 69
const Sysgetitimer : scno = 70
const Sysselect : scno = 71
const Syskevent : scno = 72
const Sysmunmap : scno = 73
const Sysmprotect : scno = 74
const Sysmadvise : scno = 75
const Sysutimes : scno = 76
const Sysfutimes : scno = 77
const Sysmincore : scno = 78
const Sysgetgroups : scno = 79
const Syssetgroups : scno = 80
const Sysgetpgrp : scno = 81
const Syssetpgid : scno = 82
const Sysutimensat : scno = 84
const Sysfutimens : scno = 85
const Syskbind : scno = 86
const Sysclock_gettime : scno = 87
const Sysclock_settime : scno = 88
const Sysclock_getres : scno = 89
const Sysdup2 : scno = 90
const Sysnanosleep : scno = 91
const Sysfcntl : scno = 92
const Sysaccept4 : scno = 93
const Sys__thrsleep : scno = 94
const Sysfsync : scno = 95
const Syssetpriority : scno = 96
const Syssocket : scno = 97
const Sysconnect : scno = 98
const Sysgetdents : scno = 99
const Sysgetpriority : scno = 100
const Syspipe2 : scno = 101
const Sysdup3 : scno = 102
const Syssigreturn : scno = 103
const Sysbind : scno = 104
const Syssetsockopt : scno = 105
const Syslisten : scno = 106
const Syschflagsat : scno = 107
const Syspledge : scno = 108
const Sysppoll : scno = 109
const Syspselect : scno = 110
const Syssigsuspend : scno = 111
const Syssendsyslog : scno = 112
const Sysgetsockopt : scno = 118
const Systhrkill : scno = 119
const Sysreadv : scno = 120
const Syswritev : scno = 121
const Syskill : scno = 122
const Sysfchown : scno = 123
const Sysfchmod : scno = 124
const Syssetreuid : scno = 126
const Syssetregid : scno = 127
const Sysrename : scno = 128
const Sysflock : scno = 131
const Sysmkfifo : scno = 132
const Syssendto : scno = 133
const Sysshutdown : scno = 134
const Syssocketpair : scno = 135
const Sysmkdir : scno = 136
const Sysrmdir : scno = 137
const Sysadjtime : scno = 140
const Sysgetlogin_r : scno = 141
const Syssetsid : scno = 147
const Sysquotactl : scno = 148
const Sysnfssvc : scno = 155
const Sysgetfh : scno = 161
const Syssysarch : scno = 165
const Syspread : scno = 173
const Syspwrite : scno = 174
const Syssetgid : scno = 181
const Syssetegid : scno = 182
const Sysseteuid : scno = 183
const Syspathconf : scno = 191
const Sysfpathconf : scno = 192
const Sysswapctl : scno = 193
const Sysgetrlimit : scno = 194
const Syssetrlimit : scno = 195
const Sysmmap : scno = 197
const Syslseek : scno = 199
const Systruncate : scno = 200
const Sysftruncate : scno = 201
const Syssysctl : scno = 202
const Sysmlock : scno = 203
const Sysmunlock : scno = 204
const Sysgetpgid : scno = 207
const Sysutrace : scno = 209
const Syssemget : scno = 221
const Sysmsgget : scno = 225
const Sysmsgsnd : scno = 226
const Sysmsgrcv : scno = 227
const Sysshmat : scno = 228
const Sysshmdt : scno = 230
const Sysminherit : scno = 250
const Syspoll : scno = 252
const Sysissetugid : scno = 253
const Syslchown : scno = 254
const Sysgetsid : scno = 255
const Sysmsync : scno = 256
const Syspipe : scno = 263
const Sysfhopen : scno = 264
const Syspreadv : scno = 267
const Syspwritev : scno = 268
const Syskqueue : scno = 269
const Sysmlockall : scno = 271
const Sysmunlockall : scno = 272
const Sysgetresuid : scno = 281
const Syssetresuid : scno = 282
const Sysgetresgid : scno = 283
const Syssetresgid : scno = 284
const Sysmquery : scno = 286
const Sysclosefrom : scno = 287
const Syssigaltstack : scno = 288
const Sysshmget : scno = 289
const Syssemop : scno = 290
const Sysfhstat : scno = 294
const Sys__semctl : scno = 295
const Sysshmctl : scno = 296
const Sysmsgctl : scno = 297
const Syssched_yield : scno = 298
const Sysgetthrid : scno = 299
const Sys__thrwakeup : scno = 301
const Sys__threxit : scno = 302
const Sys__thrsigdivert : scno = 303
const Sys__getcwd : scno = 304
const Sysadjfreq : scno = 305
const Syssetrtable : scno = 310
const Sysgetrtable : scno = 311
const Sysfaccessat : scno = 313
const Sysfchmodat : scno = 314
const Sysfchownat : scno = 315
const Syslinkat : scno = 317
const Sysmkdirat : scno = 318
const Sysmkfifoat : scno = 319
const Sysmknodat : scno = 320
const Sysopenat : scno = 321
const Sysreadlinkat : scno = 322
const Sysrenameat : scno = 323
const Syssymlinkat : scno = 324
const Sysunlinkat : scno = 325
const Sys__set_tcb : scno = 329
const Sys__get_tcb : scno = 330
/* start manual overrides { */
const exit : (status:int -> void)
const getpid : ( -> pid)
const kill : (pid:pid, sig:int64 -> int64)
const fork : (-> pid)
const wait4 : (pid:pid, loc:int32#, opt : int64, usage:rusage# -> int64)
const waitpid : (pid:pid, loc:int32#, opt : int64 -> int64)
const execv : (cmd : byte[:], args : byte[:][:] -> int64)
const execve : (cmd : byte[:], args : byte[:][:], env : byte[:][:] -> int64)
const waitstatus : (st : int32 -> waitstatus)
extern const __tfork_thread : (tfp : tforkparams#, sz : size, fn : void#, arg : void# -> pid)
const open : (path:byte[:], opts:fdopt -> fd)
const openmode : (path:byte[:], opts:fdopt, mode:int64 -> fd)
const close : (fd:fd -> int64)
const creat : (path:byte[:], mode:int64 -> fd)
const unlink : (path:byte[:] -> int)
const read : (fd:fd, buf:byte[:] -> size)
const pread : (fd:fd, buf:byte[:], off : off -> size)
const readv : (fd:fd, iov:iovec[:] -> size)
const write : (fd:fd, buf:byte[:] -> size)
const pwrite : (fd:fd, buf:byte[:], off : off -> size)
const writev : (fd:fd, iov:iovec[:] -> size)
const lseek : (fd:fd, off : off, whence : whence -> int64)
const stat : (path:byte[:], sb:statbuf# -> int64)
const lstat : (path:byte[:], sb:statbuf# -> int64)
const fstat : (fd:fd, sb:statbuf# -> int64)
const mkdir : (path : byte[:], mode : int64 -> int64)
generic ioctl : (fd:fd, req : int64, arg:@a# -> int64)
const getdents : (fd : fd, buf : byte[:] -> int64)
const chdir : (p : byte[:] -> int64)
const __getcwd : (buf : byte[:] -> int64)
const poll : (pfd : pollfd[:], tm : int -> int)
const sigaction : (sig : signo, act : sigaction#, oact : sigaction# -> int)
const sigprocmask : (how : int32, set : sigset#, oset : sigset# -> int)
const pipe : (fds : fd[2]# -> int64)
const dup : (fd : fd -> fd)
const dup2 : (src : fd, dst : fd -> fd)
const fcntl : (fd : fd, cmd : fcntlcmd, args : byte# -> int64)
const socket : (dom : sockfam, stype : socktype, proto : sockproto -> fd)
const connect : (sock : fd, addr : sockaddr#, len : size -> int)
const accept : (sock : fd, addr : sockaddr#, len : size# -> fd)
const listen : (sock : fd, backlog : int -> int)
const bind : (sock : fd, addr : sockaddr#, len : size -> int)
const setsockopt : (sock : fd, lev : sockproto, opt : sockopt, val : void#, len : size -> int)
const getsockopt : (sock : fd, lev : sockproto, opt : sockopt, val : void#, len : size# -> int)
const munmap : (addr:byte#, len:size -> int64)
const mmap : (addr:byte#, len:size, prot:mprot, flags:mopt, fd:fd, off:off -> byte#)
const clock_getres : (clk : clock, ts : timespec# -> int32)
const clock_gettime : (clk : clock, ts : timespec# -> int32)
const clock_settime : (clk : clock, ts : timespec# -> int32)
const sleep : (time : uint64 -> int32)
const nanosleep : (req : timespec#, rem : timespec# -> int32)
const uname : (buf : utsname# -> int)
const sysctl : (mib : int[:], \
old : void#, oldsz : size#, \
new : void#, newsz : size# \
-> int)
extern const cstring : (str : byte[:] -> byte#)
extern const alloca : (sz : size -> byte#)
extern const __freebsd_pipe : (fds : fd[2]# -> int64)
/* } end manual overrides */
const getentropy : (buf : void#, nbyte : size -> int)
const __tfork : (param : tfork#, psize : size -> int)
const link : (path : byte#, link : byte# -> int)
const fchdir : (fd : int -> int)
const mknod : (path : byte#, mode : filemode, dev : dev -> int)
const chmod : (path : byte#, mode : filemode -> int)
const chown : (path : byte#, uid : uid, gid : gid -> int)
const obreak : (nsize : byte# -> int)
const getdtablecount : ( -> int)
const getrusage : (who : int, rusage : rusage# -> int)
const mount : (kind : byte#, path : byte#, flags : int, data : void# -> int)
const unmount : (path : byte#, flags : int -> int)
const setuid : (uid : uid -> int)
const getuid : ( -> uid)
const geteuid : ( -> uid)
const ptrace : (req : int, pid : pid, addr : void#, data : int -> int)
const recvmsg : (s : int, msg : msghdr#, flags : int -> size)
const sendmsg : (s : int, msg : msghdr#, flags : int -> size)
const recvfrom : (s : int, buf : void#, len : size, flags : int, from : sockaddr#, fromlenaddr : int32# -> size)
const getpeername : (fdes : int, asa : sockaddr#, alen : int32# -> int)
const getsockname : (fdes : int, asa : sockaddr#, alen : int32# -> int)
const access : (path : byte#, amode : int -> int)
const chflags : (path : byte#, flags : uint -> int)
const fchflags : (fd : int, flags : uint -> int)
const sync : ( -> void)
const getppid : ( -> pid)
const fstatat : (fd : int, path : byte#, buf : statbuf#, flag : int -> int)
const getegid : ( -> gid)
const profil : (samples : void#, size : size, offset : uint64, scale : uint -> int)
const ktrace : (fname : byte#, ops : int, facs : int, pid : pid -> int)
const getgid : ( -> gid)
const getlogin59 : (namebuf : byte#, namelen : uint -> int)
const setlogin : (namebuf : byte# -> int)
const acct : (path : byte# -> int)
const sigpending : ( -> int)
const reboot : (opt : int -> int)
const revoke : (path : byte# -> int)
const symlink : (path : byte#, link : byte# -> int)
const readlink : (path : byte#, buf : byte#, count : size -> size)
const umask : (newmask : filemode -> filemode)
const chroot : (path : byte# -> int)
const getfsstat : (buf : statfs#, bufsize : size, flags : int -> int)
const statfs : (path : byte#, buf : statfs# -> int)
const fstatfs : (fd : int, buf : statfs# -> int)
const fhstatfs : (fhp : fhandle#, buf : statfs# -> int)
const vfork : ( -> int)
const gettimeofday : (tp : timeval#, tzp : timezone# -> int)
const settimeofday : (tv : timeval#, tzp : timezone# -> int)
const setitimer : (which : int, itv : itimerval#, oitv : itimerval# -> int)
const getitimer : (which : int, itv : itimerval# -> int)
const select : (nd : int, _in : fdset#, ou : fdset#, ex : fdset#, tv : timeval# -> int)
const kevent : (fd : int, changelist : kevent#, nchanges : int, eventlist : kevent#, nevents : int, timeout : timespec# -> int)
const mprotect : (addr : void#, len : size, prot : int -> int)
const madvise : (addr : void#, len : size, behav : int -> int)
const utimes : (path : byte#, tptr : timeval# -> int)
const futimes : (fd : int, tptr : timeval# -> int)
const mincore : (addr : void#, len : size, vec : byte# -> int)
const getgroups : (gidsetsize : int, gidset : gid# -> int)
const setgroups : (gidsetsize : int, gidset : gid# -> int)
const getpgrp : ( -> int)
const setpgid : (pid : pid, pgid : pid -> int)
const utimensat : (fd : int, path : byte#, times : timespec#, flag : int -> int)
const futimens : (fd : int, times : timespec# -> int)
const kbind : (param : kbind#, psize : size, proc_cookie : int64 -> int)
const accept4 : (s : int, name : sockaddr#, anamelen : int32#, flags : int -> int)
const __thrsleep : (ident : void#, clock_id : clockid, tp : timespec#, lock : void#, abort : int# -> int)
const fsync : (fd : int -> int)
const setpriority : (which : int, who : id, prio : int -> int)
const getpriority : (which : int, who : id -> int)
const pipe2 : (fdp : int#, flags : int -> int)
const dup3 : (from : int, to : int, flags : int -> int)
const sigreturn : (sigcntxp : sigcontext# -> int)
const chflagsat : (fd : int, path : byte#, flags : uint, atflags : int -> int)
const pledge : (request : byte#, paths : byte## -> int)
const ppoll : (fds : pollfd#, nfds : uint, ts : timespec#, mask : sigset# -> int)
const pselect : (nd : int, _in : fdset#, ou : fdset#, ex : fdset#, ts : timespec#, mask : sigset# -> int)
const sigsuspend : (mask : int -> int)
const sendsyslog : (buf : void#, nbyte : size, flags : int -> int)
const thrkill : (tid : pid, signum : int, tcb : void# -> int)
const fchown : (fd : int, uid : uid, gid : gid -> int)
const fchmod : (fd : int, mode : filemode -> int)
const setreuid : (ruid : uid, euid : uid -> int)
const setregid : (rgid : gid, egid : gid -> int)
const rename : (from : byte#, to : byte# -> int)
const flock : (fd : int, how : int -> int)
const mkfifo : (path : byte#, mode : filemode -> int)
const sendto : (s : int, buf : void#, len : size, flags : int, to : sockaddr#, tolen : int32 -> size)
const shutdown : (s : int, how : int -> int)
const socketpair : (domain : int, kind : int, protocol : int, rsv : int# -> int)
const rmdir : (path : byte# -> int)
const adjtime : (delta : timeval#, olddelta : timeval# -> int)
const getlogin_r : (namebuf : byte#, namelen : uint -> int)
const setsid : ( -> int)
const quotactl : (path : byte#, cmd : int, uid : int, arg : byte# -> int)
const nfssvc : (flag : int, argp : void# -> int)
const getfh : (fname : byte#, fhp : fhandle# -> int)
const sysarch : (op : int, parms : void# -> int)
const setgid : (gid : gid -> int)
const setegid : (egid : gid -> int)
const seteuid : (euid : uid -> int)
const pathconf : (path : byte#, name : int -> int64)
const fpathconf : (fd : int, name : int -> int64)
const swapctl : (cmd : int, arg : void#, misc : int -> int)
const getrlimit : (which : int, rlp : rlimit# -> int)
const setrlimit : (which : int, rlp : rlimit# -> int)
const truncate : (path : byte#, pad : int, length : off -> int)
const ftruncate : (fd : int, pad : int, length : off -> int)
const mlock : (addr : void#, len : size -> int)
const munlock : (addr : void#, len : size -> int)
const getpgid : (pid : pid -> pid)
const utrace : (label : byte#, addr : void#, len : size -> int)
const semget : (key : key, nsems : int, semflg : int -> int)
const msgget : (key : key, msgflg : int -> int)
const msgsnd : (msqid : int, msgp : void#, msgsz : size, msgflg : int -> int)
const msgrcv : (msqid : int, msgp : void#, msgsz : size, msgtyp : int64, msgflg : int -> int)
const shmat : (shmid : int, shmaddr : void#, shmflg : int -> void)
const shmdt : (shmaddr : void# -> int)
const minherit : (addr : void#, len : size, inherit : int -> int)
const issetugid : ( -> int)
const lchown : (path : byte#, uid : uid, gid : gid -> int)
const getsid : (pid : pid -> pid)
const msync : (addr : void#, len : size, flags : int -> int)
const fhopen : (fhp : fhandle#, flags : int -> int)
const preadv : (fd : int, iovp : iovec#, iovcnt : int, pad : int, offset : off -> size)
const pwritev : (fd : int, iovp : iovec#, iovcnt : int, pad : int, offset : off -> size)
const kqueue : ( -> int)
const mlockall : (flags : int -> int)
const munlockall : ( -> int)
const getresuid : (ruid : uid#, euid : uid#, suid : uid# -> int)
const setresuid : (ruid : uid, euid : uid, suid : uid -> int)
const getresgid : (rgid : gid#, egid : gid#, sgid : gid# -> int)
const setresgid : (rgid : gid, egid : gid, sgid : gid -> int)
const mquery : (addr : void#, len : size, prot : int, flags : int, fd : int, pad : int64, pos : off -> void)
const closefrom : (fd : int -> int)
const sigaltstack : (nss : sigaltstack#, oss : sigaltstack# -> int)
const shmget : (key : key, size : size, shmflg : int -> int)
const semop : (semid : int, sops : sembuf#, nsops : size -> int)
const fhstat : (fhp : fhandle#, sb : statbuf# -> int)
const __semctl : (semid : int, semnum : int, cmd : int, arg : semun# -> int)
const shmctl : (shmid : int, cmd : int, buf : shmid_ds# -> int)
const msgctl : (msqid : int, cmd : int, buf : msqid_ds# -> int)
const sched_yield : ( -> int)
const getthrid : ( -> pid)
const __thrwakeup : (ident : void#, n : int -> int)
const __threxit : (notdead : pid# -> void)
const __thrsigdivert : (sigmask : sigset, info : siginfo#, timeout : timespec# -> int)
const adjfreq : (freq : int64#, oldfreq : int64# -> int)
const setrtable : (rtableid : int -> int)
const getrtable : ( -> int)
const faccessat : (fd : int, path : byte#, amode : int, flag : int -> int)
const fchmodat : (fd : int, path : byte#, mode : filemode, flag : int -> int)
const fchownat : (fd : int, path : byte#, uid : uid, gid : gid, flag : int -> int)
const linkat : (fd1 : int, path1 : byte#, fd2 : int, path2 : byte#, flag : int -> int)
const mkdirat : (fd : int, path : byte#, mode : filemode -> int)
const mkfifoat : (fd : int, path : byte#, mode : filemode -> int)
const mknodat : (fd : int, path : byte#, mode : filemode, dev : dev -> int)
const openat : (fd : int, path : byte#, flags : int, mode : filemode -> int)
const readlinkat : (fd : int, path : byte#, buf : byte#, count : size -> size)
const renameat : (fromfd : int, from : byte#, tofd : int, to : byte# -> int)
const symlinkat : (path : byte#, fd : int, link : byte# -> int)
const unlinkat : (fd : int, path : byte#, flag : int -> int)
const __set_tcb : (tcb : void# -> void)
const __get_tcb : ( -> void#)
;;
/* start manual overrides { */
/* process control */
/* wrappers to extract wait status */
/* fd manipulation */
/* signals */
/* fd stuff */
/* NB: the C ABI uses '...' for the args. */
/* networking */
/* memory mapping */
/* time - doublecheck if this is right */
/* system information */
/*
wraps a syscall argument, converting it to 64 bits for the syscall function. This is
the same as casting, but more concise than writing a cast to uint64
*/
generic a = {x : @t; -> (x : uint64)}
/* process management */
const exit = {status; syscall(Sysexit, a(status))}
const getpid = {; -> (syscall(Sysgetpid, 1) : pid)}
const kill = {pid, sig; -> syscall(Syskill, pid, sig)}
const fork = {; -> (syscall(Sysfork) : pid)}
const wait4 = {pid, loc, opt, usage; -> syscall(Syswait4, pid, loc, opt, usage)}
const waitpid = {pid, loc, opt;
-> wait4(pid, loc, opt, (0 : rusage#))
}
const execv = {cmd, args
var p, cargs, i
/* of course we fucking have to duplicate this code everywhere,
* since we want to stack allocate... */
p = alloca((args.len + 1)*sizeof(byte#))
cargs = (p : byte##)[:args.len + 1]
for i = 0; i < args.len; i++
cargs[i] = cstring(args[i])
;;
cargs[args.len] = (0 : byte#)
-> syscall(Sysexecve, cstring(cmd), a(p), a(__cenvp))
}
const execve = {cmd, args, env
var cargs, cenv, i
var p
/* copy the args */
p = alloca((args.len + 1)*sizeof(byte#))
cargs = (p : byte##)[:args.len]
for i = 0; i < args.len; i++
cargs[i] = cstring(args[i])
;;
cargs[args.len] = (0 : byte#)
/*
copy the env.
of course we fucking have to duplicate this code everywhere,
since we want to stack allocate...
*/
p = alloca((env.len + 1)*sizeof(byte#))
cenv = (p : byte##)[:env.len]
for i = 0; i < env.len; i++
cenv[i] = cstring(env[i])
;;
cenv[env.len] = (0 : byte#)
-> syscall(Sysexecve, cstring(cmd), a(p), a(cenv))
}
/* fd manipulation */
const open = {path, opts; -> (syscall(Sysopen, cstring(path), a(opts), a(0o777)) : fd)}
const openmode = {path, opts, mode; -> (syscall(Sysopen, cstring(path), a(opts), a(mode)) : fd)}
const close = {fd; -> syscall(Sysclose, a(fd))}
const creat = {path, mode; -> (openmode(path, Ocreat | Otrunc | Owronly, mode) : fd)}
const unlink = {path; -> (syscall(Sysunlink, cstring(path)) : int)}
const read = {fd, buf; -> (syscall(Sysread, a(fd), (buf : byte#), a(buf.len)) : size)}
const pread = {fd, buf, off; -> (syscall(Syspread, a(fd), (buf : byte#), a(buf.len), a(off)) : size)}
const readv = {fd, vec; -> (syscall(Sysreadv, a(fd), (vec : iovec#), a(vec.len)) : size)}
const write = {fd, buf; -> (syscall(Syswrite, a(fd), (buf : byte#), a(buf.len)) : size)}
const pwrite = {fd, buf, off; -> (syscall(Syspwrite, a(fd), (buf : byte#), a(buf.len), a(off)) : size)}
const writev = {fd, vec; -> (syscall(Syswritev, a(fd), (vec : iovec#), a(vec.len)) : size)}
const lseek = {fd, off, whence; -> syscall(Syslseek, a(fd), a(off), a(whence))}
const stat = {path, sb; -> syscall(Sysstat, cstring(path), a(sb))}
const lstat = {path, sb; -> syscall(Syslstat, cstring(path), a(sb))}
const fstat = {fd, sb; -> syscall(Sysfstat, a(fd), a(sb))}
const mkdir = {path, mode; -> (syscall(Sysmkdir, cstring(path), a(mode)) : int64)}
generic ioctl = {fd, req, arg; -> (syscall(Sysioctl, a(fd), a(req), a(arg)) : int64)}
const chdir = {dir; -> syscall(Syschdir, cstring(dir))}
const __getcwd = {buf; -> syscall(Sys__getcwd, a(buf), a(buf.len))}
const getdents = {fd, buf; -> (syscall(Sysgetdents, a(buf), a(buf.len)) : int64)}
/* signals */
const sigaction = {sig, act, oact; -> (syscall(Syssigaction, a(sig), a(act), a(oact)) : int)}
const sigprocmask = {sig, act, oact; -> (syscall(Syssigprocmask, a(sig), a(act), a(oact)) : int)}
/* file stuff */
const pipe = {fds; -> syscall(Syspipe, fds)}
const dup = {fd; -> (syscall(Sysdup, a(fd)) : fd)}
const dup2 = {src, dst; -> (syscall(Sysdup2, a(src), a(dst)) : fd)}
const fcntl = {fd, cmd, args; -> syscall(Sysfcntl, a(fd), a(cmd), a(args))}
const poll = {pfd, tm; -> (syscall(Syspoll, (pfd : byte#), a(pfd.len), a(tm)) : int)}
/* networking */
const socket = {dom, stype, proto; -> (syscall(Syssocket, a(dom), a(stype), a(proto)) : fd)}
const connect = {sock, addr, len; -> (syscall(Sysconnect, a(sock), a(addr), a(len)) : int)}
const accept = {sock, addr, len; -> (syscall(Sysaccept, a(sock), a(addr), a(len)) : fd)}
const listen = {sock, backlog; -> (syscall(Syslisten, a(sock), a(backlog)) : int)}
const bind = {sock, addr, len; -> (syscall(Sysbind, a(sock), a(addr), a(len)) : int)}
const setsockopt = {sock, lev, opt, val, len; -> (syscall(Syssetsockopt, a(sock), a(lev), a(opt), a(val), a(len)) : int)}
const getsockopt = {sock, lev, opt, val, len; -> (syscall(Syssetsockopt, a(sock), a(lev), a(opt), a(val), a(len)) : int)}
/* memory management */
const munmap = {addr, len; -> syscall(Sysmunmap, a(addr), a(len))}
const mmap = {addr, len, prot, flags, fd, off;
/* the actual syscall has padding on the offset arg */
-> (syscall(Sysmmap, a(addr), a(len), a(prot), a(flags), a(fd), a(0), a(off)) : byte#)
}
/* time */
const clock_getres = {clk, ts; -> (syscall(Sysclock_getres, clockid(clk), a(ts)) : int32)}
const clock_gettime = {clk, ts; -> (syscall(Sysclock_gettime, clockid(clk), a(ts)) : int32)}
const clock_settime = {clk, ts; -> (syscall(Sysclock_settime, clockid(clk), a(ts)) : int32)}
const sleep = {time
var req, rem
req = [.sec = (time : int64), .nsec = 0]
-> nanosleep(&req, &rem)
}
const nanosleep = {req, rem; -> (syscall(Sysnanosleep, a(req), a(rem)) : int32)}
/* system information */
const uname = {buf
var mib : int[2]
var ret
var sys, syssz
var nod, nodsz
var rel, relsz
var ver, versz
var mach, machsz
ret = 0
mib[0] = 1 /* CTL_KERN */
mib[1] = 1 /* KERN_OSTYPE */
sys = (buf.system[:] : void#)
syssz = buf.system.len
ret = sysctl(mib[:], sys, &syssz, (0 : void#), (0 : size#))
if ret < 0
-> ret
;;
mib[0] = 1 /* CTL_KERN */
mib[1] = 10 /* KERN_HOSTNAME */
nod = (buf.node[:] : void#)
nodsz = buf.node.len
ret = sysctl(mib[:], nod, &nodsz, (0 : void#), (0 : size#))
if ret < 0
-> ret
;;
mib[0] = 1 /* CTL_KERN */
mib[1] = 2 /* KERN_OSRELEASE */
rel = (buf.release[:] : void#)
relsz = buf.release.len
ret = sysctl(mib[:], rel, &relsz, (0 : void#), (0 : size#))
if ret < 0
-> ret
;;
mib[0] = 1 /* CTL_KERN */
mib[1] = 27 /* KERN_OSVERSION */
ver = (buf.version[:] : void#)
versz = buf.version.len
ret = sysctl(mib[:], ver, &versz, (0 : void#), (0 : size#))
if ret < 0
-> ret
;;
mib[0] = 6 /* CTL_HW */
mib[1] = 1 /* HW_MACHINE */
mach = (buf.machine[:] : void#)
machsz = buf.machine.len
ret = sysctl(mib[:], mach, &machsz, (0 : void#), (0 : size#))
if ret < 0
-> ret
;;
-> 0
}
const sysctl = {mib, old, oldsz, new, newsz
/* all args already passed through a() or ar ptrs */
-> (syscall(Syssysctl, \
(mib : int#), a(mib.len), old, oldsz, new, newsz) : int)
}
const clockid = {clk
match clk
| `Clockrealtime: -> 0
| `Clockproccputime: -> 2
| `Clockmonotonic: -> 3
| `Clockthreadcputime: -> 4
| `Clockuptime: -> 5
;;
-> -1
}
const waitstatus = {st
if st < 0
-> `Waitfail st
;;
match st & 0o177
| 0: -> `Waitexit (st >> 8)
| 0x7f:-> `Waitstop (st >> 8)
| sig: -> `Waitsig sig
;;
}
/* } end manual overrides */
const getentropy = {buf, nbyte
-> (syscall(Sysgetentropy, a(buf), a(nbyte)) : int)
}
const __tfork = {param, psize
-> (syscall(Sys__tfork, a(param), a(psize)) : int)
}
const link = {path, link
-> (syscall(Syslink, a(path), a(link)) : int)
}
const fchdir = {fd
-> (syscall(Sysfchdir, a(fd)) : int)
}
const mknod = {path, mode, dev
-> (syscall(Sysmknod, a(path), a(mode), a(dev)) : int)
}
const chmod = {path, mode
-> (syscall(Syschmod, a(path), a(mode)) : int)
}
const chown = {path, uid, gid
-> (syscall(Syschown, a(path), a(uid), a(gid)) : int)
}
const obreak = {nsize
-> (syscall(Sysobreak, a(nsize)) : int)
}
const getdtablecount = {
-> (syscall(Sysgetdtablecount) : int)
}
const getrusage = {who, rusage
-> (syscall(Sysgetrusage, a(who), a(rusage)) : int)
}
const mount = {kind, path, flags, data
-> (syscall(Sysmount, a(kind), a(path), a(flags), a(data)) : int)
}
const unmount = {path, flags
-> (syscall(Sysunmount, a(path), a(flags)) : int)
}
const setuid = {uid
-> (syscall(Syssetuid, a(uid)) : int)
}
const getuid = {
-> (syscall(Sysgetuid) : uid)
}
const geteuid = {
-> (syscall(Sysgeteuid) : uid)
}
const ptrace = {req, pid, addr, data
-> (syscall(Sysptrace, a(req), a(pid), a(addr), a(data)) : int)
}
const recvmsg = {s, msg, flags
-> (syscall(Sysrecvmsg, a(s), a(msg), a(flags)) : size)
}
const sendmsg = {s, msg, flags
-> (syscall(Syssendmsg, a(s), a(msg), a(flags)) : size)
}
const recvfrom = {s, buf, len, flags, from, fromlenaddr
-> (syscall(Sysrecvfrom, a(s), a(buf), a(len), a(flags), a(from), a(fromlenaddr)) : size)
}
const getpeername = {fdes, asa, alen
-> (syscall(Sysgetpeername, a(fdes), a(asa), a(alen)) : int)
}
const getsockname = {fdes, asa, alen
-> (syscall(Sysgetsockname, a(fdes), a(asa), a(alen)) : int)
}
const access = {path, amode
-> (syscall(Sysaccess, a(path), a(amode)) : int)
}
const chflags = {path, flags
-> (syscall(Syschflags, a(path), a(flags)) : int)
}
const fchflags = {fd, flags
-> (syscall(Sysfchflags, a(fd), a(flags)) : int)
}
const sync = {
-> (syscall(Syssync) : void)
}
const getppid = {
-> (syscall(Sysgetppid) : pid)
}
const fstatat = {fd, path, buf, flag
-> (syscall(Sysfstatat, a(fd), a(path), a(buf), a(flag)) : int)
}
const getegid = {
-> (syscall(Sysgetegid) : gid)
}
const profil = {samples, size, offset, scale
-> (syscall(Sysprofil, a(samples), a(size), a(offset), a(scale)) : int)
}
const ktrace = {fname, ops, facs, pid
-> (syscall(Sysktrace, a(fname), a(ops), a(facs), a(pid)) : int)
}
const getgid = {
-> (syscall(Sysgetgid) : gid)
}
const getlogin59 = {namebuf, namelen
-> (syscall(Sysgetlogin59, a(namebuf), a(namelen)) : int)
}
const setlogin = {namebuf
-> (syscall(Syssetlogin, a(namebuf)) : int)
}
const acct = {path
-> (syscall(Sysacct, a(path)) : int)
}
const sigpending = {
-> (syscall(Syssigpending) : int)
}
const reboot = {opt
-> (syscall(Sysreboot, a(opt)) : int)
}
const revoke = {path
-> (syscall(Sysrevoke, a(path)) : int)
}
const symlink = {path, link
-> (syscall(Syssymlink, a(path), a(link)) : int)
}
const readlink = {path, buf, count
-> (syscall(Sysreadlink, a(path), a(buf), a(count)) : size)
}
const umask = {newmask
-> (syscall(Sysumask, a(newmask)) : filemode)
}
const chroot = {path
-> (syscall(Syschroot, a(path)) : int)
}
const getfsstat = {buf, bufsize, flags
-> (syscall(Sysgetfsstat, a(buf), a(bufsize), a(flags)) : int)
}
const statfs = {path, buf
-> (syscall(Sysstatfs, a(path), a(buf)) : int)
}
const fstatfs = {fd, buf
-> (syscall(Sysfstatfs, a(fd), a(buf)) : int)
}
const fhstatfs = {fhp, buf
-> (syscall(Sysfhstatfs, a(fhp), a(buf)) : int)
}
const vfork = {
-> (syscall(Sysvfork) : int)
}
const gettimeofday = {tp, tzp
-> (syscall(Sysgettimeofday, a(tp), a(tzp)) : int)
}
const settimeofday = {tv, tzp
-> (syscall(Syssettimeofday, a(tv), a(tzp)) : int)
}
const setitimer = {which, itv, oitv
-> (syscall(Syssetitimer, a(which), a(itv), a(oitv)) : int)
}
const getitimer = {which, itv
-> (syscall(Sysgetitimer, a(which), a(itv)) : int)
}
const select = {nd, _in, ou, ex, tv
-> (syscall(Sysselect, a(nd), a(_in), a(ou), a(ex), a(tv)) : int)
}
const kevent = {fd, changelist, nchanges, eventlist, nevents, timeout
-> (syscall(Syskevent, a(fd), a(changelist), a(nchanges), a(eventlist), a(nevents), a(timeout)) : int)
}
const mprotect = {addr, len, prot
-> (syscall(Sysmprotect, a(addr), a(len), a(prot)) : int)
}
const madvise = {addr, len, behav
-> (syscall(Sysmadvise, a(addr), a(len), a(behav)) : int)
}
const utimes = {path, tptr
-> (syscall(Sysutimes, a(path), a(tptr)) : int)
}
const futimes = {fd, tptr
-> (syscall(Sysfutimes, a(fd), a(tptr)) : int)
}
const mincore = {addr, len, vec
-> (syscall(Sysmincore, a(addr), a(len), a(vec)) : int)
}
const getgroups = {gidsetsize, gidset
-> (syscall(Sysgetgroups, a(gidsetsize), a(gidset)) : int)
}
const setgroups = {gidsetsize, gidset
-> (syscall(Syssetgroups, a(gidsetsize), a(gidset)) : int)
}
const getpgrp = {
-> (syscall(Sysgetpgrp) : int)
}
const setpgid = {pid, pgid
-> (syscall(Syssetpgid, a(pid), a(pgid)) : int)
}
const utimensat = {fd, path, times, flag
-> (syscall(Sysutimensat, a(fd), a(path), a(times), a(flag)) : int)
}
const futimens = {fd, times
-> (syscall(Sysfutimens, a(fd), a(times)) : int)
}
const kbind = {param, psize, proc_cookie
-> (syscall(Syskbind, a(param), a(psize), a(proc_cookie)) : int)
}
const accept4 = {s, name, anamelen, flags
-> (syscall(Sysaccept4, a(s), a(name), a(anamelen), a(flags)) : int)
}
const __thrsleep = {ident, clock_id, tp, lock, abort
-> (syscall(Sys__thrsleep, a(ident), a(clock_id), a(tp), a(lock), a(abort)) : int)
}
const fsync = {fd
-> (syscall(Sysfsync, a(fd)) : int)
}
const setpriority = {which, who, prio
-> (syscall(Syssetpriority, a(which), a(who), a(prio)) : int)
}
const getpriority = {which, who
-> (syscall(Sysgetpriority, a(which), a(who)) : int)
}
const pipe2 = {fdp, flags
-> (syscall(Syspipe2, a(fdp), a(flags)) : int)
}
const dup3 = {from, to, flags
-> (syscall(Sysdup3, a(from), a(to), a(flags)) : int)
}
const sigreturn = {sigcntxp
-> (syscall(Syssigreturn, a(sigcntxp)) : int)
}
const chflagsat = {fd, path, flags, atflags
-> (syscall(Syschflagsat, a(fd), a(path), a(flags), a(atflags)) : int)
}
const pledge = {request, paths
-> (syscall(Syspledge, a(request), a(paths)) : int)
}
const ppoll = {fds, nfds, ts, mask
-> (syscall(Sysppoll, a(fds), a(nfds), a(ts), a(mask)) : int)
}
const pselect = {nd, _in, ou, ex, ts, mask
-> (syscall(Syspselect, a(nd), a(_in), a(ou), a(ex), a(ts), a(mask)) : int)
}
const sigsuspend = {mask
-> (syscall(Syssigsuspend, a(mask)) : int)
}
const sendsyslog = {buf, nbyte, flags
-> (syscall(Syssendsyslog, a(buf), a(nbyte), a(flags)) : int)
}
const thrkill = {tid, signum, tcb
-> (syscall(Systhrkill, a(tid), a(signum), a(tcb)) : int)
}
const fchown = {fd, uid, gid
-> (syscall(Sysfchown, a(fd), a(uid), a(gid)) : int)
}
const fchmod = {fd, mode
-> (syscall(Sysfchmod, a(fd), a(mode)) : int)
}
const setreuid = {ruid, euid
-> (syscall(Syssetreuid, a(ruid), a(euid)) : int)
}
const setregid = {rgid, egid
-> (syscall(Syssetregid, a(rgid), a(egid)) : int)
}
const rename = {from, to
-> (syscall(Sysrename, a(from), a(to)) : int)
}
const flock = {fd, how
-> (syscall(Sysflock, a(fd), a(how)) : int)
}
const mkfifo = {path, mode
-> (syscall(Sysmkfifo, a(path), a(mode)) : int)
}
const sendto = {s, buf, len, flags, to, tolen
-> (syscall(Syssendto, a(s), a(buf), a(len), a(flags), a(to), a(tolen)) : size)
}
const shutdown = {s, how
-> (syscall(Sysshutdown, a(s), a(how)) : int)
}
const socketpair = {domain, kind, protocol, rsv
-> (syscall(Syssocketpair, a(domain), a(kind), a(protocol), a(rsv)) : int)
}
const rmdir = {path
-> (syscall(Sysrmdir, a(path)) : int)
}
const adjtime = {delta, olddelta
-> (syscall(Sysadjtime, a(delta), a(olddelta)) : int)
}
const getlogin_r = {namebuf, namelen
-> (syscall(Sysgetlogin_r, a(namebuf), a(namelen)) : int)
}
const setsid = {
-> (syscall(Syssetsid) : int)
}
const quotactl = {path, cmd, uid, arg
-> (syscall(Sysquotactl, a(path), a(cmd), a(uid), a(arg)) : int)
}
const nfssvc = {flag, argp
-> (syscall(Sysnfssvc, a(flag), a(argp)) : int)
}
const getfh = {fname, fhp
-> (syscall(Sysgetfh, a(fname), a(fhp)) : int)
}
const sysarch = {op, parms
-> (syscall(Syssysarch, a(op), a(parms)) : int)
}
const setgid = {gid
-> (syscall(Syssetgid, a(gid)) : int)
}
const setegid = {egid
-> (syscall(Syssetegid, a(egid)) : int)
}
const seteuid = {euid
-> (syscall(Sysseteuid, a(euid)) : int)
}
const pathconf = {path, name
-> (syscall(Syspathconf, a(path), a(name)) : int64)
}
const fpathconf = {fd, name
-> (syscall(Sysfpathconf, a(fd), a(name)) : int64)
}
const swapctl = {cmd, arg, misc
-> (syscall(Sysswapctl, a(cmd), a(arg), a(misc)) : int)
}
const getrlimit = {which, rlp
-> (syscall(Sysgetrlimit, a(which), a(rlp)) : int)
}
const setrlimit = {which, rlp
-> (syscall(Syssetrlimit, a(which), a(rlp)) : int)
}
const truncate = {path, pad, length
-> (syscall(Systruncate, a(path), a(pad), a(length)) : int)
}
const ftruncate = {fd, pad, length
-> (syscall(Sysftruncate, a(fd), a(pad), a(length)) : int)
}
const mlock = {addr, len
-> (syscall(Sysmlock, a(addr), a(len)) : int)
}
const munlock = {addr, len
-> (syscall(Sysmunlock, a(addr), a(len)) : int)
}
const getpgid = {pid
-> (syscall(Sysgetpgid, a(pid)) : pid)
}
const utrace = {label, addr, len
-> (syscall(Sysutrace, a(label), a(addr), a(len)) : int)
}
const semget = {key, nsems, semflg
-> (syscall(Syssemget, a(key), a(nsems), a(semflg)) : int)
}
const msgget = {key, msgflg
-> (syscall(Sysmsgget, a(key), a(msgflg)) : int)
}
const msgsnd = {msqid, msgp, msgsz, msgflg
-> (syscall(Sysmsgsnd, a(msqid), a(msgp), a(msgsz), a(msgflg)) : int)
}
const msgrcv = {msqid, msgp, msgsz, msgtyp, msgflg
-> (syscall(Sysmsgrcv, a(msqid), a(msgp), a(msgsz), a(msgtyp), a(msgflg)) : int)
}
const shmat = {shmid, shmaddr, shmflg
-> (syscall(Sysshmat, a(shmid), a(shmaddr), a(shmflg)) : void)
}
const shmdt = {shmaddr
-> (syscall(Sysshmdt, a(shmaddr)) : int)
}
const minherit = {addr, len, inherit
-> (syscall(Sysminherit, a(addr), a(len), a(inherit)) : int)
}
const issetugid = {
-> (syscall(Sysissetugid) : int)
}
const lchown = {path, uid, gid
-> (syscall(Syslchown, a(path), a(uid), a(gid)) : int)
}
const getsid = {pid
-> (syscall(Sysgetsid, a(pid)) : pid)
}
const msync = {addr, len, flags
-> (syscall(Sysmsync, a(addr), a(len), a(flags)) : int)
}
const fhopen = {fhp, flags
-> (syscall(Sysfhopen, a(fhp), a(flags)) : int)
}
const preadv = {fd, iovp, iovcnt, pad, offset
-> (syscall(Syspreadv, a(fd), a(iovp), a(iovcnt), a(pad), a(offset)) : size)
}
const pwritev = {fd, iovp, iovcnt, pad, offset
-> (syscall(Syspwritev, a(fd), a(iovp), a(iovcnt), a(pad), a(offset)) : size)
}
const kqueue = {
-> (syscall(Syskqueue) : int)
}
const mlockall = {flags
-> (syscall(Sysmlockall, a(flags)) : int)
}
const munlockall = {
-> (syscall(Sysmunlockall) : int)
}
const getresuid = {ruid, euid, suid
-> (syscall(Sysgetresuid, a(ruid), a(euid), a(suid)) : int)
}
const setresuid = {ruid, euid, suid
-> (syscall(Syssetresuid, a(ruid), a(euid), a(suid)) : int)
}
const getresgid = {rgid, egid, sgid
-> (syscall(Sysgetresgid, a(rgid), a(egid), a(sgid)) : int)
}
const setresgid = {rgid, egid, sgid
-> (syscall(Syssetresgid, a(rgid), a(egid), a(sgid)) : int)
}
const mquery = {addr, len, prot, flags, fd, pad, pos
-> (syscall(Sysmquery, a(addr), a(len), a(prot), a(flags), a(fd), a(pad), a(pos)) : void)
}
const closefrom = {fd
-> (syscall(Sysclosefrom, a(fd)) : int)
}
const sigaltstack = {nss, oss
-> (syscall(Syssigaltstack, a(nss), a(oss)) : int)
}
const shmget = {key, size, shmflg
-> (syscall(Sysshmget, a(key), a(size), a(shmflg)) : int)
}
const semop = {semid, sops, nsops
-> (syscall(Syssemop, a(semid), a(sops), a(nsops)) : int)
}
const fhstat = {fhp, sb
-> (syscall(Sysfhstat, a(fhp), a(sb)) : int)
}
const __semctl = {semid, semnum, cmd, arg
-> (syscall(Sys__semctl, a(semid), a(semnum), a(cmd), a(arg)) : int)
}
const shmctl = {shmid, cmd, buf
-> (syscall(Sysshmctl, a(shmid), a(cmd), a(buf)) : int)
}
const msgctl = {msqid, cmd, buf
-> (syscall(Sysmsgctl, a(msqid), a(cmd), a(buf)) : int)
}
const sched_yield = {
-> (syscall(Syssched_yield) : int)
}
const getthrid = {
-> (syscall(Sysgetthrid) : pid)
}
const __thrwakeup = {ident, n
-> (syscall(Sys__thrwakeup, a(ident), a(n)) : int)
}
const __threxit = {notdead
-> (syscall(Sys__threxit, a(notdead)) : void)
}
const __thrsigdivert = {sigmask, info, timeout
-> (syscall(Sys__thrsigdivert, a(sigmask), a(info), a(timeout)) : int)
}
const adjfreq = {freq, oldfreq
-> (syscall(Sysadjfreq, a(freq), a(oldfreq)) : int)
}
const setrtable = {rtableid
-> (syscall(Syssetrtable, a(rtableid)) : int)
}
const getrtable = {
-> (syscall(Sysgetrtable) : int)
}
const faccessat = {fd, path, amode, flag
-> (syscall(Sysfaccessat, a(fd), a(path), a(amode), a(flag)) : int)
}
const fchmodat = {fd, path, mode, flag
-> (syscall(Sysfchmodat, a(fd), a(path), a(mode), a(flag)) : int)
}
const fchownat = {fd, path, uid, gid, flag
-> (syscall(Sysfchownat, a(fd), a(path), a(uid), a(gid), a(flag)) : int)
}
const linkat = {fd1, path1, fd2, path2, flag
-> (syscall(Syslinkat, a(fd1), a(path1), a(fd2), a(path2), a(flag)) : int)
}
const mkdirat = {fd, path, mode
-> (syscall(Sysmkdirat, a(fd), a(path), a(mode)) : int)
}
const mkfifoat = {fd, path, mode
-> (syscall(Sysmkfifoat, a(fd), a(path), a(mode)) : int)
}
const mknodat = {fd, path, mode, dev
-> (syscall(Sysmknodat, a(fd), a(path), a(mode), a(dev)) : int)
}
const openat = {fd, path, flags, mode
-> (syscall(Sysopenat, a(fd), a(path), a(flags), a(mode)) : int)
}
const readlinkat = {fd, path, buf, count
-> (syscall(Sysreadlinkat, a(fd), a(path), a(buf), a(count)) : size)
}
const renameat = {fromfd, from, tofd, to
-> (syscall(Sysrenameat, a(fromfd), a(from), a(tofd), a(to)) : int)
}
const symlinkat = {path, fd, link
-> (syscall(Syssymlinkat, a(path), a(fd), a(link)) : int)
}
const unlinkat = {fd, path, flag
-> (syscall(Sysunlinkat, a(fd), a(path), a(flag)) : int)
}
const __set_tcb = {tcb
-> (syscall(Sys__set_tcb, a(tcb)) : void)
}
const __get_tcb = {
-> (syscall(Sys__get_tcb) : void#)
}