Loading

NetBSD syscalls.master

  1.     $NetBSD: syscalls.master,v 1.278 2015/06/18 15:16:12 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 modname :attempt to autoload system call module if not present
  16. ;   RUMP:   generate rump syscall entry point
  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. ;   NOERR   included, syscall does not set errno
  29. ;   EXTERN  implemented, but as 3rd party module
  30. ;
  31. ; arguments:
  32. ;   PAD argument not part of the C interface, used only for padding
  33. ;
  34. ; The compat options are defined in the syscalls.conf file, and the
  35. ; compat option name is prefixed to the syscall name.  Other than
  36. ; that, they're like NODEF (for 'compat' options), or STD (for
  37. ; 'libcompat' options).
  38. ;
  39. ; The type-dependent arguments are as follows:
  40. ; For STD, NODEF, NOARGS, and compat syscalls:
  41. ;   { return_type|prefix|compat(optional)|basename(pseudo-proto); } [alias]
  42. ; For other syscalls:
  43. ;   [comment]
  44. ;
  45. ; #ifdef's, etc. may be included, and are copied to the output files.
  46. ; #include's are copied to the syscall names and switch definition files only.
  47.  
  48. #include "opt_modular.h"
  49. #include "opt_ntp.h"
  50. #include "opt_sysv.h"
  51.  
  52. #include <sys/param.h>
  53. #include <sys/systm.h>
  54. #include <sys/signal.h>
  55. #include <sys/socket.h>
  56. #include <sys/mount.h>
  57. #include <sys/sched.h>
  58. #include <sys/syscallargs.h>
  59.  
  60. %%
  61.  
  62. ; Reserved/unimplemented system calls in the range 0-150 inclusive
  63. ; are reserved for use in future Berkeley releases.
  64. ; Additional system calls implemented in vendor and other
  65. ; redistributions should be placed in the reserved range at the end
  66. ; of the current calls.
  67.  
  68. 0   INDIR       { int|sys||syscall(int code, \
  69.                 ... register_t args[SYS_MAXSYSARGS]); }
  70. 1   STD         { void|sys||exit(int rval); }
  71. 2   STD         { int|sys||fork(void); }
  72. 3   STD      RUMP   { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
  73. 4   STD      RUMP   { ssize_t|sys||write(int fd, const void *buf, \
  74.                 size_t nbyte); }
  75. 5   STD      RUMP   { int|sys||open(const char *path, \
  76.                 int flags, ... mode_t mode); }
  77. 6   STD  RUMP   { int|sys||close(int fd); }
  78. 7   COMPAT_50 MODULAR compat { int|sys||wait4(pid_t pid, int *status, \
  79.                 int options, struct rusage50 *rusage); }
  80. 8   COMPAT_43 MODULAR compat    \
  81.         { int|sys||creat(const char *path, mode_t mode); } ocreat
  82. 9   STD      RUMP   { int|sys||link(const char *path, const char *link); }
  83. 10  STD      RUMP   { int|sys||unlink(const char *path); }
  84. 11  OBSOL       execv
  85. 12  STD      RUMP   { int|sys||chdir(const char *path); }
  86. 13  STD      RUMP   { int|sys||fchdir(int fd); }
  87. 14  COMPAT_50 MODULAR compat RUMP   \
  88.         { int|sys||mknod(const char *path, mode_t mode, uint32_t dev); }
  89. 15  STD      RUMP   { int|sys||chmod(const char *path, mode_t mode); }
  90. 16  STD      RUMP   { int|sys||chown(const char *path, uid_t uid, \
  91.                 gid_t gid); }
  92. 17  STD         { int|sys||obreak(char *nsize); } break
  93. 18  COMPAT_20 MODULAR compat { int|sys||getfsstat(struct statfs12 *buf, \
  94.                 long bufsize, int flags); }
  95. 19  COMPAT_43 MODULAR compat    \
  96.         { long|sys||lseek(int fd, long offset, int whence); }\
  97.                 olseek
  98. 20  NOERR   RUMP    { pid_t|sys||getpid_with_ppid(void); } getpid
  99. 21  COMPAT_40 MODULAR compat    \
  100.         { int|sys||mount(const char *type, const char *path, \
  101.                 int flags, void *data); }
  102. 22  STD      RUMP   { int|sys||unmount(const char *path, int flags); }
  103. 23  STD     RUMP    { int|sys||setuid(uid_t uid); }
  104. 24  NOERR   RUMP    { uid_t|sys||getuid_with_euid(void); } getuid
  105. 25  NOERR   RUMP    { uid_t|sys||geteuid(void); }
  106. 26  STD         { int|sys||ptrace(int req, pid_t pid, void *addr, \
  107.                 int data); }
  108. 27  STD     RUMP    { ssize_t|sys||recvmsg(int s, struct msghdr *msg, \
  109.                 int flags); }
  110. 28  STD     RUMP    { ssize_t|sys||sendmsg(int s, \
  111.                 const struct msghdr *msg, int flags); }
  112. 29  STD     RUMP    { ssize_t|sys||recvfrom(int s, void *buf, size_t len, \
  113.                 int flags, struct sockaddr *from, \
  114.                 socklen_t *fromlenaddr); }
  115. 30  STD RUMP    { int|sys||accept(int s, struct sockaddr *name, \
  116.                 socklen_t *anamelen); }
  117. 31  STD RUMP    { int|sys||getpeername(int fdes, struct sockaddr *asa, \
  118.                 socklen_t *alen); }
  119. 32  STD RUMP    { int|sys||getsockname(int fdes, struct sockaddr *asa, \
  120.                 socklen_t *alen); }
  121. 33  STD     RUMP    { int|sys||access(const char *path, int flags); }
  122. 34  STD      RUMP   { int|sys||chflags(const char *path, u_long flags); }
  123. 35  STD     RUMP    { int|sys||fchflags(int fd, u_long flags); }
  124. 36  NOERR    RUMP   { void|sys||sync(void); }
  125. 37  STD         { int|sys||kill(pid_t pid, int signum); }
  126. 38  COMPAT_43 MODULAR compat    \
  127.         { int|sys||stat(const char *path, struct stat43 *ub); } stat43
  128. 39  NOERR   RUMP    { pid_t|sys||getppid(void); }
  129. 40  COMPAT_43 MODULAR compat    \
  130.         { int|sys||lstat(const char *path, \
  131.                 struct stat43 *ub); } lstat43
  132. 41  STD     RUMP    { int|sys||dup(int fd); }
  133. 42  STD     RUMP    { int|sys||pipe(void); }
  134. 43  NOERR   RUMP    { gid_t|sys||getegid(void); }
  135. 44  STD         { int|sys||profil(char *samples, size_t size, \
  136.                 u_long offset, u_int scale); }
  137. 45  STD     RUMP    { int|sys||ktrace(const char *fname, int ops, \
  138.                 int facs, pid_t pid); }
  139. 46  COMPAT_13 MODULAR compat { int|sys||sigaction(int signum, \
  140.                 const struct sigaction13 *nsa, \
  141.                 struct sigaction13 *osa); } sigaction13
  142. 47  NOERR   RUMP    { gid_t|sys||getgid_with_egid(void); } getgid
  143. 48  COMPAT_13 MODULAR compat { int|sys||sigprocmask(int how, \
  144.                 int mask); } sigprocmask13
  145. 49  STD     RUMP    { int|sys||__getlogin(char *namebuf, size_t namelen); }
  146. 50  STD     RUMP    { int|sys||__setlogin(const char *namebuf); }
  147. 51  STD         { int|sys||acct(const char *path); }
  148. 52  COMPAT_13 MODULAR compat { int|sys||sigpending(void); } sigpending13
  149. 53  COMPAT_13 MODULAR compat { int|sys||sigaltstack( \
  150.                 const struct sigaltstack13 *nss, \
  151.                 struct sigaltstack13 *oss); } sigaltstack13
  152. 54  STD RUMP    { int|sys||ioctl(int fd, \
  153.                 u_long com, ... void *data); }
  154. 55  COMPAT_12 MODULAR compat { int|sys||reboot(int opt); } oreboot
  155. 56  STD      RUMP   { int|sys||revoke(const char *path); }
  156. 57  STD      RUMP   { int|sys||symlink(const char *path, \
  157.                 const char *link); }
  158. 58  STD      RUMP   { ssize_t|sys||readlink(const char *path, char *buf, \
  159.                 size_t count); }
  160. 59  STD         { int|sys||execve(const char *path, \
  161.                 char * const *argp, char * const *envp); }
  162. 60  STD      RUMP   { mode_t|sys||umask(mode_t newmask); }
  163. 61  STD      RUMP   { int|sys||chroot(const char *path); }
  164. 62  COMPAT_43 MODULAR compat    \
  165.         { int|sys||fstat(int fd, struct stat43 *sb); } fstat43
  166. 63  COMPAT_43 MODULAR compat    \
  167.         { int|sys||getkerninfo(int op, char *where, int *size, \
  168.                 int arg); } ogetkerninfo
  169. 64  COMPAT_43 MODULAR compat    \
  170.         { int|sys||getpagesize(void); } ogetpagesize
  171. 65  COMPAT_12 MODULAR compat { int|sys||msync(void *addr, size_t len); }
  172. ; XXX COMPAT_??? for 4.4BSD-compatible vfork(2)?
  173. 66  STD         { int|sys||vfork(void); }
  174. 67  OBSOL       vread
  175. 68  OBSOL       vwrite
  176. 69  STD         { int|sys||sbrk(intptr_t incr); }
  177. 70  STD         { int|sys||sstk(int incr); }
  178. 71  COMPAT_43 MODULAR compat    \
  179.         { int|sys||mmap(void *addr, size_t len, int prot, \
  180.                 int flags, int fd, long pos); } ommap
  181. 72  STD         { int|sys||ovadvise(int anom); } vadvise
  182. 73  STD         { int|sys||munmap(void *addr, size_t len); }
  183. 74  STD         { int|sys||mprotect(void *addr, size_t len, \
  184.                 int prot); }
  185. 75  STD         { int|sys||madvise(void *addr, size_t len, \
  186.                 int behav); }
  187. 76  OBSOL       vhangup
  188. 77  OBSOL       vlimit
  189. 78  STD         { int|sys||mincore(void *addr, size_t len, \
  190.                 char *vec); }
  191. 79  STD     RUMP    { int|sys||getgroups(int gidsetsize, \
  192.                 gid_t *gidset); }
  193. 80  STD     RUMP    { int|sys||setgroups(int gidsetsize, \
  194.                 const gid_t *gidset); }
  195. 81  STD     RUMP    { int|sys||getpgrp(void); }
  196. 82  STD     RUMP    { int|sys||setpgid(pid_t pid, pid_t pgid); }
  197. 83  COMPAT_50 MODULAR compat { int|sys||setitimer(int which, \
  198.                 const struct itimerval50 *itv, \
  199.                 struct itimerval50 *oitv); }
  200. 84  COMPAT_43 MODULAR compat { int|sys||wait(void); } owait
  201. 85  COMPAT_12 MODULAR compat { int|sys||swapon(const char *name); } oswapon
  202. 86  COMPAT_50 MODULAR compat { int|sys||getitimer(int which, \
  203.                 struct itimerval50 *itv); }
  204. 87  COMPAT_43 MODULAR compat    \
  205.         { int|sys||gethostname(char *hostname, u_int len); } \
  206.                 ogethostname
  207. 88  COMPAT_43 MODULAR compat    \
  208.         { int|sys||sethostname(char *hostname, u_int len); } \
  209.                 osethostname
  210. 89  COMPAT_43 MODULAR compat    \
  211.         { int|sys||getdtablesize(void); } ogetdtablesize
  212. 90  STD      RUMP   { int|sys||dup2(int from, int to); }
  213. 91  UNIMPL      getdopt
  214. 92  STD RUMP    { int|sys||fcntl(int fd, int cmd, ... void *arg); }
  215. 93  COMPAT_50 MODULAR compat RUMP   \
  216.         { int|sys||select(int nd, fd_set *in, fd_set *ou, \
  217.                 fd_set *ex, struct timeval50 *tv); }
  218. 94  UNIMPL      setdopt
  219. 95  STD RUMP    { int|sys||fsync(int fd); }
  220. 96  STD         { int|sys||setpriority(int which, id_t who, int prio); }
  221. 97  COMPAT_30 MODULAR compat    \
  222.         { int|sys||socket(int domain, int type, int protocol); }
  223. 98  STD RUMP    { int|sys||connect(int s, const struct sockaddr *name, \
  224.                 socklen_t namelen); }
  225. 99  COMPAT_43 MODULAR compat    \
  226.         { int|sys||accept(int s, void *name, \
  227.                 socklen_t *anamelen); } oaccept
  228. 100 STD         { int|sys||getpriority(int which, id_t who); }
  229. 101 COMPAT_43 MODULAR compat { int|sys||send(int s, void *buf, int len, \
  230.                 int flags); } osend
  231. 102 COMPAT_43 MODULAR compat { int|sys||recv(int s, void *buf, int len, \
  232.                 int flags); } orecv
  233. 103 COMPAT_13 MODULAR compat    \
  234.         { int|sys||sigreturn(struct sigcontext13 *sigcntxp); } \
  235.                 sigreturn13
  236. 104 STD RUMP    { int|sys||bind(int s, const struct sockaddr *name, \
  237.                 socklen_t namelen); }
  238. 105 STD RUMP    { int|sys||setsockopt(int s, int level, int name, \
  239.                 const void *val, socklen_t valsize); }
  240. 106 STD RUMP    { int|sys||listen(int s, int backlog); }
  241. 107 OBSOL       vtimes
  242. 108 COMPAT_43 MODULAR compat    \
  243.         { int|sys||sigvec(int signum, struct sigvec *nsv, \
  244.                 struct sigvec *osv); } osigvec
  245. 109 COMPAT_43 MODULAR compat { int|sys||sigblock(int mask); } osigblock
  246. 110 COMPAT_43 MODULAR compat { int|sys||sigsetmask(int mask); } osigsetmask
  247. 111 COMPAT_13 MODULAR compat { int|sys||sigsuspend(int mask); } sigsuspend13
  248. 112 COMPAT_43 MODULAR compat { int|sys||sigstack(struct sigstack *nss, \
  249.                 struct sigstack *oss); } osigstack
  250. 113 COMPAT_43 MODULAR compat    \
  251.         { int|sys||recvmsg(int s, struct omsghdr *msg, \
  252.                 int flags); } orecvmsg
  253. 114 COMPAT_43 MODULAR compat    \
  254.         { int|sys||sendmsg(int s, void *msg, int flags); } osendmsg
  255. 115 OBSOL       vtrace
  256. 116 COMPAT_50 MODULAR compat { int|sys||gettimeofday(struct timeval50 *tp, \
  257.                 void *tzp); }
  258. 117 COMPAT_50 MODULAR compat    \
  259.         { int|sys||getrusage(int who, struct rusage50 *rusage); }
  260. 118 STD RUMP    { int|sys||getsockopt(int s, int level, int name, \
  261.                 void *val, socklen_t *avalsize); }
  262. 119 OBSOL       resuba
  263. 120 STD     RUMP    { ssize_t|sys||readv(int fd, \
  264.                 const struct iovec *iovp, int iovcnt); }
  265. 121 STD     RUMP    { ssize_t|sys||writev(int fd, \
  266.                 const struct iovec *iovp, int iovcnt); }
  267. 122 COMPAT_50 MODULAR compat    \
  268.         { int|sys||settimeofday(const struct timeval50 *tv, \
  269.                 const void *tzp); }
  270. 123 STD      RUMP   { int|sys||fchown(int fd, uid_t uid, gid_t gid); }
  271. 124 STD      RUMP   { int|sys||fchmod(int fd, mode_t mode); }
  272. 125 COMPAT_43 MODULAR compat    \
  273.         { int|sys||recvfrom(int s, void *buf, size_t len, \
  274.                 int flags, void *from, socklen_t *fromlenaddr); } \
  275.                 orecvfrom
  276. 126 STD     RUMP    { int|sys||setreuid(uid_t ruid, uid_t euid); }
  277. 127 STD     RUMP    { int|sys||setregid(gid_t rgid, gid_t egid); }
  278. 128 STD      RUMP   { int|sys||rename(const char *from, const char *to); }
  279. 129 COMPAT_43 MODULAR compat    \
  280.         { int|sys||truncate(const char *path, long length); } otruncate
  281. 130 COMPAT_43 MODULAR compat    \
  282.         { int|sys||ftruncate(int fd, long length); } oftruncate
  283. 131 STD      RUMP   { int|sys||flock(int fd, int how); }
  284. 132 STD      RUMP   { int|sys||mkfifo(const char *path, mode_t mode); }
  285. 133 STD      RUMP   { ssize_t|sys||sendto(int s, const void *buf, \
  286.                 size_t len, int flags, const struct sockaddr *to, \
  287.                 socklen_t tolen); }
  288. 134 STD  RUMP   { int|sys||shutdown(int s, int how); }
  289. 135 STD  RUMP   { int|sys||socketpair(int domain, int type, \
  290.                 int protocol, int *rsv); }
  291. 136 STD      RUMP   { int|sys||mkdir(const char *path, mode_t mode); }
  292. 137 STD      RUMP   { int|sys||rmdir(const char *path); }
  293. 138 COMPAT_50 MODULAR compat RUMP { int|sys||utimes(const char *path, \
  294.                 const struct timeval50 *tptr); }
  295. 139 OBSOL       4.2 sigreturn
  296. 140 COMPAT_50 MODULAR compat    \
  297.         { int|sys||adjtime(const struct timeval50 *delta, \
  298.                 struct timeval50 *olddelta); }
  299. 141 COMPAT_43 MODULAR compat    \
  300.         { int|sys||getpeername(int fdes, void *asa, \
  301.                 socklen_t *alen); } ogetpeername
  302. 142 COMPAT_43 MODULAR compat    \
  303.         { int32_t|sys||gethostid(void); } ogethostid
  304. 143 COMPAT_43 MODULAR compat    \
  305.         { int|sys||sethostid(int32_t hostid); } osethostid
  306. 144 COMPAT_43 MODULAR compat    \
  307.         { int|sys||getrlimit(int which, \
  308.                 struct orlimit *rlp); } ogetrlimit
  309. 145 COMPAT_43 MODULAR compat { int|sys||setrlimit(int which, \
  310.                 const struct orlimit *rlp); } osetrlimit
  311. 146 COMPAT_43 MODULAR compat    \
  312.         { int|sys||killpg(int pgid, int signum); } okillpg
  313. 147 STD     RUMP    { int|sys||setsid(void); }
  314. 148 COMPAT_50 MODULAR XXX { int|sys||quotactl(const char *path, int cmd, \
  315.                 int uid, void *arg); }
  316. 149 COMPAT_43 MODULAR compat { int|sys||quota(void); } oquota
  317. 150 COMPAT_43 MODULAR compat { int|sys||getsockname(int fdec, void *asa, \
  318.                 socklen_t *alen); } ogetsockname
  319.  
  320. ; Syscalls 151-180 inclusive are reserved for vendor-specific
  321. ; system calls.  (This includes various calls added for compatibity
  322. ; with other Unix variants.)
  323. ; Some of these calls are now supported by BSD...
  324. 151 UNIMPL
  325. 152 UNIMPL
  326. 153 UNIMPL
  327. 154 UNIMPL
  328. 155 STD MODULAR nfsserver RUMP  { int|sys||nfssvc(int flag, void *argp); }
  329. 156 COMPAT_43 MODULAR compat    \
  330.         { int|sys||getdirentries(int fd, char *buf, \
  331.                 u_int count, long *basep); } ogetdirentries
  332. 157 COMPAT_20 MODULAR compat { int|sys||statfs(const char *path, \
  333.                 struct statfs12 *buf); }
  334. 158 COMPAT_20 MODULAR compat    \
  335.         { int|sys||fstatfs(int fd, struct statfs12 *buf); }
  336. 159 UNIMPL
  337. 160 UNIMPL
  338. 161 COMPAT_30 MODULAR compat { int|sys||getfh(const char *fname, \
  339.                 struct compat_30_fhandle *fhp); }
  340. 162 COMPAT_09 MODULAR compat    \
  341.         { int|sys||getdomainname(char *domainname, int len); } \
  342.                 ogetdomainname
  343. 163 COMPAT_09 MODULAR compat    \
  344.         { int|sys||setdomainname(char *domainname, int len); } \
  345.                 osetdomainname
  346. 164 COMPAT_09 MODULAR compat    \
  347.         { int|sys||uname(struct outsname *name); } ouname
  348. 165 STD         { int|sys||sysarch(int op, void *parms); }
  349. 166 UNIMPL
  350. 167 UNIMPL
  351. 168 UNIMPL
  352. ; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
  353. #if !defined(_LP64)
  354. 169 COMPAT_10 MODULAR compat_sysv   \
  355.         { int|sys||semsys(int which, int a2, int a3, int a4, \
  356.                 int a5); } osemsys
  357. #else
  358. 169 EXCL        1.0 semsys
  359. #endif
  360. ; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
  361. #if !defined(_LP64)
  362. 170 COMPAT_10 MODULAR compat_sysv   \
  363.         { int|sys||msgsys(int which, int a2, int a3, int a4, \
  364.                 int a5, int a6); } omsgsys
  365. #else
  366. 170 EXCL        1.0 msgsys
  367. #endif
  368. ; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
  369. #if !defined(_LP64)
  370. 171 COMPAT_10 MODULAR compat_sysv   \
  371.         { int|sys||shmsys(int which, int a2, int a3, int a4); } \
  372.                 oshmsys
  373. #else
  374. 171 EXCL        1.0 shmsys
  375. #endif
  376. 172 UNIMPL
  377. 173 STD      RUMP   { ssize_t|sys||pread(int fd, void *buf, \
  378.                 size_t nbyte, int PAD, off_t offset); }
  379. 174 STD      RUMP   { ssize_t|sys||pwrite(int fd, const void *buf, \
  380.                 size_t nbyte, int PAD, off_t offset); }
  381. ; For some reason, ntp_gettime doesn't want to raise SIGSYS when it's excluded.
  382. 175 COMPAT_30   { int|sys||ntp_gettime(struct ntptimeval30 *ntvp); }
  383. #if defined(NTP) || !defined(_KERNEL_OPT)
  384. 176 STD         { int|sys||ntp_adjtime(struct timex *tp); }
  385. #else
  386. 176 EXCL        ntp_adjtime
  387. #endif
  388. 177 UNIMPL
  389. 178 UNIMPL
  390. 179 UNIMPL
  391. 180 UNIMPL
  392.  
  393. ; Syscalls 180-199 are used by/reserved for BSD
  394. 181 STD     RUMP    { int|sys||setgid(gid_t gid); }
  395. 182 STD     RUMP    { int|sys||setegid(gid_t egid); }
  396. 183 STD     RUMP    { int|sys||seteuid(uid_t euid); }
  397. 184 STD MODULAR lfs { int|sys||lfs_bmapv(fsid_t *fsidp, \
  398.                 struct block_info *blkiov, int blkcnt); }
  399. 185 STD MODULAR lfs { int|sys||lfs_markv(fsid_t *fsidp, \
  400.                 struct block_info *blkiov, int blkcnt); }
  401. 186 STD MODULAR lfs { int|sys||lfs_segclean(fsid_t *fsidp, u_long segment); }
  402. 187 COMPAT_50 MODULAR compat { int|sys||lfs_segwait(fsid_t *fsidp, \
  403.                 struct timeval50 *tv); }
  404. 188 COMPAT_12 MODULAR compat    \
  405.         { int|sys||stat(const char *path, struct stat12 *ub); } stat12
  406. 189 COMPAT_12 MODULAR compat    \
  407.         { int|sys||fstat(int fd, struct stat12 *sb); } fstat12
  408. 190 COMPAT_12 MODULAR compat { int|sys||lstat(const char *path, \
  409.                 struct stat12 *ub); } lstat12
  410. 191 STD     RUMP    { long|sys||pathconf(const char *path, int name); }
  411. 192 STD     RUMP    { long|sys||fpathconf(int fd, int name); }
  412. 193 UNIMPL
  413. 194 STD     RUMP    { int|sys||getrlimit(int which, \
  414.                 struct rlimit *rlp); }
  415. 195 STD     RUMP    { int|sys||setrlimit(int which, \
  416.                 const struct rlimit *rlp); }
  417. 196 COMPAT_12 MODULAR compat    \
  418.         { int|sys||getdirentries(int fd, char *buf, \
  419.                 u_int count, long *basep); }
  420. 197 STD         { void *|sys||mmap(void *addr, size_t len, int prot, \
  421.                 int flags, int fd, long PAD, off_t pos); }
  422. 198 INDIR       { quad_t|sys||__syscall(quad_t code, \
  423.                 ... register_t args[SYS_MAXSYSARGS]); }
  424. 199 STD      RUMP   { off_t|sys||lseek(int fd, int PAD, off_t offset, \
  425.                 int whence); }
  426. 200 STD      RUMP   { int|sys||truncate(const char *path, int PAD, \
  427.                 off_t length); }
  428. 201 STD      RUMP   { int|sys||ftruncate(int fd, int PAD, off_t length); }
  429. 202 STD  RUMP   { int|sys||__sysctl(const int *name, u_int namelen, \
  430.                 void *oldv, size_t *oldlenp, const void *newv, \
  431.                 size_t newlen); }
  432. 203 STD         { int|sys||mlock(const void *addr, size_t len); }
  433. 204 STD         { int|sys||munlock(const void *addr, size_t len); }
  434. 205 STD         { int|sys||undelete(const char *path); }
  435. 206 COMPAT_50 MODULAR compat RUMP { int|sys||futimes(int fd, \
  436.                 const struct timeval50 *tptr); }
  437. 207 STD      RUMP   { pid_t|sys||getpgid(pid_t pid); }
  438. 208 STD  RUMP   { int|sys||reboot(int opt, char *bootstr); }
  439. 209 STD      RUMP   { int|sys||poll(struct pollfd *fds, u_int nfds, \
  440.                 int timeout); }
  441. ;
  442. ; Syscalls 210-219 are reserved for dynamically loaded syscalls
  443. ;
  444. 210 EXTERN  MODULAR openafs { int|sys||afssys(long id, long a1, long a2, \
  445.               long a3, long a4, long a5, long a6); }
  446. 211 UNIMPL
  447. 212 UNIMPL
  448. 213 UNIMPL
  449. 214 UNIMPL
  450. 215 UNIMPL
  451. 216 UNIMPL
  452. 217 UNIMPL
  453. 218 UNIMPL
  454. 219 UNIMPL
  455. ; System calls 220-300 are reserved for use by NetBSD
  456. 220 COMPAT_14 MODULAR compat_sysv   \
  457.         { int|sys||__semctl(int semid, int semnum, int cmd, \
  458.                 union __semun *arg); }
  459. 221 STD MODULAR sysv_ipc { int|sys||semget(key_t key, int nsems, \
  460.                 int semflg); }
  461. 222 STD MODULAR sysv_ipc { int|sys||semop(int semid, struct sembuf *sops, \
  462.                 size_t nsops); }
  463. 223 STD MODULAR sysv_ipc { int|sys||semconfig(int flag); }
  464. 224 COMPAT_14 MODULAR compat_sysv { int|sys||msgctl(int msqid, int cmd, \
  465.                 struct msqid_ds14 *buf); }
  466. 225 STD MODULAR sysv_ipc { int|sys||msgget(key_t key, int msgflg); }
  467. 226 STD MODULAR sysv_ipc { int|sys||msgsnd(int msqid, const void *msgp, \
  468.                 size_t msgsz, int msgflg); }
  469. 227 STD MODULAR sysv_ipc { ssize_t|sys||msgrcv(int msqid, void *msgp, \
  470.                 size_t msgsz, long msgtyp, int msgflg); }
  471. 228 STD MODULAR sysv_ipc { void *|sys||shmat(int shmid, \
  472.                 const void *shmaddr, int shmflg); }
  473. 229 COMPAT_14 MODULAR compat_sysv { int|sys||shmctl(int shmid, int cmd, \
  474.                 struct shmid_ds14 *buf); }
  475. 230 STD MODULAR sysv_ipc { int|sys||shmdt(const void *shmaddr); }
  476. 231 STD MODULAR sysv_ipc { int|sys||shmget(key_t key, size_t size,  \
  477.                 int shmflg); }
  478. 232 COMPAT_50 MODULAR compat { int|sys||clock_gettime(clockid_t clock_id, \
  479.                 struct timespec50 *tp); }
  480. 233 COMPAT_50 MODULAR compat { int|sys||clock_settime(clockid_t clock_id, \
  481.                 const struct timespec50 *tp); }
  482. 234 COMPAT_50 MODULAR compat { int|sys||clock_getres(clockid_t clock_id, \
  483.                 struct timespec50 *tp); }
  484. 235 STD  RUMP   { int|sys||timer_create(clockid_t clock_id, \
  485.                 struct sigevent *evp, timer_t *timerid); }
  486. 236 STD  RUMP   { int|sys||timer_delete(timer_t timerid); }
  487. 237 COMPAT_50 MODULAR compat { int|sys||timer_settime(timer_t timerid, \
  488.                 int flags, const struct itimerspec50 *value, \
  489.                 struct itimerspec50 *ovalue); }
  490. 238 COMPAT_50 MODULAR compat { int|sys||timer_gettime(timer_t timerid, \
  491.                 struct itimerspec50 *value); }
  492. 239 STD  RUMP   { int|sys||timer_getoverrun(timer_t timerid); }
  493. ;
  494. ; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls
  495. ;
  496. 240 COMPAT_50 MODULAR compat    \
  497.         { int|sys||nanosleep(const struct timespec50 *rqtp, \
  498.                 struct timespec50 *rmtp); }
  499. 241 STD      RUMP   { int|sys||fdatasync(int fd); }
  500. 242 STD         { int|sys||mlockall(int flags); }
  501. 243 STD         { int|sys||munlockall(void); }
  502. 244 COMPAT_50 MODULAR compat    \
  503.         { int|sys||__sigtimedwait(const sigset_t *set, \
  504.                 siginfo_t *info, struct timespec50 *timeout); }
  505. 245 STD     { int|sys||sigqueueinfo(pid_t pid, \
  506.                 const siginfo_t *info); }
  507. 246 STD RUMP    { int|sys||modctl(int cmd, void *arg); }
  508. 247 STD MODULAR ksem RUMP { int|sys||_ksem_init(unsigned int value, intptr_t *idp); }
  509. 248 STD MODULAR ksem RUMP { int|sys||_ksem_open(const char *name, int oflag, \
  510.                 mode_t mode, unsigned int value, intptr_t *idp); }
  511. 249 STD MODULAR ksem RUMP { int|sys||_ksem_unlink(const char *name); }
  512. 250 STD MODULAR ksem RUMP { int|sys||_ksem_close(intptr_t id); }
  513. 251 STD MODULAR ksem RUMP { int|sys||_ksem_post(intptr_t id); }
  514. 252 STD MODULAR ksem RUMP { int|sys||_ksem_wait(intptr_t id); }
  515. 253 STD MODULAR ksem RUMP { int|sys||_ksem_trywait(intptr_t id); }
  516. 254 STD MODULAR ksem RUMP { int|sys||_ksem_getvalue(intptr_t id, \
  517.                 unsigned int *value); }
  518. 255 STD MODULAR ksem RUMP { int|sys||_ksem_destroy(intptr_t id); }
  519. 256 STD MODULAR ksem RUMP { int|sys||_ksem_timedwait(intptr_t id, \
  520.                 const struct timespec *abstime); }
  521. 257 STD MODULAR mqueue  \
  522.             { mqd_t|sys||mq_open(const char * name, int oflag, \
  523.                 mode_t mode, struct mq_attr *attr); }
  524. 258 STD MODULAR mqueue  { int|sys||mq_close(mqd_t mqdes); }
  525. 259 STD MODULAR mqueue  { int|sys||mq_unlink(const char *name); }
  526. 260 STD MODULAR mqueue  \
  527.             { int|sys||mq_getattr(mqd_t mqdes, \
  528.                 struct mq_attr *mqstat); }
  529. 261 STD MODULAR mqueue  \
  530.             { int|sys||mq_setattr(mqd_t mqdes, \
  531.                 const struct mq_attr *mqstat, \
  532.                 struct mq_attr *omqstat); }
  533. 262 STD MODULAR mqueue  \
  534.             { int|sys||mq_notify(mqd_t mqdes, \
  535.                 const struct sigevent *notification); }
  536. 263 STD MODULAR mqueue  \
  537.             { int|sys||mq_send(mqd_t mqdes, const char *msg_ptr, \
  538.                 size_t msg_len, unsigned msg_prio); }
  539. 264 STD MODULAR mqueue  \
  540.             { ssize_t|sys||mq_receive(mqd_t mqdes, char *msg_ptr, \
  541.                 size_t msg_len, unsigned *msg_prio); }
  542. 265 COMPAT_50 MODULAR compat    \
  543.             { int|sys||mq_timedsend(mqd_t mqdes, \
  544.                 const char *msg_ptr, size_t msg_len, \
  545.                 unsigned msg_prio, \
  546.                 const struct timespec50 *abs_timeout); }
  547. 266 COMPAT_50 MODULAR compat    \
  548.             { ssize_t|sys||mq_timedreceive(mqd_t mqdes, \
  549.                 char *msg_ptr, size_t msg_len, unsigned *msg_prio, \
  550.                 const struct timespec50 *abs_timeout); }
  551. 267 UNIMPL
  552. 268 UNIMPL
  553. 269 UNIMPL
  554. 270 STD      RUMP   { int|sys||__posix_rename(const char *from, \
  555.                 const char *to); }
  556. 271 STD         { int|sys||swapctl(int cmd, void *arg, int misc); }
  557. 272 COMPAT_30 MODULAR compat { int|sys||getdents(int fd, char *buf, size_t count); }
  558. 273 STD         { int|sys||minherit(void *addr, size_t len, \
  559.                 int inherit); }
  560. 274 STD      RUMP   { int|sys||lchmod(const char *path, mode_t mode); }
  561. 275 STD      RUMP   { int|sys||lchown(const char *path, uid_t uid, \
  562.                 gid_t gid); }
  563. 276 COMPAT_50 MODULAR compat RUMP { int|sys||lutimes(const char *path, \
  564.                 const struct timeval50 *tptr); }
  565. 277 STD         { int|sys|13|msync(void *addr, size_t len, int flags); }
  566. 278 COMPAT_30 MODULAR compat    \
  567.         { int|sys|13|stat(const char *path, struct stat13 *ub); }
  568. 279 COMPAT_30 MODULAR compat    \
  569.         { int|sys|13|fstat(int fd, struct stat13 *sb); }
  570. 280 COMPAT_30 MODULAR compat    \
  571.         { int|sys|13|lstat(const char *path, struct stat13 *ub); }
  572. 281 STD         { int|sys|14|sigaltstack( \
  573.                 const struct sigaltstack *nss, \
  574.                 struct sigaltstack *oss); }
  575. 282 STD         { int|sys|14|vfork(void); }
  576. 283 STD     RUMP    { int|sys||__posix_chown(const char *path, uid_t uid, \
  577.                 gid_t gid); }
  578. 284 STD     RUMP    { int|sys||__posix_fchown(int fd, uid_t uid, \
  579.                 gid_t gid); }
  580. 285 STD     RUMP    { int|sys||__posix_lchown(const char *path, uid_t uid, \
  581.                 gid_t gid); }
  582. 286 STD     RUMP    { pid_t|sys||getsid(pid_t pid); }
  583. 287 STD         { pid_t|sys||__clone(int flags, void *stack); }
  584. 288 STD     RUMP    { int|sys||fktrace(int fd, int ops, \
  585.                 int facs, pid_t pid); }
  586. 289 STD     RUMP    { ssize_t|sys||preadv(int fd, \
  587.                 const struct iovec *iovp, int iovcnt, \
  588.                 int PAD, off_t offset); }
  589. 290 STD     RUMP    { ssize_t|sys||pwritev(int fd, \
  590.                 const struct iovec *iovp, int iovcnt, \
  591.                 int PAD, off_t offset); }
  592. 291 COMPAT_16 MODULAR compat { int|sys|14|sigaction(int signum, \
  593.                 const struct sigaction *nsa, \
  594.                 struct sigaction *osa); }
  595. 292 STD         { int|sys|14|sigpending(sigset_t *set); }
  596. 293 STD         { int|sys|14|sigprocmask(int how, \
  597.                 const sigset_t *set, \
  598.                 sigset_t *oset); }
  599. 294 STD         { int|sys|14|sigsuspend(const sigset_t *set); }
  600. 295 COMPAT_16 MODULAR compat    \
  601.         { int|sys|14|sigreturn(struct sigcontext *sigcntxp); }
  602. 296 STD      RUMP   { int|sys||__getcwd(char *bufp, size_t length); }
  603. 297 STD      RUMP   { int|sys||fchroot(int fd); }
  604. 298 COMPAT_30 MODULAR compat    \
  605.         { int|sys||fhopen(const struct compat_30_fhandle *fhp, int flags); }
  606. 299 COMPAT_30 MODULAR compat    \
  607.         { int|sys||fhstat(const struct compat_30_fhandle *fhp, \
  608.                 struct stat13 *sb); }
  609. 300 COMPAT_20 MODULAR compat    \
  610.         { int|sys||fhstatfs(const struct compat_30_fhandle *fhp, \
  611.                 struct statfs12 *buf); }
  612. #if defined(SYSVSEM) || !defined(_KERNEL_OPT)
  613. 301 COMPAT_50 MODULAR compat_sysv   \
  614.         { int|sys|13|__semctl(int semid, int semnum, int cmd, \
  615.                 ... union __semun *arg); }
  616. #else
  617. 301 EXCL        ____semctl13
  618. #endif
  619. #if defined(SYSVMSG) || !defined(_KERNEL_OPT)
  620. 302 COMPAT_50 MODULAR compat_sysv { int|sys|13|msgctl(int msqid, int cmd, \
  621.                 struct msqid_ds *buf); }
  622. #else
  623. 302 EXCL        __msgctl13
  624. #endif
  625. #if defined(SYSVSHM) || !defined(_KERNEL_OPT)
  626. 303 COMPAT_50 MODULAR compat_sysv { int|sys|13|shmctl(int shmid, int cmd, \
  627.                 struct shmid_ds13 *buf); }
  628. #else
  629. 303 EXCL        __shmctl13
  630. #endif
  631. 304 STD      RUMP   { int|sys||lchflags(const char *path, u_long flags); }
  632. 305 NOERR   RUMP    { int|sys||issetugid(void); }
  633. 306 STD RUMP    { int|sys||utrace(const char *label, void *addr, \
  634.                 size_t len); }
  635. 307 STD         { int|sys||getcontext(struct __ucontext *ucp); }
  636. 308 STD         { int|sys||setcontext(const struct __ucontext *ucp); }
  637. 309 STD         { int|sys||_lwp_create(const struct __ucontext *ucp, \
  638.                 u_long flags, lwpid_t *new_lwp); }
  639. 310 STD         { int|sys||_lwp_exit(void); }
  640. 311 STD         { lwpid_t|sys||_lwp_self(void); }
  641. 312 STD         { int|sys||_lwp_wait(lwpid_t wait_for, \
  642.                 lwpid_t *departed); }
  643. 313 STD         { int|sys||_lwp_suspend(lwpid_t target); }
  644. 314 STD         { int|sys||_lwp_continue(lwpid_t target); }
  645. 315 STD         { int|sys||_lwp_wakeup(lwpid_t target); }
  646. 316 STD         { void *|sys||_lwp_getprivate(void); }
  647. 317 STD         { void|sys||_lwp_setprivate(void *ptr); }
  648. 318 STD         { int|sys||_lwp_kill(lwpid_t target, int signo); }
  649. 319 STD         { int|sys||_lwp_detach(lwpid_t target); }
  650. 320 COMPAT_50 MODULAR compat    \
  651.         { int|sys||_lwp_park(const struct timespec50 *ts, \
  652.                 lwpid_t unpark, const void *hint, \
  653.                 const void *unparkhint); }
  654. 321 STD         { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }
  655. 322 STD         { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, \
  656.                 size_t ntargets, const void *hint); }
  657. 323 STD         { int|sys||_lwp_setname(lwpid_t target, \
  658.                 const char *name); }
  659. 324 STD         { int|sys||_lwp_getname(lwpid_t target, \
  660.                 char *name, size_t len); }
  661. 325 STD         { int|sys||_lwp_ctl(int features, \
  662.                 struct lwpctl **address); }
  663. ; Syscalls 326-339 reserved for LWP syscalls.
  664. 326 UNIMPL
  665. 327 UNIMPL
  666. 328 UNIMPL
  667. 329 UNIMPL
  668. ; SA system calls.
  669. 330 COMPAT_60   { int|sys||sa_register(void *newv, void **oldv, \
  670.                 int flags, ssize_t stackinfo_offset); }
  671. 331 COMPAT_60   { int|sys||sa_stacks(int num, stack_t *stacks); }
  672. 332 COMPAT_60   { int|sys||sa_enable(void); }
  673. 333 COMPAT_60   { int|sys||sa_setconcurrency(int concurrency); }
  674. 334 COMPAT_60   { int|sys||sa_yield(void); }
  675. 335 COMPAT_60   { int|sys||sa_preempt(int sa_id); }
  676. 336 OBSOL       sys_sa_unblockyield
  677. ;
  678. ; Syscalls 337-339 are reserved for other scheduler activation syscalls.
  679. ;
  680. 337 UNIMPL
  681. 338 UNIMPL
  682. 339 UNIMPL
  683. 340 STD         { int|sys||__sigaction_sigtramp(int signum, \
  684.                 const struct sigaction *nsa, \
  685.                 struct sigaction *osa, \
  686.                 const void *tramp, int vers); }
  687. 341 STD     { int|sys||pmc_get_info(int ctr, int op, void *args); }
  688. 342 STD     { int|sys||pmc_control(int ctr, int op, void *args); }
  689. 343 STD         { int|sys||rasctl(void *addr, size_t len, int op); }
  690. 344 STD RUMP    { int|sys||kqueue(void); }
  691. 345 COMPAT_50 MODULAR compat RUMP { int|sys||kevent(int fd, \
  692.                 const struct kevent *changelist, size_t nchanges, \
  693.                 struct kevent *eventlist, size_t nevents, \
  694.                 const struct timespec50 *timeout); }
  695.  
  696. ; Scheduling system calls.
  697. 346 STD         { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, \
  698.                 int policy, const struct sched_param *params); }
  699. 347 STD         { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, \
  700.                 int *policy, struct sched_param *params); }
  701. 348 STD         { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, \
  702.                 size_t size, const cpuset_t *cpuset); }
  703. 349 STD         { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, \
  704.                 size_t size, cpuset_t *cpuset); }
  705. 350 STD         { int|sys||sched_yield(void); }
  706. 351 UNIMPL
  707. 352 UNIMPL
  708. 353 UNIMPL
  709.  
  710. 354 STD RUMP    { int|sys||fsync_range(int fd, int flags, off_t start, \
  711.                 off_t length); }
  712. 355 STD         { int|sys||uuidgen(struct uuid *store, int count); }
  713. 356 STD     RUMP    { int|sys||getvfsstat(struct statvfs *buf, \
  714.                 size_t bufsize, int flags); }
  715. 357 STD     RUMP    { int|sys||statvfs1(const char *path, \
  716.                 struct statvfs *buf, int flags); }
  717. 358 STD     RUMP    { int|sys||fstatvfs1(int fd, struct statvfs *buf, \
  718.                 int flags); }
  719. 359 COMPAT_30 MODULAR compat    \
  720.         { int|sys||fhstatvfs1(const struct compat_30_fhandle *fhp, \
  721.                 struct statvfs *buf, int flags); }
  722. 360 STD     RUMP    { int|sys||extattrctl(const char *path, int cmd, \
  723.                 const char *filename, int attrnamespace, \
  724.                 const char *attrname); }
  725. 361 STD     RUMP    { int|sys||extattr_set_file(const char *path, \
  726.                 int attrnamespace, const char *attrname, \
  727.                 const void *data, size_t nbytes); }
  728. 362 STD     RUMP    { ssize_t|sys||extattr_get_file(const char *path, \
  729.                 int attrnamespace, const char *attrname, \
  730.                 void *data, size_t nbytes); }
  731. 363 STD     RUMP    { int|sys||extattr_delete_file(const char *path, \
  732.                 int attrnamespace, const char *attrname); }
  733. 364 STD     RUMP    { int|sys||extattr_set_fd(int fd, \
  734.                 int attrnamespace, const char *attrname, \
  735.                 const void *data, size_t nbytes); }
  736. 365 STD     RUMP    { ssize_t|sys||extattr_get_fd(int fd, \
  737.                 int attrnamespace, const char *attrname, \
  738.                 void *data, size_t nbytes); }
  739. 366 STD     RUMP    { int|sys||extattr_delete_fd(int fd, \
  740.                 int attrnamespace, const char *attrname); }
  741. 367 STD     RUMP    { int|sys||extattr_set_link(const char *path, \
  742.                 int attrnamespace, const char *attrname, \
  743.                 const void *data, size_t nbytes); }
  744. 368 STD     RUMP    { ssize_t|sys||extattr_get_link(const char *path, \
  745.                 int attrnamespace, const char *attrname, \
  746.                 void *data, size_t nbytes); }
  747. 369 STD     RUMP    { int|sys||extattr_delete_link(const char *path, \
  748.                 int attrnamespace, const char *attrname); }
  749. 370 STD     RUMP    { ssize_t|sys||extattr_list_fd(int fd, \
  750.                 int attrnamespace, void *data, size_t nbytes); }
  751. 371 STD     RUMP    { ssize_t|sys||extattr_list_file(const char *path, \
  752.                 int attrnamespace, void *data, size_t nbytes); }
  753. 372 STD     RUMP    { ssize_t|sys||extattr_list_link(const char *path, \
  754.                 int attrnamespace, void *data, size_t nbytes); }
  755. 373 COMPAT_50 MODULAR compat RUMP   \
  756.         { int|sys||pselect(int nd, fd_set *in, fd_set *ou, \
  757.                 fd_set *ex, const struct timespec50 *ts, \
  758.                 const sigset_t *mask); }
  759. 374 COMPAT_50 MODULAR compat RUMP   \
  760.         { int|sys||pollts(struct pollfd *fds, u_int nfds, \
  761.                 const struct timespec50 *ts, const sigset_t *mask); }
  762. 375 STD     RUMP    { int|sys||setxattr(const char *path, \
  763.                 const char *name, const void *value, size_t size, \
  764.                 int flags); }
  765. 376 STD     RUMP    { int|sys||lsetxattr(const char *path, \
  766.                 const char *name, const void *value, size_t size, \
  767.                 int flags); }
  768. 377 STD     RUMP    { int|sys||fsetxattr(int fd, \
  769.                 const char *name, const void *value, size_t size, \
  770.                 int flags); }
  771. 378 STD     RUMP    { int|sys||getxattr(const char *path, \
  772.                 const char *name, void *value, size_t size); }
  773. 379 STD     RUMP    { int|sys||lgetxattr(const char *path, \
  774.                 const char *name, void *value, size_t size); }
  775. 380 STD     RUMP    { int|sys||fgetxattr(int fd, \
  776.                 const char *name, void *value, size_t size); }
  777. 381 STD     RUMP    { int|sys||listxattr(const char *path, \
  778.                 char *list, size_t size); }
  779. 382 STD     RUMP    { int|sys||llistxattr(const char *path, \
  780.                 char *list, size_t size); }
  781. 383 STD     RUMP    { int|sys||flistxattr(int fd, \
  782.                 char *list, size_t size); }
  783. 384 STD     RUMP    { int|sys||removexattr(const char *path, \
  784.                 const char *name); }
  785. 385 STD     RUMP    { int|sys||lremovexattr(const char *path, \
  786.                 const char *name); }
  787. 386 STD     RUMP    { int|sys||fremovexattr(int fd, \
  788.                 const char *name); }
  789. 387 COMPAT_50 MODULAR compat RUMP   \
  790.         { int|sys|30|stat(const char *path, struct stat30 *ub); }
  791. 388 COMPAT_50 MODULAR compat RUMP   \
  792.         { int|sys|30|fstat(int fd, struct stat30 *sb); }
  793. 389 COMPAT_50 MODULAR compat RUMP   \
  794.         { int|sys|30|lstat(const char *path, struct stat30 *ub); }
  795. 390 STD     RUMP    { int|sys|30|getdents(int fd, char *buf, size_t count); }
  796. 391 IGNORED     old posix_fadvise
  797. 392 COMPAT_30 MODULAR compat { int|sys|30|fhstat(const struct compat_30_fhandle \
  798.                 *fhp, struct stat30 *sb); }
  799. 393 COMPAT_50 MODULAR compat    \
  800.         { int|sys|30|ntp_gettime(struct ntptimeval50 *ntvp); }
  801. 394 STD  RUMP   { int|sys|30|socket(int domain, int type, int protocol); }
  802. 395 STD      RUMP   { int|sys|30|getfh(const char *fname, void *fhp, \
  803.                 size_t *fh_size); }
  804. 396 STD      RUMP   { int|sys|40|fhopen(const void *fhp, size_t fh_size,\
  805.                 int flags); }
  806. 397 STD      RUMP   { int|sys|40|fhstatvfs1(const void *fhp, \
  807.                 size_t fh_size, struct statvfs *buf, int flags); }
  808. 398 COMPAT_50 MODULAR compat RUMP { int|sys|40|fhstat(const void *fhp, \
  809.                 size_t fh_size, struct stat30 *sb); }
  810.  
  811. ; Asynchronous I/O system calls
  812. 399 STD MODULAR aio RUMP    \
  813.         { int|sys||aio_cancel(int fildes, struct aiocb *aiocbp); }
  814. 400 STD MODULAR aio RUMP    \
  815.         { int|sys||aio_error(const struct aiocb *aiocbp); }
  816. 401 STD MODULAR aio RUMP    \
  817.         { int|sys||aio_fsync(int op, struct aiocb *aiocbp); }
  818. 402 STD MODULAR aio RUMP    \
  819.         { int|sys||aio_read(struct aiocb *aiocbp); }
  820. 403 STD MODULAR aio RUMP    \
  821.         { int|sys||aio_return(struct aiocb *aiocbp); }
  822. 404 COMPAT_50 MODULAR compat    \
  823.         { int|sys||aio_suspend(const struct aiocb *const *list, \
  824.             int nent, const struct timespec50 *timeout); }
  825. 405 STD MODULAR aio RUMP    \
  826.         { int|sys||aio_write(struct aiocb *aiocbp); }
  827. 406 STD MODULAR aio RUMP    \
  828.         { int|sys||lio_listio(int mode, struct aiocb *const *list, \
  829.             int nent, struct sigevent *sig); }
  830.  
  831. 407 UNIMPL
  832. 408 UNIMPL
  833. 409 UNIMPL
  834.  
  835. 410 STD  RUMP   { int|sys|50|mount(const char *type, \
  836.                 const char *path, int flags, void *data, \
  837.                 size_t data_len); }
  838. 411 STD         { void *|sys||mremap(void *old_address, size_t old_size, \
  839.                 void *new_address, size_t new_size, int flags); }
  840.  
  841. ; Processor-sets system calls
  842. 412 STD         { int|sys||pset_create(psetid_t *psid); }
  843. 413 STD         { int|sys||pset_destroy(psetid_t psid); }
  844. 414 STD         { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, \
  845.                 psetid_t *opsid); }
  846. 415 STD         { int|sys||_pset_bind(idtype_t idtype, id_t first_id, \
  847.                 id_t second_id, psetid_t psid, psetid_t *opsid); }
  848. 416 NOERR RUMP  { int|sys|50|posix_fadvise(int fd, int PAD, \
  849.                 off_t offset, off_t len, int advice); }
  850. 417 STD  RUMP   { int|sys|50|select(int nd, fd_set *in, fd_set *ou, \
  851.                 fd_set *ex, struct timeval *tv); }
  852. 418 STD  RUMP   { int|sys|50|gettimeofday(struct timeval *tp, \
  853.                 void *tzp); }
  854. 419 STD  RUMP   { int|sys|50|settimeofday(const struct timeval *tv, \
  855.                 const void *tzp); }
  856. 420 STD  RUMP   { int|sys|50|utimes(const char *path, \
  857.                 const struct timeval *tptr); }
  858. 421 STD  RUMP   { int|sys|50|adjtime(const struct timeval *delta, \
  859.                 struct timeval *olddelta); }
  860. 422 STD  MODULAR lfs { int|sys|50|lfs_segwait(fsid_t *fsidp, \
  861.                 struct timeval *tv); }
  862. 423 STD  RUMP   { int|sys|50|futimes(int fd, \
  863.                 const struct timeval *tptr); }
  864. 424 STD  RUMP   { int|sys|50|lutimes(const char *path, \
  865.                 const struct timeval *tptr); }
  866. 425 STD  RUMP   { int|sys|50|setitimer(int which, \
  867.                 const struct itimerval *itv, \
  868.                 struct itimerval *oitv); }
  869. 426 STD  RUMP   { int|sys|50|getitimer(int which, \
  870.                 struct itimerval *itv); }
  871. 427 STD  RUMP   { int|sys|50|clock_gettime(clockid_t clock_id, \
  872.                 struct timespec *tp); }
  873. 428 STD  RUMP   { int|sys|50|clock_settime(clockid_t clock_id, \
  874.                 const struct timespec *tp); }
  875. 429 STD  RUMP   { int|sys|50|clock_getres(clockid_t clock_id, \
  876.                 struct timespec *tp); }
  877. 430 STD  RUMP   { int|sys|50|nanosleep(const struct timespec *rqtp, \
  878.                 struct timespec *rmtp); }
  879. 431 STD         { int|sys|50|__sigtimedwait(const sigset_t *set, \
  880.                 siginfo_t *info, \
  881.                 struct timespec *timeout); }
  882. 432 STD MODULAR mqueue  \
  883.         { int|sys|50|mq_timedsend(mqd_t mqdes, \
  884.                 const char *msg_ptr, size_t msg_len, \
  885.                 unsigned msg_prio, \
  886.                 const struct timespec *abs_timeout); }
  887. 433 STD MODULAR mqueue  \
  888.         { ssize_t|sys|50|mq_timedreceive(mqd_t mqdes, \
  889.                 char *msg_ptr, size_t msg_len, unsigned *msg_prio, \
  890.                 const struct timespec *abs_timeout); }
  891. 434 COMPAT_60 MODULAR compat \
  892.         { int|sys||_lwp_park(const struct timespec *ts, \
  893.                 lwpid_t unpark, const void *hint, \
  894.                 const void *unparkhint); }
  895. 435 STD RUMP    { int|sys|50|kevent(int fd, \
  896.                 const struct kevent *changelist, size_t nchanges, \
  897.                 struct kevent *eventlist, size_t nevents, \
  898.                 const struct timespec *timeout); }
  899. 436 STD     RUMP    { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, \
  900.                 fd_set *ex, const struct timespec *ts, \
  901.                 const sigset_t *mask); }
  902. 437 STD     RUMP    { int|sys|50|pollts(struct pollfd *fds, u_int nfds, \
  903.                 const struct timespec *ts, const sigset_t *mask); }
  904. 438 STD MODULAR aio RUMP { int|sys|50|aio_suspend( \
  905.                 const struct aiocb *const *list, \
  906.                 int nent, const struct timespec *timeout); }
  907. 439 STD  RUMP   { int|sys|50|stat(const char *path, struct stat *ub); }
  908. 440 STD  RUMP   { int|sys|50|fstat(int fd, struct stat *sb); }
  909. 441 STD  RUMP   { int|sys|50|lstat(const char *path, struct stat *ub); }
  910. 442 STD MODULAR sysv_ipc { int|sys|50|__semctl(int semid, int semnum, \
  911.                 int cmd, ... union __semun *arg); }
  912. 443 STD MODULAR sysv_ipc { int|sys|50|shmctl(int shmid, int cmd, \
  913.                 struct shmid_ds *buf); }
  914. 444 STD MODULAR sysv_ipc { int|sys|50|msgctl(int msqid, int cmd, \
  915.                 struct msqid_ds *buf); }
  916. 445 STD         { int|sys|50|getrusage(int who, struct rusage *rusage); }
  917. 446 STD  RUMP   { int|sys|50|timer_settime(timer_t timerid, \
  918.                 int flags, const struct itimerspec *value, \
  919.                 struct itimerspec *ovalue); }
  920. 447 STD  RUMP   { int|sys|50|timer_gettime(timer_t timerid, struct \
  921.                 itimerspec *value); }
  922. #if defined(NTP) || !defined(_KERNEL_OPT)
  923. 448 STD     { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }
  924. #else
  925. 448 EXCL        ___ntp_gettime50
  926. #endif
  927. 449 STD         { int|sys|50|wait4(pid_t pid, int *status, \
  928.                     int options, struct rusage *rusage); }
  929. 450 STD  RUMP   { int|sys|50|mknod(const char *path, mode_t mode, \
  930.                 dev_t dev); }
  931. 451 STD  RUMP   { int|sys|50|fhstat(const void *fhp, \
  932.                 size_t fh_size, struct stat *sb); }
  933. ; 452 only ever appeared in 5.99.x and can be reused after netbsd-7
  934. 452 OBSOL       5.99 quotactl
  935. 453 STD  RUMP   { int|sys||pipe2(int *fildes, int flags); }
  936. 454 STD  RUMP   { int|sys||dup3(int from, int to, int flags); }
  937. 455 STD  RUMP   { int|sys||kqueue1(int flags); }
  938. 456 STD  RUMP   { int|sys||paccept(int s, struct sockaddr *name, \
  939.                 socklen_t *anamelen, const sigset_t *mask, \
  940.                 int flags); }
  941. 457 STD  RUMP   { int|sys||linkat(int fd1, const char *name1, \
  942.                 int fd2, const char *name2, int flags); }
  943. 458 STD  RUMP   { int|sys||renameat(int fromfd, const char *from, \
  944.                 int tofd, const char *to); }
  945. 459 STD  RUMP   { int|sys||mkfifoat(int fd, const char *path, \
  946.                 mode_t mode); }
  947. 460 STD  RUMP   { int|sys||mknodat(int fd, const char *path, \
  948.                 mode_t mode, int PAD, dev_t dev); }
  949. 461 STD  RUMP   { int|sys||mkdirat(int fd, const char *path, \
  950.                 mode_t mode); }
  951. 462 STD  RUMP   { int|sys||faccessat(int fd, const char *path, \
  952.                 int amode, int flag); }
  953. 463 STD  RUMP   { int|sys||fchmodat(int fd, const char *path, \
  954.                 mode_t mode, int flag); }
  955. 464 STD  RUMP   { int|sys||fchownat(int fd, const char *path, \
  956.                 uid_t owner, gid_t group, int flag); }
  957. 465 STD         { int|sys||fexecve(int fd, \
  958.                 char * const *argp, char * const *envp); }
  959. 466 STD  RUMP   { int|sys||fstatat(int fd, const char *path, \
  960.                 struct stat *buf, int flag); }
  961. 467 STD  RUMP   { int|sys||utimensat(int fd, const char *path, \
  962.                 const struct timespec *tptr, int flag); }
  963. 468 STD  RUMP   { int|sys||openat(int fd, const char *path, \
  964.                 int oflags, ... mode_t mode); }
  965. 469 STD  RUMP   { ssize_t|sys||readlinkat(int fd, const char *path, \
  966.                 char *buf, size_t bufsize); }
  967. 470 STD  RUMP   { int|sys||symlinkat(const char *path1, int fd, \
  968.                 const char *path2); }
  969. 471 STD  RUMP   { int|sys||unlinkat(int fd, const char *path, \
  970.                 int flag); }
  971. 472 STD  RUMP   { int|sys||futimens(int fd, \
  972.                 const struct timespec *tptr); }
  973. 473 STD  RUMP   { int|sys||__quotactl(const char *path, \
  974.                 struct quotactl_args *args); }
  975. 474 NOERR       { int|sys||posix_spawn(pid_t *pid, const char *path, \
  976.                 const struct posix_spawn_file_actions *file_actions, \
  977.                 const struct posix_spawnattr *attrp, \
  978.                 char *const *argv, char *const *envp); }
  979. 475 STD  RUMP   { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, \
  980.                 unsigned int vlen, unsigned int flags, \
  981.                 struct timespec *timeout); }
  982. 476 STD  RUMP   { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, \
  983.                 unsigned int vlen, unsigned int flags); }
  984. 477 STD  RUMP   { int|sys||clock_nanosleep(clockid_t clock_id, \
  985.                 int flags, const struct timespec *rqtp, \
  986.                 struct timespec *rmtp); }
  987. 478 STD         { int|sys|60|_lwp_park(clockid_t clock_id, int flags, \
  988.                 const struct timespec *ts, lwpid_t unpark, \
  989.                 const void *hint, const void *unparkhint); }
  990. 479 NOERR   RUMP    { int|sys||posix_fallocate(int fd, int PAD, off_t pos, \
  991.                 off_t len); }
  992. 480 STD  RUMP   { int|sys||fdiscard(int fd, int PAD, off_t pos, \
  993.                 off_t len); }