1 $NetBSD: syscalls.master,v 1.242 2011/01/17 18:24:17 pooka Exp $ 2 3; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 4 5; NetBSD system call name/number "master" file. 6; (See syscalls.conf to see what it is processed into.) 7; 8; Fields: number type [type-dependent ...] 9; number system call number, must be in order 10; type one of STD, OBSOL, UNIMPL, IGNORED, NODEF, NOARGS, or one of 11; the compatibility options defined in syscalls.conf. 12; 13; Optional fields are specified after the type field 14; (NOTE! they *must* be specified in this order): 15; MODULAR:attempt to autoload system call if not present 16; RUMP: the system call can be called directly from rumps 17; 18; types: 19; STD always included 20; OBSOL obsolete, not included in system 21; IGNORED syscall is a null op, but always succeeds 22; UNIMPL unimplemented, not included in system 23; EXCL implemented, but not included in system 24; NODEF included, but don't define the syscall number 25; NOARGS included, but don't define the syscall args structure 26; INDIR included, but don't define the syscall args structure, 27; and allow it to be "really" varargs. 28; 29; arguments: 30; PAD argument not part of the C interface, used only for padding 31; 32; The compat options are defined in the syscalls.conf file, and the 33; compat option name is prefixed to the syscall name. Other than 34; that, they're like NODEF (for 'compat' options), or STD (for 35; 'libcompat' options). 36; 37; The type-dependent arguments are as follows: 38; For STD, NODEF, NOARGS, and compat syscalls: 39; { return_type|prefix|compat(optional)|basename(pseudo-proto); } [alias] 40; For other syscalls: 41; [comment] 42; 43; #ifdef's, etc. may be included, and are copied to the output files. 44; #include's are copied to the syscall names and switch definition files only. 45 46#include "opt_modular.h" 47#include "opt_ntp.h" 48#include "opt_sysv.h" 49 50#include <sys/param.h> 51#include <sys/systm.h> 52#include <sys/signal.h> 53#include <sys/mount.h> 54#include <sys/sched.h> 55#include <sys/syscallargs.h> 56 57%% 58 59; Reserved/unimplemented system calls in the range 0-150 inclusive 60; are reserved for use in future Berkeley releases. 61; Additional system calls implemented in vendor and other 62; redistributions should be placed in the reserved range at the end 63; of the current calls. 64 650 INDIR { int|sys||syscall(int code, \ 66 ... register_t args[SYS_MAXSYSARGS]); } 671 STD { void|sys||exit(int rval); } 682 STD { int|sys||fork(void); } 693 STD RUMP { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 704 STD RUMP { ssize_t|sys||write(int fd, const void *buf, \ 71 size_t nbyte); } 725 STD RUMP { int|sys||open(const char *path, \ 73 int flags, ... mode_t mode); } 746 STD RUMP { int|sys||close(int fd); } 757 COMPAT_50 MODULAR { int|sys||wait4(int pid, int *status, \ 76 int options, struct rusage50 *rusage); } 778 COMPAT_43 MODULAR { int|sys||creat(const char *path, mode_t mode); } ocreat 789 STD RUMP { int|sys||link(const char *path, const char *link); } 7910 STD RUMP { int|sys||unlink(const char *path); } 8011 OBSOL execv 8112 STD RUMP { int|sys||chdir(const char *path); } 8213 STD RUMP { int|sys||fchdir(int fd); } 8314 COMPAT_50 MODULAR RUMP { int|sys||mknod(const char *path, mode_t mode, \ 84 uint32_t dev); } 8515 STD RUMP { int|sys||chmod(const char *path, mode_t mode); } 8616 STD RUMP { int|sys||chown(const char *path, uid_t uid, \ 87 gid_t gid); } 8817 STD { int|sys||obreak(char *nsize); } break 8918 COMPAT_20 MODULAR { int|sys||getfsstat(struct statfs12 *buf, \ 90 long bufsize, int flags); } 9119 COMPAT_43 MODULAR { long|sys||lseek(int fd, long offset, int whence); }\ 92 olseek 9320 STD RUMP { pid_t|sys||getpid_with_ppid(void); } getpid 9421 COMPAT_40 MODULAR { int|sys||mount(const char *type, const char *path, \ 95 int flags, void *data); } 9622 STD RUMP { int|sys||unmount(const char *path, int flags); } 9723 STD RUMP { int|sys||setuid(uid_t uid); } 9824 STD RUMP { uid_t|sys||getuid_with_euid(void); } getuid 9925 STD RUMP { uid_t|sys||geteuid(void); } 10026 STD { int|sys||ptrace(int req, pid_t pid, void *addr, \ 101 int data); } 10227 STD RUMP { ssize_t|sys||recvmsg(int s, struct msghdr *msg, \ 103 int flags); } 10428 STD RUMP { ssize_t|sys||sendmsg(int s, \ 105 const struct msghdr *msg, int flags); } 10629 STD RUMP { ssize_t|sys||recvfrom(int s, void *buf, size_t len, \ 107 int flags, struct sockaddr *from, \ 108 unsigned int *fromlenaddr); } 10930 STD RUMP { int|sys||accept(int s, struct sockaddr *name, \ 110 unsigned int *anamelen); } 11131 STD RUMP { int|sys||getpeername(int fdes, struct sockaddr *asa, \ 112 unsigned int *alen); } 11332 STD RUMP { int|sys||getsockname(int fdes, struct sockaddr *asa, \ 114 unsigned int *alen); } 11533 STD RUMP { int|sys||access(const char *path, int flags); } 11634 STD RUMP { int|sys||chflags(const char *path, u_long flags); } 11735 STD RUMP { int|sys||fchflags(int fd, u_long flags); } 11836 STD RUMP { void|sys||sync(void); } 11937 STD { int|sys||kill(int pid, int signum); } 12038 COMPAT_43 MODULAR { int|sys||stat(const char *path, struct stat43 *ub); } \ 121 stat43 12239 STD RUMP { pid_t|sys||getppid(void); } 12340 COMPAT_43 MODULAR { int|sys||lstat(const char *path, \ 124 struct stat43 *ub); } lstat43 12541 STD RUMP { int|sys||dup(int fd); } 12642 STD RUMP { int|sys||pipe(void); } 12743 STD RUMP { gid_t|sys||getegid(void); } 12844 STD { int|sys||profil(char *samples, size_t size, \ 129 u_long offset, u_int scale); } 13045 STD { int|sys||ktrace(const char *fname, int ops, \ 131 int facs, int pid); } 13246 COMPAT_13 MODULAR { int|sys||sigaction(int signum, \ 133 const struct sigaction13 *nsa, \ 134 struct sigaction13 *osa); } sigaction13 13547 STD RUMP { gid_t|sys||getgid_with_egid(void); } getgid 13648 COMPAT_13 MODULAR { int|sys||sigprocmask(int how, \ 137 int mask); } sigprocmask13 13849 STD RUMP { int|sys||__getlogin(char *namebuf, size_t namelen); } 13950 STD RUMP { int|sys||__setlogin(const char *namebuf); } 14051 STD { int|sys||acct(const char *path); } 14152 COMPAT_13 MODULAR { int|sys||sigpending(void); } sigpending13 14253 COMPAT_13 MODULAR { int|sys||sigaltstack( \ 143 const struct sigaltstack13 *nss, \ 144 struct sigaltstack13 *oss); } sigaltstack13 14554 STD RUMP { int|sys||ioctl(int fd, \ 146 u_long com, ... void *data); } 14755 COMPAT_12 MODULAR { int|sys||reboot(int opt); } oreboot 14856 STD RUMP { int|sys||revoke(const char *path); } 14957 STD RUMP { int|sys||symlink(const char *path, \ 150 const char *link); } 15158 STD RUMP { ssize_t|sys||readlink(const char *path, char *buf, \ 152 size_t count); } 15359 STD { int|sys||execve(const char *path, \ 154 char * const *argp, char * const *envp); } 15560 STD RUMP { mode_t|sys||umask(mode_t newmask); } 15661 STD RUMP { int|sys||chroot(const char *path); } 15762 COMPAT_43 MODULAR { int|sys||fstat(int fd, struct stat43 *sb); } fstat43 15863 COMPAT_43 MODULAR { int|sys||getkerninfo(int op, char *where, int *size, \ 159 int arg); } ogetkerninfo 16064 COMPAT_43 MODULAR { int|sys||getpagesize(void); } ogetpagesize 16165 COMPAT_12 MODULAR { int|sys||msync(void *addr, size_t len); } 162; XXX COMPAT_??? for 4.4BSD-compatible vfork(2)? 16366 STD { int|sys||vfork(void); } 16467 OBSOL vread 16568 OBSOL vwrite 16669 STD { int|sys||sbrk(intptr_t incr); } 16770 STD { int|sys||sstk(int incr); } 16871 COMPAT_43 MODULAR { int|sys||mmap(void *addr, size_t len, int prot, \ 169 int flags, int fd, long pos); } ommap 17072 STD { int|sys||ovadvise(int anom); } vadvise 17173 STD { int|sys||munmap(void *addr, size_t len); } 17274 STD { int|sys||mprotect(void *addr, size_t len, \ 173 int prot); } 17475 STD { int|sys||madvise(void *addr, size_t len, \ 175 int behav); } 17676 OBSOL vhangup 17777 OBSOL vlimit 17878 STD { int|sys||mincore(void *addr, size_t len, \ 179 char *vec); } 18079 STD RUMP { int|sys||getgroups(int gidsetsize, \ 181 gid_t *gidset); } 18280 STD RUMP { int|sys||setgroups(int gidsetsize, \ 183 const gid_t *gidset); } 18481 STD RUMP { int|sys||getpgrp(void); } 18582 STD RUMP { int|sys||setpgid(int pid, int pgid); } 18683 COMPAT_50 MODULAR { int|sys||setitimer(int which, \ 187 const struct itimerval50 *itv, \ 188 struct itimerval50 *oitv); } 18984 COMPAT_43 MODULAR { int|sys||wait(void); } owait 19085 COMPAT_12 MODULAR { int|sys||swapon(const char *name); } oswapon 19186 COMPAT_50 MODULAR { int|sys||getitimer(int which, \ 192 struct itimerval50 *itv); } 19387 COMPAT_43 MODULAR { int|sys||gethostname(char *hostname, u_int len); } \ 194 ogethostname 19588 COMPAT_43 MODULAR { int|sys||sethostname(char *hostname, u_int len); } \ 196 osethostname 19789 COMPAT_43 MODULAR { int|sys||getdtablesize(void); } ogetdtablesize 19890 STD RUMP { int|sys||dup2(int from, int to); } 19991 UNIMPL getdopt 20092 STD RUMP { int|sys||fcntl(int fd, int cmd, ... void *arg); } 20193 COMPAT_50 MODULAR RUMP { int|sys||select(int nd, fd_set *in, fd_set *ou, \ 202 fd_set *ex, struct timeval50 *tv); } 20394 UNIMPL setdopt 20495 STD RUMP { int|sys||fsync(int fd); } 20596 STD { int|sys||setpriority(int which, id_t who, int prio); } 20697 COMPAT_30 MODULAR { int|sys||socket(int domain, int type, int protocol); } 20798 STD RUMP { int|sys||connect(int s, const struct sockaddr *name, \ 208 unsigned int namelen); } 20999 COMPAT_43 MODULAR { int|sys||accept(int s, void *name, \ 210 int *anamelen); } oaccept 211100 STD { int|sys||getpriority(int which, id_t who); } 212101 COMPAT_43 MODULAR { int|sys||send(int s, void *buf, int len, \ 213 int flags); } osend 214102 COMPAT_43 MODULAR { int|sys||recv(int s, void *buf, int len, \ 215 int flags); } orecv 216103 COMPAT_13 MODULAR { int|sys||sigreturn(struct sigcontext13 *sigcntxp); } \ 217 sigreturn13 218104 STD RUMP { int|sys||bind(int s, const struct sockaddr *name, \ 219 unsigned int namelen); } 220105 STD RUMP { int|sys||setsockopt(int s, int level, int name, \ 221 const void *val, unsigned int valsize); } 222106 STD RUMP { int|sys||listen(int s, int backlog); } 223107 OBSOL vtimes 224108 COMPAT_43 MODULAR { int|sys||sigvec(int signum, struct sigvec *nsv, \ 225 struct sigvec *osv); } osigvec 226109 COMPAT_43 MODULAR { int|sys||sigblock(int mask); } osigblock 227110 COMPAT_43 MODULAR { int|sys||sigsetmask(int mask); } osigsetmask 228111 COMPAT_13 MODULAR { int|sys||sigsuspend(int mask); } sigsuspend13 229112 COMPAT_43 MODULAR { int|sys||sigstack(struct sigstack *nss, \ 230 struct sigstack *oss); } osigstack 231113 COMPAT_43 MODULAR { int|sys||recvmsg(int s, struct omsghdr *msg, \ 232 int flags); } orecvmsg 233114 COMPAT_43 MODULAR { int|sys||sendmsg(int s, void *msg, int flags); } \ 234 osendmsg 235115 OBSOL vtrace 236116 COMPAT_50 MODULAR { int|sys||gettimeofday(struct timeval50 *tp, \ 237 void *tzp); } 238117 COMPAT_50 MODULAR { int|sys||getrusage(int who, struct rusage50 *rusage); } 239118 STD RUMP { int|sys||getsockopt(int s, int level, int name, \ 240 void *val, unsigned int *avalsize); } 241119 OBSOL resuba 242120 STD RUMP { ssize_t|sys||readv(int fd, \ 243 const struct iovec *iovp, int iovcnt); } 244121 STD RUMP { ssize_t|sys||writev(int fd, \ 245 const struct iovec *iovp, int iovcnt); } 246122 COMPAT_50 MODULAR { int|sys||settimeofday(const struct timeval50 *tv, \ 247 const void *tzp); } 248123 STD RUMP { int|sys||fchown(int fd, uid_t uid, gid_t gid); } 249124 STD RUMP { int|sys||fchmod(int fd, mode_t mode); } 250125 COMPAT_43 MODULAR { int|sys||recvfrom(int s, void *buf, size_t len, \ 251 int flags, void *from, int *fromlenaddr); } \ 252 orecvfrom 253126 STD RUMP { int|sys||setreuid(uid_t ruid, uid_t euid); } 254127 STD RUMP { int|sys||setregid(gid_t rgid, gid_t egid); } 255128 STD RUMP { int|sys||rename(const char *from, const char *to); } 256129 COMPAT_43 MODULAR { int|sys||truncate(const char *path, long length); } \ 257 otruncate 258130 COMPAT_43 MODULAR { int|sys||ftruncate(int fd, long length); } oftruncate 259131 STD RUMP { int|sys||flock(int fd, int how); } 260132 STD RUMP { int|sys||mkfifo(const char *path, mode_t mode); } 261133 STD RUMP { ssize_t|sys||sendto(int s, const void *buf, \ 262 size_t len, int flags, const struct sockaddr *to, \ 263 unsigned int tolen); } 264134 STD RUMP { int|sys||shutdown(int s, int how); } 265135 STD RUMP { int|sys||socketpair(int domain, int type, \ 266 int protocol, int *rsv); } 267136 STD RUMP { int|sys||mkdir(const char *path, mode_t mode); } 268137 STD RUMP { int|sys||rmdir(const char *path); } 269138 COMPAT_50 MODULAR RUMP { int|sys||utimes(const char *path, \ 270 const struct timeval50 *tptr); } 271139 OBSOL 4.2 sigreturn 272140 COMPAT_50 MODULAR { int|sys||adjtime(const struct timeval50 *delta, \ 273 struct timeval50 *olddelta); } 274141 COMPAT_43 MODULAR { int|sys||getpeername(int fdes, void *asa, \ 275 int *alen); } ogetpeername 276142 COMPAT_43 MODULAR { int32_t|sys||gethostid(void); } ogethostid 277143 COMPAT_43 MODULAR { int|sys||sethostid(int32_t hostid); } osethostid 278144 COMPAT_43 MODULAR { int|sys||getrlimit(int which, \ 279 struct orlimit *rlp); } ogetrlimit 280145 COMPAT_43 MODULAR { int|sys||setrlimit(int which, \ 281 const struct orlimit *rlp); } osetrlimit 282146 COMPAT_43 MODULAR { int|sys||killpg(int pgid, int signum); } okillpg 283147 STD RUMP { int|sys||setsid(void); } 284148 STD { int|sys||quotactl(const char *path, int cmd, \ 285 int uid, void *arg); } 286149 COMPAT_43 MODULAR { int|sys||quota(void); } oquota 287150 COMPAT_43 MODULAR { int|sys||getsockname(int fdec, void *asa, \ 288 int *alen); } ogetsockname 289 290; Syscalls 151-180 inclusive are reserved for vendor-specific 291; system calls. (This includes various calls added for compatibity 292; with other Unix variants.) 293; Some of these calls are now supported by BSD... 294151 UNIMPL 295152 UNIMPL 296153 UNIMPL 297154 UNIMPL 298155 STD MODULAR RUMP { int|sys||nfssvc(int flag, void *argp); } 299156 COMPAT_43 MODULAR { int|sys||getdirentries(int fd, char *buf, \ 300 u_int count, long *basep); } ogetdirentries 301157 COMPAT_20 MODULAR { int|sys||statfs(const char *path, \ 302 struct statfs12 *buf); } 303158 COMPAT_20 MODULAR { int|sys||fstatfs(int fd, struct statfs12 *buf); } 304159 UNIMPL 305160 UNIMPL 306161 COMPAT_30 MODULAR { int|sys||getfh(const char *fname, \ 307 struct compat_30_fhandle *fhp); } 308162 COMPAT_09 MODULAR { int|sys||getdomainname(char *domainname, int len); } \ 309 ogetdomainname 310163 COMPAT_09 MODULAR { int|sys||setdomainname(char *domainname, int len); } \ 311 osetdomainname 312164 COMPAT_09 MODULAR { int|sys||uname(struct outsname *name); } ouname 313165 STD { int|sys||sysarch(int op, void *parms); } 314166 UNIMPL 315167 UNIMPL 316168 UNIMPL 317; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 318#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64) 319169 COMPAT_10 MODULAR { int|sys||semsys(int which, int a2, int a3, int a4, \ 320 int a5); } osemsys 321#else 322169 EXCL 1.0 semsys 323#endif 324; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 325#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64) 326170 COMPAT_10 MODULAR { int|sys||msgsys(int which, int a2, int a3, int a4, \ 327 int a5, int a6); } omsgsys 328#else 329170 EXCL 1.0 msgsys 330#endif 331; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 332#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64) 333171 COMPAT_10 MODULAR { int|sys||shmsys(int which, int a2, int a3, int a4); } \ 334 oshmsys 335#else 336171 EXCL 1.0 shmsys 337#endif 338172 UNIMPL 339173 STD RUMP { ssize_t|sys||pread(int fd, void *buf, \ 340 size_t nbyte, int PAD, off_t offset); } 341174 STD RUMP { ssize_t|sys||pwrite(int fd, const void *buf, \ 342 size_t nbyte, int PAD, off_t offset); } 343; For some reason, ntp_gettime doesn't want to raise SIGSYS when it's excluded. 344175 COMPAT_30 { int|sys||ntp_gettime(struct ntptimeval30 *ntvp); } 345#if defined(NTP) || !defined(_KERNEL_OPT) 346176 STD { int|sys||ntp_adjtime(struct timex *tp); } 347#else 348176 EXCL ntp_adjtime 349#endif 350177 UNIMPL 351178 UNIMPL 352179 UNIMPL 353180 UNIMPL 354 355; Syscalls 180-199 are used by/reserved for BSD 356181 STD RUMP { int|sys||setgid(gid_t gid); } 357182 STD RUMP { int|sys||setegid(gid_t egid); } 358183 STD RUMP { int|sys||seteuid(uid_t euid); } 359184 STD MODULAR { int|sys||lfs_bmapv(fsid_t *fsidp, \ 360 struct block_info *blkiov, int blkcnt); } 361185 STD MODULAR { int|sys||lfs_markv(fsid_t *fsidp, \ 362 struct block_info *blkiov, int blkcnt); } 363186 STD MODULAR { int|sys||lfs_segclean(fsid_t *fsidp, u_long segment); } 364187 COMPAT_50 MODULAR { int|sys||lfs_segwait(fsid_t *fsidp, \ 365 struct timeval50 *tv); } 366188 COMPAT_12 MODULAR { int|sys||stat(const char *path, struct stat12 *ub); } \ 367 stat12 368189 COMPAT_12 MODULAR { int|sys||fstat(int fd, struct stat12 *sb); } fstat12 369190 COMPAT_12 MODULAR { int|sys||lstat(const char *path, \ 370 struct stat12 *ub); } lstat12 371191 STD RUMP { long|sys||pathconf(const char *path, int name); } 372192 STD RUMP { long|sys||fpathconf(int fd, int name); } 373193 UNIMPL 374194 STD RUMP { int|sys||getrlimit(int which, \ 375 struct rlimit *rlp); } 376195 STD RUMP { int|sys||setrlimit(int which, \ 377 const struct rlimit *rlp); } 378196 COMPAT_12 MODULAR { int|sys||getdirentries(int fd, char *buf, \ 379 u_int count, long *basep); } 380197 STD { void *|sys||mmap(void *addr, size_t len, int prot, \ 381 int flags, int fd, long PAD, off_t pos); } 382198 INDIR { quad_t|sys||__syscall(quad_t code, \ 383 ... register_t args[SYS_MAXSYSARGS]); } 384199 STD RUMP { off_t|sys||lseek(int fd, int PAD, off_t offset, \ 385 int whence); } 386200 STD RUMP { int|sys||truncate(const char *path, int PAD, \ 387 off_t length); } 388201 STD RUMP { int|sys||ftruncate(int fd, int PAD, off_t length); } 389202 STD RUMP { int|sys||__sysctl(const int *name, u_int namelen, \ 390 void *old, size_t *oldlenp, const void *new, \ 391 size_t newlen); } 392203 STD { int|sys||mlock(const void *addr, size_t len); } 393204 STD { int|sys||munlock(const void *addr, size_t len); } 394205 STD { int|sys||undelete(const char *path); } 395206 COMPAT_50 MODULAR RUMP { int|sys||futimes(int fd, \ 396 const struct timeval50 *tptr); } 397207 STD RUMP { pid_t|sys||getpgid(pid_t pid); } 398208 STD RUMP { int|sys||reboot(int opt, char *bootstr); } 399209 STD RUMP { int|sys||poll(struct pollfd *fds, u_int nfds, \ 400 int timeout); } 401; 402; Syscalls 210-219 are reserved for dynamically loaded syscalls 403; 404210 UNIMPL 405211 UNIMPL 406212 UNIMPL 407213 UNIMPL 408214 UNIMPL 409215 UNIMPL 410216 UNIMPL 411217 UNIMPL 412218 UNIMPL 413219 UNIMPL 414; System calls 220-300 are reserved for use by NetBSD 415#if defined(SYSVSEM) || !defined(_KERNEL_OPT) 416220 COMPAT_14 MODULAR { int|sys||__semctl(int semid, int semnum, int cmd, \ 417 union __semun *arg); } 418221 STD { int|sys||semget(key_t key, int nsems, int semflg); } 419222 STD { int|sys||semop(int semid, struct sembuf *sops, \ 420 size_t nsops); } 421223 STD { int|sys||semconfig(int flag); } 422#else 423220 EXCL compat_14_semctl 424221 EXCL semget 425222 EXCL semop 426223 EXCL semconfig 427#endif 428#if defined(SYSVMSG) || !defined(_KERNEL_OPT) 429224 COMPAT_14 MODULAR { int|sys||msgctl(int msqid, int cmd, \ 430 struct msqid_ds14 *buf); } 431225 STD { int|sys||msgget(key_t key, int msgflg); } 432226 STD { int|sys||msgsnd(int msqid, const void *msgp, \ 433 size_t msgsz, int msgflg); } 434227 STD { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 435 size_t msgsz, long msgtyp, int msgflg); } 436#else 437224 EXCL compat_14_msgctl 438225 EXCL msgget 439226 EXCL msgsnd 440227 EXCL msgrcv 441#endif 442#if defined(SYSVSHM) || !defined(_KERNEL_OPT) 443228 STD { void *|sys||shmat(int shmid, const void *shmaddr, \ 444 int shmflg); } 445229 COMPAT_14 MODULAR { int|sys||shmctl(int shmid, int cmd, \ 446 struct shmid_ds14 *buf); } 447230 STD { int|sys||shmdt(const void *shmaddr); } 448231 STD { int|sys||shmget(key_t key, size_t size, int shmflg); } 449#else 450228 EXCL shmat 451229 EXCL compat_14_shmctl 452230 EXCL shmdt 453231 EXCL shmget 454#endif 455232 COMPAT_50 MODULAR { int|sys||clock_gettime(clockid_t clock_id, \ 456 struct timespec50 *tp); } 457233 COMPAT_50 MODULAR { int|sys||clock_settime(clockid_t clock_id, \ 458 const struct timespec50 *tp); } 459234 COMPAT_50 MODULAR { int|sys||clock_getres(clockid_t clock_id, \ 460 struct timespec50 *tp); } 461235 STD { int|sys||timer_create(clockid_t clock_id, \ 462 struct sigevent *evp, timer_t *timerid); } 463236 STD { int|sys||timer_delete(timer_t timerid); } 464237 COMPAT_50 MODULAR { int|sys||timer_settime(timer_t timerid, int flags, \ 465 const struct itimerspec50 *value, \ 466 struct itimerspec50 *ovalue); } 467238 COMPAT_50 MODULAR { int|sys||timer_gettime(timer_t timerid, struct \ 468 itimerspec50 *value); } 469239 STD { int|sys||timer_getoverrun(timer_t timerid); } 470; 471; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls 472; 473240 COMPAT_50 MODULAR { int|sys||nanosleep(const struct timespec50 *rqtp, \ 474 struct timespec50 *rmtp); } 475241 STD RUMP { int|sys||fdatasync(int fd); } 476242 STD { int|sys||mlockall(int flags); } 477243 STD { int|sys||munlockall(void); } 478244 COMPAT_50 MODULAR { int|sys||__sigtimedwait(const sigset_t *set, \ 479 siginfo_t *info, \ 480 struct timespec50 *timeout); } 481245 STD { int|sys||sigqueueinfo(pid_t pid, \ 482 const siginfo_t *info); } 483246 STD RUMP { int|sys||modctl(int cmd, void *arg); } 484247 STD MODULAR RUMP { int|sys||_ksem_init(unsigned int value, intptr_t *idp); } 485248 STD MODULAR RUMP { int|sys||_ksem_open(const char *name, int oflag, \ 486 mode_t mode, unsigned int value, intptr_t *idp); } 487249 STD MODULAR RUMP { int|sys||_ksem_unlink(const char *name); } 488250 STD MODULAR RUMP { int|sys||_ksem_close(intptr_t id); } 489251 STD MODULAR RUMP { int|sys||_ksem_post(intptr_t id); } 490252 STD MODULAR RUMP { int|sys||_ksem_wait(intptr_t id); } 491253 STD MODULAR RUMP { int|sys||_ksem_trywait(intptr_t id); } 492254 STD MODULAR RUMP { int|sys||_ksem_getvalue(intptr_t id, \ 493 unsigned int *value); } 494255 STD MODULAR RUMP { int|sys||_ksem_destroy(intptr_t id); } 495256 UNIMPL sys__ksem_timedwait 496257 STD MODULAR { mqd_t|sys||mq_open(const char * name, int oflag, \ 497 mode_t mode, struct mq_attr *attr); } 498258 STD MODULAR { int|sys||mq_close(mqd_t mqdes); } 499259 STD MODULAR { int|sys||mq_unlink(const char *name); } 500260 STD MODULAR { int|sys||mq_getattr(mqd_t mqdes, \ 501 struct mq_attr *mqstat); } 502261 STD MODULAR { int|sys||mq_setattr(mqd_t mqdes, \ 503 const struct mq_attr *mqstat, \ 504 struct mq_attr *omqstat); } 505262 STD MODULAR { int|sys||mq_notify(mqd_t mqdes, \ 506 const struct sigevent *notification); } 507263 STD MODULAR { int|sys||mq_send(mqd_t mqdes, const char *msg_ptr, \ 508 size_t msg_len, unsigned msg_prio); } 509264 STD MODULAR { ssize_t|sys||mq_receive(mqd_t mqdes, char *msg_ptr, \ 510 size_t msg_len, unsigned *msg_prio); } 511265 COMPAT_50 MODULAR { int|sys||mq_timedsend(mqd_t mqdes, \ 512 const char *msg_ptr, size_t msg_len, \ 513 unsigned msg_prio, \ 514 const struct timespec50 *abs_timeout); } 515266 COMPAT_50 MODULAR { ssize_t|sys||mq_timedreceive(mqd_t mqdes, \ 516 char *msg_ptr, size_t msg_len, unsigned *msg_prio, \ 517 const struct timespec50 *abs_timeout); } 518267 UNIMPL 519268 UNIMPL 520269 UNIMPL 521270 STD { int|sys||__posix_rename(const char *from, \ 522 const char *to); } 523271 STD { int|sys||swapctl(int cmd, void *arg, int misc); } 524272 COMPAT_30 MODULAR { int|sys||getdents(int fd, char *buf, size_t count); } 525273 STD { int|sys||minherit(void *addr, size_t len, \ 526 int inherit); } 527274 STD RUMP { int|sys||lchmod(const char *path, mode_t mode); } 528275 STD RUMP { int|sys||lchown(const char *path, uid_t uid, \ 529 gid_t gid); } 530276 COMPAT_50 MODULAR RUMP { int|sys||lutimes(const char *path, \ 531 const struct timeval50 *tptr); } 532277 STD { int|sys|13|msync(void *addr, size_t len, int flags); } 533278 COMPAT_30 MODULAR { int|sys|13|stat(const char *path, struct stat13 *ub); } 534279 COMPAT_30 MODULAR { int|sys|13|fstat(int fd, struct stat13 *sb); } 535280 COMPAT_30 MODULAR { int|sys|13|lstat(const char *path, struct stat13 *ub); } 536281 STD { int|sys|14|sigaltstack( \ 537 const struct sigaltstack *nss, \ 538 struct sigaltstack *oss); } 539282 STD { int|sys|14|vfork(void); } 540283 STD { int|sys||__posix_chown(const char *path, uid_t uid, \ 541 gid_t gid); } 542284 STD { int|sys||__posix_fchown(int fd, uid_t uid, \ 543 gid_t gid); } 544285 STD { int|sys||__posix_lchown(const char *path, uid_t uid, \ 545 gid_t gid); } 546286 STD RUMP { pid_t|sys||getsid(pid_t pid); } 547287 STD { pid_t|sys||__clone(int flags, void *stack); } 548288 STD { int|sys||fktrace(int fd, int ops, \ 549 int facs, int pid); } 550289 STD { ssize_t|sys||preadv(int fd, \ 551 const struct iovec *iovp, int iovcnt, \ 552 int PAD, off_t offset); } 553290 STD { ssize_t|sys||pwritev(int fd, \ 554 const struct iovec *iovp, int iovcnt, \ 555 int PAD, off_t offset); } 556291 COMPAT_16 MODULAR { int|sys|14|sigaction(int signum, \ 557 const struct sigaction *nsa, \ 558 struct sigaction *osa); } 559292 STD { int|sys|14|sigpending(sigset_t *set); } 560293 STD { int|sys|14|sigprocmask(int how, \ 561 const sigset_t *set, \ 562 sigset_t *oset); } 563294 STD { int|sys|14|sigsuspend(const sigset_t *set); } 564295 COMPAT_16 MODULAR { int|sys|14|sigreturn(struct sigcontext *sigcntxp); } 565296 STD RUMP { int|sys||__getcwd(char *bufp, size_t length); } 566297 STD RUMP { int|sys||fchroot(int fd); } 567298 COMPAT_30 MODULAR { int|sys||fhopen(const struct compat_30_fhandle *fhp, int flags); } 568299 COMPAT_30 MODULAR { int|sys||fhstat(const struct compat_30_fhandle *fhp, \ 569 struct stat13 *sb); } 570300 COMPAT_20 MODULAR { int|sys||fhstatfs(const struct compat_30_fhandle *fhp, \ 571 struct statfs12 *buf); } 572#if defined(SYSVSEM) || !defined(_KERNEL_OPT) 573301 COMPAT_50 MODULAR { int|sys|13|__semctl(int semid, int semnum, int cmd, \ 574 ... union __semun *arg); } 575#else 576301 EXCL ____semctl13 577#endif 578#if defined(SYSVMSG) || !defined(_KERNEL_OPT) 579302 COMPAT_50 MODULAR { int|sys|13|msgctl(int msqid, int cmd, \ 580 struct msqid_ds *buf); } 581#else 582302 EXCL __msgctl13 583#endif 584#if defined(SYSVSHM) || !defined(_KERNEL_OPT) 585303 COMPAT_50 MODULAR { int|sys|13|shmctl(int shmid, int cmd, \ 586 struct shmid_ds13 *buf); } 587#else 588303 EXCL __shmctl13 589#endif 590304 STD RUMP { int|sys||lchflags(const char *path, u_long flags); } 591305 STD RUMP { int|sys||issetugid(void); } 592306 STD { int|sys||utrace(const char *label, void *addr, \ 593 size_t len); } 594307 STD { int|sys||getcontext(struct __ucontext *ucp); } 595308 STD { int|sys||setcontext(const struct __ucontext *ucp); } 596309 STD { int|sys||_lwp_create(const struct __ucontext *ucp, \ 597 u_long flags, lwpid_t *new_lwp); } 598310 STD { int|sys||_lwp_exit(void); } 599311 STD { lwpid_t|sys||_lwp_self(void); } 600312 STD { int|sys||_lwp_wait(lwpid_t wait_for, \ 601 lwpid_t *departed); } 602313 STD { int|sys||_lwp_suspend(lwpid_t target); } 603314 STD { int|sys||_lwp_continue(lwpid_t target); } 604315 STD { int|sys||_lwp_wakeup(lwpid_t target); } 605316 STD { void *|sys||_lwp_getprivate(void); } 606317 STD { void|sys||_lwp_setprivate(void *ptr); } 607318 STD { int|sys||_lwp_kill(lwpid_t target, int signo); } 608319 STD { int|sys||_lwp_detach(lwpid_t target); } 609320 COMPAT_50 MODULAR { int|sys||_lwp_park(const struct timespec50 *ts, \ 610 lwpid_t unpark, const void *hint, \ 611 const void *unparkhint); } 612321 STD { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } 613322 STD { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, \ 614 size_t ntargets, const void *hint); } 615323 STD { int|sys||_lwp_setname(lwpid_t target, \ 616 const char *name); } 617324 STD { int|sys||_lwp_getname(lwpid_t target, \ 618 char *name, size_t len); } 619325 STD { int|sys||_lwp_ctl(int features, \ 620 struct lwpctl **address); } 621; Syscalls 326-339 reserved for LWP syscalls. 622326 UNIMPL 623327 UNIMPL 624328 UNIMPL 625329 UNIMPL 626; SA system calls. 627330 STD { int|sys||sa_register(sa_upcall_t new, \ 628 sa_upcall_t *old, int flags, \ 629 ssize_t stackinfo_offset); } 630331 STD { int|sys||sa_stacks(int num, stack_t *stacks); } 631332 STD { int|sys||sa_enable(void); } 632333 STD { int|sys||sa_setconcurrency(int concurrency); } 633334 STD { int|sys||sa_yield(void); } 634335 STD { int|sys||sa_preempt(int sa_id); } 635336 OBSOL sys_sa_unblockyield 636; 637; Syscalls 337-339 are reserved for other scheduler activation syscalls. 638; 639337 UNIMPL 640338 UNIMPL 641339 UNIMPL 642340 STD { int|sys||__sigaction_sigtramp(int signum, \ 643 const struct sigaction *nsa, \ 644 struct sigaction *osa, \ 645 const void *tramp, int vers); } 646341 STD { int|sys||pmc_get_info(int ctr, int op, void *args); } 647342 STD { int|sys||pmc_control(int ctr, int op, void *args); } 648343 STD { int|sys||rasctl(void *addr, size_t len, int op); } 649344 STD RUMP { int|sys||kqueue(void); } 650345 COMPAT_50 MODULAR RUMP { int|sys||kevent(int fd, \ 651 const struct kevent *changelist, size_t nchanges, \ 652 struct kevent *eventlist, size_t nevents, \ 653 const struct timespec50 *timeout); } 654 655; Scheduling system calls. 656346 STD { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, \ 657 int policy, const struct sched_param *params); } 658347 STD { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, \ 659 int *policy, struct sched_param *params); } 660348 STD { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, \ 661 size_t size, const cpuset_t *cpuset); } 662349 STD { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, \ 663 size_t size, cpuset_t *cpuset); } 664350 STD { int|sys||sched_yield(void); } 665351 UNIMPL 666352 UNIMPL 667353 UNIMPL 668 669354 STD RUMP { int|sys||fsync_range(int fd, int flags, off_t start, \ 670 off_t length); } 671355 STD { int|sys||uuidgen(struct uuid *store, int count); } 672356 STD RUMP { int|sys||getvfsstat(struct statvfs *buf, \ 673 size_t bufsize, int flags); } 674357 STD RUMP { int|sys||statvfs1(const char *path, \ 675 struct statvfs *buf, int flags); } 676358 STD RUMP { int|sys||fstatvfs1(int fd, struct statvfs *buf, \ 677 int flags); } 678359 COMPAT_30 MODULAR { int|sys||fhstatvfs1(const struct compat_30_fhandle *fhp, \ 679 struct statvfs *buf, int flags); } 680360 STD RUMP { int|sys||extattrctl(const char *path, int cmd, \ 681 const char *filename, int attrnamespace, \ 682 const char *attrname); } 683361 STD RUMP { int|sys||extattr_set_file(const char *path, \ 684 int attrnamespace, const char *attrname, \ 685 const void *data, size_t nbytes); } 686362 STD RUMP { ssize_t|sys||extattr_get_file(const char *path, \ 687 int attrnamespace, const char *attrname, \ 688 void *data, size_t nbytes); } 689363 STD RUMP { int|sys||extattr_delete_file(const char *path, \ 690 int attrnamespace, const char *attrname); } 691364 STD RUMP { int|sys||extattr_set_fd(int fd, \ 692 int attrnamespace, const char *attrname, \ 693 const void *data, size_t nbytes); } 694365 STD RUMP { ssize_t|sys||extattr_get_fd(int fd, \ 695 int attrnamespace, const char *attrname, \ 696 void *data, size_t nbytes); } 697366 STD RUMP { int|sys||extattr_delete_fd(int fd, \ 698 int attrnamespace, const char *attrname); } 699367 STD RUMP { int|sys||extattr_set_link(const char *path, \ 700 int attrnamespace, const char *attrname, \ 701 const void *data, size_t nbytes); } 702368 STD RUMP { ssize_t|sys||extattr_get_link(const char *path, \ 703 int attrnamespace, const char *attrname, \ 704 void *data, size_t nbytes); } 705369 STD RUMP { int|sys||extattr_delete_link(const char *path, \ 706 int attrnamespace, const char *attrname); } 707370 STD RUMP { ssize_t|sys||extattr_list_fd(int fd, \ 708 int attrnamespace, void *data, size_t nbytes); } 709371 STD RUMP { ssize_t|sys||extattr_list_file(const char *path, \ 710 int attrnamespace, void *data, size_t nbytes); } 711372 STD RUMP { ssize_t|sys||extattr_list_link(const char *path, \ 712 int attrnamespace, void *data, size_t nbytes); } 713373 COMPAT_50 MODULAR RUMP { int|sys||pselect(int nd, fd_set *in, fd_set *ou, \ 714 fd_set *ex, const struct timespec50 *ts, \ 715 const sigset_t *mask); } 716374 COMPAT_50 MODULAR RUMP { int|sys||pollts(struct pollfd *fds, u_int nfds, \ 717 const struct timespec50 *ts, const sigset_t *mask); } 718375 STD RUMP { int|sys||setxattr(const char *path, \ 719 const char *name, void *value, size_t size, \ 720 int flags); } 721376 STD RUMP { int|sys||lsetxattr(const char *path, \ 722 const char *name, void *value, size_t size, \ 723 int flags); } 724377 STD RUMP { int|sys||fsetxattr(int fd, \ 725 const char *name, void *value, size_t size, \ 726 int flags); } 727378 STD RUMP { int|sys||getxattr(const char *path, \ 728 const char *name, void *value, size_t size); } 729379 STD RUMP { int|sys||lgetxattr(const char *path, \ 730 const char *name, void *value, size_t size); } 731380 STD RUMP { int|sys||fgetxattr(int fd, \ 732 const char *name, void *value, size_t size); } 733381 STD RUMP { int|sys||listxattr(const char *path, \ 734 char *list, size_t size); } 735382 STD RUMP { int|sys||llistxattr(const char *path, \ 736 char *list, size_t size); } 737383 STD RUMP { int|sys||flistxattr(int fd, \ 738 char *list, size_t size); } 739384 STD RUMP { int|sys||removexattr(const char *path, \ 740 const char *name); } 741385 STD RUMP { int|sys||lremovexattr(const char *path, \ 742 const char *name); } 743386 STD RUMP { int|sys||fremovexattr(int fd, \ 744 const char *name); } 745387 COMPAT_50 MODULAR RUMP { int|sys|30|stat(const char *path, struct stat30 *ub); } 746388 COMPAT_50 MODULAR RUMP { int|sys|30|fstat(int fd, struct stat30 *sb); } 747389 COMPAT_50 MODULAR RUMP { int|sys|30|lstat(const char *path, struct stat30 *ub); } 748390 STD RUMP { int|sys|30|getdents(int fd, char *buf, size_t count); } 749391 IGNORED old posix_fadvise 750392 COMPAT_30 MODULAR { int|sys|30|fhstat(const struct compat_30_fhandle \ 751 *fhp, struct stat30 *sb); } 752393 COMPAT_50 MODULAR { int|sys|30|ntp_gettime(struct ntptimeval50 *ntvp); } 753394 STD RUMP { int|sys|30|socket(int domain, int type, int protocol); } 754395 STD RUMP { int|sys|30|getfh(const char *fname, void *fhp, \ 755 size_t *fh_size); } 756396 STD RUMP { int|sys|40|fhopen(const void *fhp, size_t fh_size,\ 757 int flags); } 758397 STD RUMP { int|sys|40|fhstatvfs1(const void *fhp, \ 759 size_t fh_size, struct statvfs *buf, int flags); } 760398 COMPAT_50 MODULAR RUMP { int|sys|40|fhstat(const void *fhp, \ 761 size_t fh_size, struct stat30 *sb); } 762 763; Asynchronous I/O system calls 764399 STD MODULAR { int|sys||aio_cancel(int fildes, struct aiocb *aiocbp); } 765400 STD MODULAR { int|sys||aio_error(const struct aiocb *aiocbp); } 766401 STD MODULAR { int|sys||aio_fsync(int op, struct aiocb *aiocbp); } 767402 STD MODULAR { int|sys||aio_read(struct aiocb *aiocbp); } 768403 STD MODULAR { int|sys||aio_return(struct aiocb *aiocbp); } 769404 COMPAT_50 MODULAR { int|sys||aio_suspend(const struct aiocb *const *list, \ 770 int nent, const struct timespec50 *timeout); } 771405 STD MODULAR { int|sys||aio_write(struct aiocb *aiocbp); } 772406 STD MODULAR { int|sys||lio_listio(int mode, struct aiocb *const *list, \ 773 int nent, struct sigevent *sig); } 774 775407 UNIMPL 776408 UNIMPL 777409 UNIMPL 778 779410 STD RUMP { int|sys|50|mount(const char *type, \ 780 const char *path, int flags, void *data, \ 781 size_t data_len); } 782411 STD { void *|sys||mremap(void *old_address, size_t old_size, \ 783 void *new_address, size_t new_size, int flags); } 784 785; Processor-sets system calls 786412 STD { int|sys||pset_create(psetid_t *psid); } 787413 STD { int|sys||pset_destroy(psetid_t psid); } 788414 STD { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, \ 789 psetid_t *opsid); } 790415 STD { int|sys||_pset_bind(idtype_t idtype, id_t first_id, \ 791 id_t second_id, psetid_t psid, psetid_t *opsid); } 792416 STD RUMP { int|sys|50|posix_fadvise(int fd, int PAD, \ 793 off_t offset, off_t len, int advice); } 794417 STD RUMP { int|sys|50|select(int nd, fd_set *in, fd_set *ou, \ 795 fd_set *ex, struct timeval *tv); } 796418 STD { int|sys|50|gettimeofday(struct timeval *tp, \ 797 void *tzp); } 798419 STD { int|sys|50|settimeofday(const struct timeval *tv, \ 799 const void *tzp); } 800420 STD RUMP { int|sys|50|utimes(const char *path, \ 801 const struct timeval *tptr); } 802421 STD { int|sys|50|adjtime(const struct timeval *delta, \ 803 struct timeval *olddelta); } 804422 STD MODULAR { int|sys|50|lfs_segwait(fsid_t *fsidp, \ 805 struct timeval *tv); } 806423 STD RUMP { int|sys|50|futimes(int fd, \ 807 const struct timeval *tptr); } 808424 STD RUMP { int|sys|50|lutimes(const char *path, \ 809 const struct timeval *tptr); } 810425 STD { int|sys|50|setitimer(int which, \ 811 const struct itimerval *itv, \ 812 struct itimerval *oitv); } 813426 STD { int|sys|50|getitimer(int which, \ 814 struct itimerval *itv); } 815427 STD { int|sys|50|clock_gettime(clockid_t clock_id, \ 816 struct timespec *tp); } 817428 STD { int|sys|50|clock_settime(clockid_t clock_id, \ 818 const struct timespec *tp); } 819429 STD { int|sys|50|clock_getres(clockid_t clock_id, \ 820 struct timespec *tp); } 821430 STD { int|sys|50|nanosleep(const struct timespec *rqtp, \ 822 struct timespec *rmtp); } 823431 STD { int|sys|50|__sigtimedwait(const sigset_t *set, \ 824 siginfo_t *info, \ 825 struct timespec *timeout); } 826432 STD MODULAR { int|sys|50|mq_timedsend(mqd_t mqdes, \ 827 const char *msg_ptr, size_t msg_len, \ 828 unsigned msg_prio, \ 829 const struct timespec *abs_timeout); } 830433 STD MODULAR { ssize_t|sys|50|mq_timedreceive(mqd_t mqdes, \ 831 char *msg_ptr, size_t msg_len, unsigned *msg_prio, \ 832 const struct timespec *abs_timeout); } 833434 STD { int|sys|50|_lwp_park(const struct timespec *ts, \ 834 lwpid_t unpark, const void *hint, \ 835 const void *unparkhint); } 836435 STD RUMP { int|sys|50|kevent(int fd, \ 837 const struct kevent *changelist, size_t nchanges, \ 838 struct kevent *eventlist, size_t nevents, \ 839 const struct timespec *timeout); } 840436 STD RUMP { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, \ 841 fd_set *ex, const struct timespec *ts, \ 842 const sigset_t *mask); } 843437 STD RUMP { int|sys|50|pollts(struct pollfd *fds, u_int nfds, \ 844 const struct timespec *ts, const sigset_t *mask); } 845438 STD MODULAR { int|sys|50|aio_suspend( \ 846 const struct aiocb *const *list, \ 847 int nent, const struct timespec *timeout); } 848439 STD RUMP { int|sys|50|stat(const char *path, struct stat *ub); } 849440 STD RUMP { int|sys|50|fstat(int fd, struct stat *sb); } 850441 STD RUMP { int|sys|50|lstat(const char *path, struct stat *ub); } 851#if defined(SYSVSEM) || !defined(_KERNEL_OPT) 852442 STD { int|sys|50|__semctl(int semid, int semnum, int cmd, \ 853 ... union __semun *arg); } 854#else 855442 EXCL ____semctl50 856#endif 857#if defined(SYSVSHM) || !defined(_KERNEL_OPT) 858443 STD { int|sys|50|shmctl(int shmid, int cmd, \ 859 struct shmid_ds *buf); } 860#else 861443 EXCL ____shmctl50 862#endif 863#if defined(SYSVMSG) || !defined(_KERNEL_OPT) 864444 STD { int|sys|50|msgctl(int msqid, int cmd, \ 865 struct msqid_ds *buf); } 866#else 867444 EXCL ____msgctl50 868#endif 869445 STD { int|sys|50|getrusage(int who, struct rusage *rusage); } 870446 STD { int|sys|50|timer_settime(timer_t timerid, \ 871 int flags, const struct itimerspec *value, \ 872 struct itimerspec *ovalue); } 873447 STD { int|sys|50|timer_gettime(timer_t timerid, struct \ 874 itimerspec *value); } 875#if defined(NTP) || !defined(_KERNEL_OPT) 876448 STD { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } 877#else 878448 EXCL ___ntp_gettime50 879#endif 880449 STD { int|sys|50|wait4(int pid, int *status, \ 881 int options, struct rusage *rusage); } 882450 STD RUMP { int|sys|50|mknod(const char *path, mode_t mode, \ 883 dev_t dev); } 884451 STD RUMP { int|sys|50|fhstat(const void *fhp, \ 885 size_t fh_size, struct stat *sb); } 886