syscalls.master revision 1.216
1	$NetBSD: syscalls.master,v 1.216 2008/11/19 18:36:07 ad 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;     RUMP:	the system call can be called directly from rumps
16;
17; types:
18;	STD	always included
19;	OBSOL	obsolete, not included in system
20;	IGNORED	syscall is a null op, but always succeeds
21;	UNIMPL	unimplemented, not included in system
22;	EXCL	implemented, but not included in system
23;	NODEF	included, but don't define the syscall number
24;	NOARGS	included, but don't define the syscall args structure
25;	INDIR	included, but don't define the syscall args structure,
26;		and allow it to be "really" varargs.
27;
28; The compat options are defined in the syscalls.conf file, and the
29; compat option name is prefixed to the syscall name.  Other than
30; that, they're like NODEF (for 'compat' options), or STD (for
31; 'libcompat' options).
32;
33; The type-dependent arguments are as follows:
34; For STD, NODEF, NOARGS, and compat syscalls:
35;	{ pseudo-proto } [alias]
36; For other syscalls:
37;	[comment]
38;
39; #ifdef's, etc. may be included, and are copied to the output files.
40; #include's are copied to the syscall names and switch definition files only.
41
42#include "opt_ntp.h"
43#include "opt_sysv.h"
44
45#include "fs_lfs.h"
46
47#include <sys/param.h>
48#include <sys/systm.h>
49#include <sys/signal.h>
50#include <sys/mount.h>
51#include <sys/sched.h>
52#include <sys/syscallargs.h>
53
54%%
55
56; Reserved/unimplemented system calls in the range 0-150 inclusive
57; are reserved for use in future Berkeley releases.
58; Additional system calls implemented in vendor and other
59; redistributions should be placed in the reserved range at the end
60; of the current calls.
61
620	INDIR		{ int sys_syscall(int code, \
63			    ... register_t args[SYS_MAXSYSARGS]); }
641	STD 		{ void sys_exit(int rval); }
652	STD 		{ int sys_fork(void); }
663	STD 	 RUMP	{ ssize_t sys_read(int fd, void *buf, size_t nbyte); }
674	STD 	 RUMP	{ ssize_t sys_write(int fd, const void *buf, \
68			    size_t nbyte); }
695	STD 	 RUMP	{ int sys_open(const char *path, \
70			    int flags, ... mode_t mode); }
716	STD 	 RUMP	{ int sys_close(int fd); }
727	STD 		{ int sys_wait4(int pid, int *status, int options, \
73			    struct rusage *rusage); }
748	COMPAT_43 MODULAR { int sys_creat(const char *path, mode_t mode); } ocreat
759	STD 	 RUMP	{ int sys_link(const char *path, const char *link); }
7610	STD 	 RUMP	{ int sys_unlink(const char *path); }
7711	OBSOL		execv
7812	STD 	 RUMP	{ int sys_chdir(const char *path); }
7913	STD 	 RUMP	{ int sys_fchdir(int fd); }
8014	STD 	 RUMP	{ int sys_mknod(const char *path, mode_t mode, \
81			    dev_t dev); }
8215	STD 	 RUMP	{ int sys_chmod(const char *path, mode_t mode); }
8316	STD 	 RUMP	{ int sys_chown(const char *path, uid_t uid, \
84			    gid_t gid); }
8517	STD 		{ int sys_obreak(char *nsize); } break
8618	COMPAT_20 MODULAR { int sys_getfsstat(struct statfs12 *buf, \
87			    long bufsize, int flags); }
8819	COMPAT_43 MODULAR { long sys_lseek(int fd, long offset, int whence); } \
89			    olseek
9020	STD 		{ pid_t sys_getpid_with_ppid(void); } getpid
9121	COMPAT_40 MODULAR { int sys_mount(const char *type, const char *path, \
92			    int flags, void *data); }
9322	STD 	 RUMP	{ int sys_unmount(const char *path, int flags); }
9423	STD 		{ int sys_setuid(uid_t uid); }
9524	STD 		{ uid_t sys_getuid_with_euid(void); } getuid
9625	STD 		{ uid_t sys_geteuid(void); }
9726	STD 		{ int sys_ptrace(int req, pid_t pid, void *addr, \
98			    int data); }
9927	STD 		{ ssize_t sys_recvmsg(int s, struct msghdr *msg, \
100			    int flags); }
10128	STD 		{ ssize_t sys_sendmsg(int s, \
102			    const struct msghdr *msg, int flags); }
10329	STD 		{ ssize_t sys_recvfrom(int s, void *buf, size_t len, \
104			    int flags, struct sockaddr *from, \
105			    unsigned int *fromlenaddr); }
10630	STD		{ int sys_accept(int s, struct sockaddr *name, \
107			    unsigned int *anamelen); }
10831	STD		{ int sys_getpeername(int fdes, struct sockaddr *asa, \
109			    unsigned int *alen); }
11032	STD		{ int sys_getsockname(int fdes, struct sockaddr *asa, \
111			    unsigned int *alen); }
11233	STD 		{ int sys_access(const char *path, int flags); }
11334	STD 	 RUMP	{ int sys_chflags(const char *path, u_long flags); }
11435	STD 		{ int sys_fchflags(int fd, u_long flags); }
11536	STD 	 RUMP	{ void sys_sync(void); }
11637	STD 		{ int sys_kill(int pid, int signum); }
11738	COMPAT_43 MODULAR { int sys_stat(const char *path, struct stat43 *ub); } \
118			    stat43
11939	STD 		{ pid_t sys_getppid(void); }
12040	COMPAT_43 MODULAR { int sys_lstat(const char *path, \
121			    struct stat43 *ub); } lstat43
12241	STD 		{ int sys_dup(int fd); }
12342	STD 		{ int sys_pipe(void); }
12443	STD 		{ gid_t sys_getegid(void); }
12544	STD 		{ int sys_profil(char *samples, size_t size, \
126			    u_long offset, u_int scale); }
12745	STD 		{ int sys_ktrace(const char *fname, int ops, \
128			    int facs, int pid); }
12946	COMPAT_13 MODULAR { int sys_sigaction(int signum, \
130			    const struct sigaction13 *nsa, \
131			    struct sigaction13 *osa); } sigaction13
13247	STD 		{ gid_t sys_getgid_with_egid(void); } getgid
13348	COMPAT_13 MODULAR { int sys_sigprocmask(int how, \
134			    int mask); } sigprocmask13
13549	STD 		{ int sys___getlogin(char *namebuf, size_t namelen); }
13650	STD 	 	{ int sys___setlogin(const char *namebuf); }
13751	STD 		{ int sys_acct(const char *path); }
13852	COMPAT_13 MODULAR { int sys_sigpending(void); } sigpending13
13953	COMPAT_13 MODULAR { int sys_sigaltstack( \
140			    const struct sigaltstack13 *nss, \
141			    struct sigaltstack13 *oss); } sigaltstack13
14254	STD	RUMP	{ int sys_ioctl(int fd, \
143			    u_long com, ... void *data); }
14455	COMPAT_12 MODULAR { int sys_reboot(int opt); } oreboot
14556	STD 		{ int sys_revoke(const char *path); }
14657	STD 	 RUMP	{ int sys_symlink(const char *path, \
147			    const char *link); }
14858	STD 	 RUMP	{ ssize_t sys_readlink(const char *path, char *buf, \
149			    size_t count); }
15059	STD 		{ int sys_execve(const char *path, \
151			    char * const *argp, char * const *envp); }
15260	STD 		{ mode_t sys_umask(mode_t newmask); }
15361	STD 		{ int sys_chroot(const char *path); }
15462	COMPAT_43 MODULAR { int sys_fstat(int fd, struct stat43 *sb); } fstat43
15563	COMPAT_43 MODULAR { int sys_getkerninfo(int op, char *where, int *size, \
156			    int arg); } ogetkerninfo
15764	COMPAT_43 MODULAR { int sys_getpagesize(void); } ogetpagesize
15865	COMPAT_12 MODULAR { int sys_msync(void *addr, size_t len); }
159; XXX COMPAT_??? for 4.4BSD-compatible vfork(2)?
16066	STD 		{ int sys_vfork(void); }
16167	OBSOL		vread
16268	OBSOL		vwrite
16369	STD 		{ int sys_sbrk(intptr_t incr); }
16470	STD 		{ int sys_sstk(int incr); }
16571	COMPAT_43 MODULAR { int sys_mmap(void *addr, size_t len, int prot, \
166			    int flags, int fd, long pos); } ommap
16772	STD 		{ int sys_ovadvise(int anom); } vadvise
16873	STD 		{ int sys_munmap(void *addr, size_t len); }
16974	STD 		{ int sys_mprotect(void *addr, size_t len, \
170			    int prot); }
17175	STD 		{ int sys_madvise(void *addr, size_t len, \
172			    int behav); }
17376	OBSOL		vhangup
17477	OBSOL		vlimit
17578	STD 		{ int sys_mincore(void *addr, size_t len, \
176			    char *vec); }
17779	STD 		{ int sys_getgroups(int gidsetsize, \
178			    gid_t *gidset); }
17980	STD 		{ int sys_setgroups(int gidsetsize, \
180			    const gid_t *gidset); }
18181	STD 	 	{ int sys_getpgrp(void); }
18282	STD 		{ int sys_setpgid(int pid, int pgid); }
18383	STD 		{ int sys_setitimer(int which, \
184			    const struct itimerval *itv, \
185			    struct itimerval *oitv); }
18684	COMPAT_43 MODULAR { int sys_wait(void); } owait
18785	COMPAT_12 MODULAR { int sys_swapon(const char *name); } oswapon
18886	STD 		{ int sys_getitimer(int which, \
189			    struct itimerval *itv); }
19087	COMPAT_43 MODULAR { int sys_gethostname(char *hostname, u_int len); } \
191			    ogethostname
19288	COMPAT_43 MODULAR { int sys_sethostname(char *hostname, u_int len); } \
193			    osethostname
19489	COMPAT_43 MODULAR { int sys_getdtablesize(void); } ogetdtablesize
19590	STD 		{ int sys_dup2(int from, int to); }
19691	UNIMPL		getdopt
19792	STD 		{ int sys_fcntl(int fd, int cmd, ... void *arg); }
19893	STD 		{ int sys_select(int nd, fd_set *in, fd_set *ou, \
199			    fd_set *ex, struct timeval *tv); }
20094	UNIMPL		setdopt
20195	STD	RUMP 	{ int sys_fsync(int fd); }
20296	STD 		{ int sys_setpriority(int which, id_t who, int prio); }
20397	COMPAT_30 MODULAR { int sys_socket(int domain, int type, int protocol); }
20498	STD	RUMP	{ int sys_connect(int s, const struct sockaddr *name, \
205			    unsigned int namelen); }
20699	COMPAT_43 MODULAR { int sys_accept(int s, void *name, \
207			    int *anamelen); } oaccept
208100	STD 		{ int sys_getpriority(int which, id_t who); }
209101	COMPAT_43 MODULAR { int sys_send(int s, void *buf, int len, \
210			    int flags); } osend
211102	COMPAT_43 MODULAR { int sys_recv(int s, void *buf, int len, \
212			    int flags); } orecv
213103	COMPAT_13 MODULAR { int sys_sigreturn(struct sigcontext13 *sigcntxp); } \
214			    sigreturn13
215104	STD		{ int sys_bind(int s, const struct sockaddr *name, \
216			    unsigned int namelen); }
217105	STD	RUMP	{ int sys_setsockopt(int s, int level, int name, \
218			    const void *val, unsigned int valsize); }
219106	STD		{ int sys_listen(int s, int backlog); }
220107	OBSOL		vtimes
221108	COMPAT_43 MODULAR { int sys_sigvec(int signum, struct sigvec *nsv, \
222			    struct sigvec *osv); } osigvec
223109	COMPAT_43 MODULAR { int sys_sigblock(int mask); } osigblock
224110	COMPAT_43 MODULAR { int sys_sigsetmask(int mask); } osigsetmask
225111	COMPAT_13 MODULAR { int sys_sigsuspend(int mask); } sigsuspend13
226112	COMPAT_43 MODULAR { int sys_sigstack(struct sigstack *nss, \
227			    struct sigstack *oss); } osigstack
228113	COMPAT_43 MODULAR { int sys_recvmsg(int s, struct omsghdr *msg, \
229			    int flags); } orecvmsg
230114	COMPAT_43 MODULAR { int sys_sendmsg(int s, void *msg, int flags); } \
231			    osendmsg
232115	OBSOL		vtrace
233116	STD 		{ int sys_gettimeofday(struct timeval *tp, \
234			    void *tzp); }
235117	STD 		{ int sys_getrusage(int who, struct rusage *rusage); }
236118	STD	RUMP	{ int sys_getsockopt(int s, int level, int name, \
237			    void *val, unsigned int *avalsize); }
238119	OBSOL		resuba
239120	STD 		{ ssize_t sys_readv(int fd, \
240			    const struct iovec *iovp, int iovcnt); }
241121	STD 		{ ssize_t sys_writev(int fd, \
242			    const struct iovec *iovp, int iovcnt); }
243122	STD 		{ int sys_settimeofday(const struct timeval *tv, \
244			    const void *tzp); }
245123	STD 		{ int sys_fchown(int fd, uid_t uid, gid_t gid); }
246124	STD 		{ int sys_fchmod(int fd, mode_t mode); }
247125	COMPAT_43 MODULAR { int sys_recvfrom(int s, void *buf, size_t len, \
248			    int flags, void *from, int *fromlenaddr); } \
249			    orecvfrom
250126	STD 		{ int sys_setreuid(uid_t ruid, uid_t euid); }
251127	STD 		{ int sys_setregid(gid_t rgid, gid_t egid); }
252128	STD 	 RUMP	{ int sys_rename(const char *from, const char *to); }
253129	COMPAT_43 MODULAR { int sys_truncate(const char *path, long length); } \
254			    otruncate
255130	COMPAT_43 MODULAR { int sys_ftruncate(int fd, long length); } oftruncate
256131	STD 		{ int sys_flock(int fd, int how); }
257132	STD 	 RUMP	{ int sys_mkfifo(const char *path, mode_t mode); }
258133	STD 		{ ssize_t sys_sendto(int s, const void *buf, \
259			    size_t len, int flags, const struct sockaddr *to, \
260			    unsigned int tolen); }
261134	STD		{ int sys_shutdown(int s, int how); }
262135	STD		{ int sys_socketpair(int domain, int type, \
263			    int protocol, int *rsv); }
264136	STD 	 RUMP	{ int sys_mkdir(const char *path, mode_t mode); }
265137	STD 	 RUMP	{ int sys_rmdir(const char *path); }
266138	STD 	 RUMP	{ int sys_utimes(const char *path, \
267			    const struct timeval *tptr); }
268139	OBSOL		4.2 sigreturn
269140	STD 		{ int sys_adjtime(const struct timeval *delta, \
270			    struct timeval *olddelta); }
271141	COMPAT_43 MODULAR { int sys_getpeername(int fdes, void *asa, \
272			    int *alen); } ogetpeername
273142	COMPAT_43 MODULAR { int32_t sys_gethostid(void); } ogethostid
274143	COMPAT_43 MODULAR { int sys_sethostid(int32_t hostid); } osethostid
275144	COMPAT_43 MODULAR { int sys_getrlimit(int which, \
276			    struct orlimit *rlp); } ogetrlimit
277145	COMPAT_43 MODULAR { int sys_setrlimit(int which, \
278			    const struct orlimit *rlp); } osetrlimit
279146	COMPAT_43 MODULAR { int sys_killpg(int pgid, int signum); } okillpg
280147	STD 	 	{ int sys_setsid(void); }
281148	STD 		{ int sys_quotactl(const char *path, int cmd, \
282			    int uid, void *arg); }
283149	COMPAT_43 MODULAR { int sys_quota(void); } oquota
284150	COMPAT_43 MODULAR { int sys_getsockname(int fdec, void *asa, \
285			    int *alen); } ogetsockname
286
287; Syscalls 151-180 inclusive are reserved for vendor-specific
288; system calls.  (This includes various calls added for compatibity
289; with other Unix variants.)
290; Some of these calls are now supported by BSD...
291151	UNIMPL
292152	UNIMPL
293153	UNIMPL
294154	UNIMPL
295155	STD MODULAR	{ int sys_nfssvc(int flag, void *argp); }
296156	COMPAT_43 MODULAR { int sys_getdirentries(int fd, char *buf, \
297			    u_int count, long *basep); } ogetdirentries
298157	COMPAT_20 MODULAR { int sys_statfs(const char *path, \
299			    struct statfs12 *buf); }
300158	COMPAT_20 MODULAR { int sys_fstatfs(int fd, struct statfs12 *buf); }
301159	UNIMPL
302160	UNIMPL
303161	COMPAT_30 MODULAR { int sys_getfh(const char *fname, \
304			    struct compat_30_fhandle *fhp); }
305162	COMPAT_09 MODULAR { int sys_getdomainname(char *domainname, int len); } \
306			    ogetdomainname
307163	COMPAT_09 MODULAR { int sys_setdomainname(char *domainname, int len); } \
308			    osetdomainname
309164	COMPAT_09 MODULAR { int sys_uname(struct outsname *name); } ouname
310165	STD 		{ int sys_sysarch(int op, void *parms); }
311166	UNIMPL
312167	UNIMPL
313168	UNIMPL
314; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
315#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
316169	COMPAT_10 MODULAR { int sys_semsys(int which, int a2, int a3, int a4, \
317			    int a5); } osemsys
318#else
319169	EXCL		1.0 semsys
320#endif
321; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
322#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
323170	COMPAT_10 MODULAR { int sys_msgsys(int which, int a2, int a3, int a4, \
324			    int a5, int a6); } omsgsys
325#else
326170	EXCL		1.0 msgsys
327#endif
328; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
329#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
330171	COMPAT_10 MODULAR { int sys_shmsys(int which, int a2, int a3, int a4); } \
331			    oshmsys
332#else
333171	EXCL		1.0 shmsys
334#endif
335172	UNIMPL
336173	STD 	 RUMP	{ ssize_t sys_pread(int fd, void *buf, \
337			    size_t nbyte, int pad, off_t offset); }
338174	STD 	 RUMP	{ ssize_t sys_pwrite(int fd, const void *buf, \
339			    size_t nbyte, int pad, off_t offset); }
340; For some reason, ntp_gettime doesn't want to raise SIGSYS when it's excluded.
341175	STD		{ int sys_ntp_gettime(struct ntptimeval30 *ntvp); }
342#if defined(NTP) || !defined(_KERNEL_OPT)
343176	STD 		{ int sys_ntp_adjtime(struct timex *tp); }
344#else
345176	EXCL		ntp_adjtime
346#endif
347177	UNIMPL
348178	UNIMPL
349179	UNIMPL
350180	UNIMPL
351
352; Syscalls 180-199 are used by/reserved for BSD
353181	STD 		{ int sys_setgid(gid_t gid); }
354182	STD 		{ int sys_setegid(gid_t egid); }
355183	STD 		{ int sys_seteuid(uid_t euid); }
356#if defined(LFS) || !defined(_KERNEL)
357184	STD 		{ int sys_lfs_bmapv(fsid_t *fsidp, \
358			    struct block_info *blkiov, int blkcnt); }
359185	STD 		{ int sys_lfs_markv(fsid_t *fsidp, \
360			    struct block_info *blkiov, int blkcnt); }
361186	STD 		{ int sys_lfs_segclean(fsid_t *fsidp, u_long segment); }
362187	STD 		{ int sys_lfs_segwait(fsid_t *fsidp, \
363			    struct timeval *tv); }
364#else
365184	EXCL		lfs_bmapv
366185	EXCL		lfs_markv
367186	EXCL		lfs_segclean
368187	EXCL		lfs_segwait
369#endif
370188	COMPAT_12 MODULAR { int sys_stat(const char *path, struct stat12 *ub); } \
371			    stat12
372189	COMPAT_12 MODULAR { int sys_fstat(int fd, struct stat12 *sb); } fstat12
373190	COMPAT_12 MODULAR { int sys_lstat(const char *path, \
374			    struct stat12 *ub); } lstat12
375191	STD 		{ long sys_pathconf(const char *path, int name); }
376192	STD 		{ long sys_fpathconf(int fd, int name); }
377193	UNIMPL
378194	STD 		{ int sys_getrlimit(int which, \
379			    struct rlimit *rlp); }
380195	STD 		{ int sys_setrlimit(int which, \
381			    const struct rlimit *rlp); }
382196	COMPAT_12 MODULAR { int sys_getdirentries(int fd, char *buf, \
383			    u_int count, long *basep); }
384197	STD 		{ void *sys_mmap(void *addr, size_t len, int prot, \
385			    int flags, int fd, long pad, off_t pos); }
386198	INDIR		{ quad_t sys___syscall(quad_t code, \
387			    ... register_t args[SYS_MAXSYSARGS]); }
388199	STD 		{ off_t sys_lseek(int fd, int pad, off_t offset, \
389			    int whence); }
390200	STD 	 RUMP	{ int sys_truncate(const char *path, int pad, \
391			    off_t length); }
392201	STD 		{ int sys_ftruncate(int fd, int pad, off_t length); }
393202	STD	 RUMP 	{ int sys___sysctl(const int *name, u_int namelen, \
394			    void *old, size_t *oldlenp, const void *new, \
395			    size_t newlen); }
396203	STD 		{ int sys_mlock(const void *addr, size_t len); }
397204	STD 		{ int sys_munlock(const void *addr, size_t len); }
398205	STD 		{ int sys_undelete(const char *path); }
399206	STD 		{ int sys_futimes(int fd, \
400			    const struct timeval *tptr); }
401207	STD 		{ pid_t sys_getpgid(pid_t pid); }
402208	STD 		{ int sys_reboot(int opt, char *bootstr); }
403209	STD 		{ int sys_poll(struct pollfd *fds, u_int nfds, \
404			    int timeout); }
405;
406; Syscalls 210-219 are reserved for dynamically loaded syscalls
407;
408210	UNIMPL
409211	UNIMPL
410212	UNIMPL
411213	UNIMPL
412214	UNIMPL
413215	UNIMPL
414216	UNIMPL
415217	UNIMPL
416218	UNIMPL
417219	UNIMPL
418; System calls 220-300 are reserved for use by NetBSD
419#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
420220	COMPAT_14 MODULAR { int sys___semctl(int semid, int semnum, int cmd, \
421			    union __semun *arg); }
422221	STD 		{ int sys_semget(key_t key, int nsems, int semflg); }
423222	STD 		{ int sys_semop(int semid, struct sembuf *sops, \
424			    size_t nsops); }
425223	STD 		{ int sys_semconfig(int flag); }
426#else
427220	EXCL		compat_14_semctl
428221	EXCL		semget
429222	EXCL		semop
430223	EXCL		semconfig
431#endif
432#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
433224	COMPAT_14 MODULAR { int sys_msgctl(int msqid, int cmd, \
434			    struct msqid_ds14 *buf); }
435225	STD 		{ int sys_msgget(key_t key, int msgflg); }
436226	STD 		{ int sys_msgsnd(int msqid, const void *msgp, \
437			    size_t msgsz, int msgflg); }
438227	STD 		{ ssize_t sys_msgrcv(int msqid, void *msgp, \
439			    size_t msgsz, long msgtyp, int msgflg); }
440#else
441224	EXCL 		compat_14_msgctl
442225	EXCL 		msgget
443226	EXCL 		msgsnd
444227	EXCL 		msgrcv
445#endif
446#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
447228	STD 		{ void *sys_shmat(int shmid, const void *shmaddr, \
448			    int shmflg); }
449229	COMPAT_14 MODULAR { int sys_shmctl(int shmid, int cmd, \
450			    struct shmid_ds14 *buf); }
451230	STD 		{ int sys_shmdt(const void *shmaddr); }
452231	STD 		{ int sys_shmget(key_t key, size_t size, int shmflg); }
453#else
454228	EXCL		shmat
455229	EXCL		compat_14_shmctl
456230	EXCL		shmdt
457231	EXCL		shmget
458#endif
459232	STD 		{ int sys_clock_gettime(clockid_t clock_id, \
460			    struct timespec *tp); }
461233	STD 		{ int sys_clock_settime(clockid_t clock_id, \
462			    const struct timespec *tp); }
463234	STD 		{ int sys_clock_getres(clockid_t clock_id, \
464			    struct timespec *tp); }
465235	STD 		{ int sys_timer_create(clockid_t clock_id, \
466			    struct sigevent *evp, timer_t *timerid); }
467236	STD 		{ int sys_timer_delete(timer_t timerid); }
468237	STD 		{ int sys_timer_settime(timer_t timerid, int flags, \
469			    const struct itimerspec *value, \
470			    struct itimerspec *ovalue); }
471238	STD 		{ int sys_timer_gettime(timer_t timerid, struct \
472			    itimerspec *value); }
473239	STD 		{ int sys_timer_getoverrun(timer_t timerid); }
474;
475; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls
476;
477240	STD 		{ int sys_nanosleep(const struct timespec *rqtp, \
478			    struct timespec *rmtp); }
479241	STD 		{ int sys_fdatasync(int fd); }
480242	STD 		{ int sys_mlockall(int flags); }
481243	STD 		{ int sys_munlockall(void); }
482244	STD 		{ int sys___sigtimedwait(const sigset_t *set, \
483			    siginfo_t *info, \
484			    struct timespec *timeout); }
485245	UNIMPL		sys_sigqueue
486246	STD 	 	{ int sys_modctl(int cmd, void *arg); }
487247	STD MODULAR 	{ int sys__ksem_init(unsigned int value, intptr_t *idp); }
488248	STD MODULAR 	{ int sys__ksem_open(const char *name, int oflag, \
489			    mode_t mode, unsigned int value, intptr_t *idp); }
490249	STD MODULAR 	{ int sys__ksem_unlink(const char *name); }
491250	STD MODULAR 	{ int sys__ksem_close(intptr_t id); }
492251	STD MODULAR 	{ int sys__ksem_post(intptr_t id); }
493252	STD MODULAR 	{ int sys__ksem_wait(intptr_t id); }
494253	STD MODULAR 	{ int sys__ksem_trywait(intptr_t id); }
495254	STD MODULAR 	{ int sys__ksem_getvalue(intptr_t id, \
496			    unsigned int *value); }
497255	STD MODULAR 	{ int sys__ksem_destroy(intptr_t id); }
498256	UNIMPL		sys__ksem_timedwait
499257	STD 		{ mqd_t sys_mq_open(const char * name, int oflag, \
500			    mode_t mode, struct mq_attr *attr); }
501258	STD 		{ int sys_mq_close(mqd_t mqdes); }
502259	STD 		{ int sys_mq_unlink(const char *name); }
503260	STD 		{ int sys_mq_getattr(mqd_t mqdes, \
504			    struct mq_attr *mqstat); }
505261	STD 		{ int sys_mq_setattr(mqd_t mqdes, \
506			    const struct mq_attr *mqstat, \
507			    struct mq_attr *omqstat); }
508262	STD 		{ int sys_mq_notify(mqd_t mqdes, \
509			    const struct sigevent *notification); }
510263	STD 		{ int sys_mq_send(mqd_t mqdes, const char *msg_ptr, \
511			    size_t msg_len, unsigned msg_prio); }
512264	STD 		{ ssize_t sys_mq_receive(mqd_t mqdes, char *msg_ptr, \
513			    size_t msg_len, unsigned *msg_prio); }
514265	STD 		{ int sys_mq_timedsend(mqd_t mqdes, \
515			    const char *msg_ptr, size_t msg_len, \
516			    unsigned msg_prio, \
517			    const struct timespec *abs_timeout); }
518266	STD 		{ ssize_t sys_mq_timedreceive(mqd_t mqdes, \
519			    char *msg_ptr, size_t msg_len, unsigned *msg_prio, \
520			    const struct timespec *abs_timeout); }
521267	UNIMPL
522268	UNIMPL
523269	UNIMPL
524270	STD 		{ int sys___posix_rename(const char *from, \
525			    const char *to); }
526271	STD 		{ int sys_swapctl(int cmd, void *arg, int misc); }
527272	COMPAT_30 MODULAR { int sys_getdents(int fd, char *buf, size_t count); }
528273	STD 		{ int sys_minherit(void *addr, size_t len, \
529			    int inherit); }
530274	STD 	 RUMP	{ int sys_lchmod(const char *path, mode_t mode); }
531275	STD 	 RUMP	{ int sys_lchown(const char *path, uid_t uid, \
532			    gid_t gid); }
533276	STD 	 RUMP	{ int sys_lutimes(const char *path, \
534			    const struct timeval *tptr); }
535277	STD 		{ int sys___msync13(void *addr, size_t len, int flags); }
536278	COMPAT_30 MODULAR { int sys___stat13(const char *path, struct stat13 *ub); }
537279	COMPAT_30 MODULAR { int sys___fstat13(int fd, struct stat13 *sb); }
538280	COMPAT_30 MODULAR { int sys___lstat13(const char *path, struct stat13 *ub); }
539281	STD 		{ int sys___sigaltstack14( \
540			    const struct sigaltstack *nss, \
541			    struct sigaltstack *oss); }
542282	STD 		{ int sys___vfork14(void); }
543283	STD 		{ int sys___posix_chown(const char *path, uid_t uid, \
544			    gid_t gid); }
545284	STD 		{ int sys___posix_fchown(int fd, uid_t uid, \
546			    gid_t gid); }
547285	STD 		{ int sys___posix_lchown(const char *path, uid_t uid, \
548			    gid_t gid); }
549286	STD 		{ pid_t sys_getsid(pid_t pid); }
550287	STD 		{ pid_t sys___clone(int flags, void *stack); }
551288	STD 		{ int sys_fktrace(int fd, int ops, \
552			    int facs, int pid); }
553289	STD 		{ ssize_t sys_preadv(int fd, \
554			    const struct iovec *iovp, int iovcnt, \
555			    int pad, off_t offset); }
556290	STD 		{ ssize_t sys_pwritev(int fd, \
557			    const struct iovec *iovp, int iovcnt, \
558			    int pad, off_t offset); }
559291	COMPAT_16 MODULAR { int sys___sigaction14(int signum, \
560			    const struct sigaction *nsa, \
561			    struct sigaction *osa); }
562292	STD 		{ int sys___sigpending14(sigset_t *set); }
563293	STD 		{ int sys___sigprocmask14(int how, \
564			    const sigset_t *set, \
565			    sigset_t *oset); }
566294	STD 		{ int sys___sigsuspend14(const sigset_t *set); }
567295	COMPAT_16 MODULAR { int sys___sigreturn14(struct sigcontext *sigcntxp); }
568296	STD 		{ int sys___getcwd(char *bufp, size_t length); }
569297	STD 		{ int sys_fchroot(int fd); }
570298	COMPAT_30 MODULAR { int sys_fhopen(const struct compat_30_fhandle *fhp, int flags); }
571299	COMPAT_30 MODULAR { int sys_fhstat(const struct compat_30_fhandle *fhp, \
572			    struct stat13 *sb); }
573300	COMPAT_20 MODULAR { int sys_fhstatfs(const struct compat_30_fhandle *fhp, \
574			    struct statfs12 *buf); }
575#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
576301	STD 		{ int sys_____semctl13(int semid, int semnum, int cmd, \
577			    ... union __semun *arg); }
578#else
579301	EXCL		____semctl13
580#endif
581#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
582302	STD 		{ int sys___msgctl13(int msqid, int cmd, \
583			    struct msqid_ds *buf); }
584#else
585302	EXCL		__msgctl13
586#endif
587#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
588303	STD 		{ int sys___shmctl13(int shmid, int cmd, \
589			    struct shmid_ds *buf); }
590#else
591303	EXCL		__shmctl13
592#endif
593304	STD 	 RUMP	{ int sys_lchflags(const char *path, u_long flags); }
594305	STD 		{ int sys_issetugid(void); }
595306	STD 		{ int sys_utrace(const char *label, void *addr, \
596				size_t len); }
597307	STD 		{ int sys_getcontext(struct __ucontext *ucp); }
598308	STD 		{ int sys_setcontext(const struct __ucontext *ucp); }
599309	STD 		{ int sys__lwp_create(const struct __ucontext *ucp, \
600				u_long flags, lwpid_t *new_lwp); }
601310	STD 		{ int sys__lwp_exit(void); }
602311	STD 		{ lwpid_t sys__lwp_self(void); }
603312	STD 		{ int sys__lwp_wait(lwpid_t wait_for, \
604				lwpid_t *departed); }
605313	STD 		{ int sys__lwp_suspend(lwpid_t target); }
606314	STD 		{ int sys__lwp_continue(lwpid_t target); }
607315	STD 		{ int sys__lwp_wakeup(lwpid_t target); }
608316	STD 		{ void *sys__lwp_getprivate(void); }
609317	STD 		{ void sys__lwp_setprivate(void *ptr); }
610318	STD 		{ int sys__lwp_kill(lwpid_t target, int signo); }
611319	STD 		{ int sys__lwp_detach(lwpid_t target); }
612320	STD 		{ int sys__lwp_park(const struct timespec *ts, \
613				lwpid_t unpark, const void *hint, \
614				const void *unparkhint); }
615321	STD 		{ int sys__lwp_unpark(lwpid_t target, const void *hint); }
616322	STD 		{ ssize_t sys__lwp_unpark_all(const lwpid_t *targets, \
617				size_t ntargets, const void *hint); }
618323	STD 		{ int sys__lwp_setname(lwpid_t target, \
619				const char *name); }
620324	STD 		{ int sys__lwp_getname(lwpid_t target, \
621				char *name, size_t len); }
622325	STD 		{ int sys__lwp_ctl(int features, \
623				struct lwpctl **address); }
624; Syscalls 326-339 reserved for LWP syscalls.
625326	UNIMPL
626327	UNIMPL
627328	UNIMPL
628329	UNIMPL
629; SA system calls.
630330	STD 		{ int sys_sa_register(sa_upcall_t new, \
631				sa_upcall_t *old, int flags, \
632				ssize_t stackinfo_offset); }
633331	STD 		{ int sys_sa_stacks(int num, stack_t *stacks); }
634332	STD 		{ int sys_sa_enable(void); }
635333	STD 		{ int sys_sa_setconcurrency(int concurrency); }
636334	STD 		{ int sys_sa_yield(void); }
637335	STD 		{ int sys_sa_preempt(int sa_id); }
638336	OBSOL 		sys_sa_unblockyield
639;
640; Syscalls 337-339 are reserved for other scheduler activation syscalls.
641;
642337	UNIMPL
643338	UNIMPL
644339	UNIMPL
645340	STD 		{ int sys___sigaction_sigtramp(int signum, \
646			    const struct sigaction *nsa, \
647			    struct sigaction *osa, \
648			    const void *tramp, int vers); }
649341	STD 		{ int sys_pmc_get_info(int ctr, int op, void *args); }
650342	STD 		{ int sys_pmc_control(int ctr, int op, void *args); }
651343	STD 		{ int sys_rasctl(void *addr, size_t len, int op); }
652344	STD 		{ int sys_kqueue(void); }
653345	STD 		{ int sys_kevent(int fd, \
654			    const struct kevent *changelist, size_t nchanges, \
655			    struct kevent *eventlist, size_t nevents, \
656			    const struct timespec *timeout); }
657
658; Scheduling system calls.
659346	STD 		{ int sys__sched_setparam(pid_t pid, lwpid_t lid, \
660			    int policy, const struct sched_param *params); }
661347	STD 		{ int sys__sched_getparam(pid_t pid, lwpid_t lid, \
662			    int *policy, struct sched_param *params); }
663348	STD 		{ int sys__sched_setaffinity(pid_t pid, lwpid_t lid, \
664			    size_t size, const cpuset_t *cpuset); }
665349	STD 		{ int sys__sched_getaffinity(pid_t pid, lwpid_t lid, \
666			    size_t size, cpuset_t *cpuset); }
667350	STD 		{ int sys_sched_yield(void); }
668351	UNIMPL
669352	UNIMPL
670353	UNIMPL
671
672354	STD 		{ int sys_fsync_range(int fd, int flags, off_t start, \
673			    off_t length); }
674355	STD 		{ int sys_uuidgen(struct uuid *store, int count); }
675356	STD 		{ int sys_getvfsstat(struct statvfs *buf, \
676			    size_t bufsize, int flags); }
677357	STD 		{ int sys_statvfs1(const char *path, \
678			    struct statvfs *buf, int flags); }
679358	STD 		{ int sys_fstatvfs1(int fd, struct statvfs *buf, \
680			    int flags); }
681359	COMPAT_30 MODULAR { int sys_fhstatvfs1(const struct compat_30_fhandle *fhp, \
682			    struct statvfs *buf, int flags); }
683360	STD 		{ int sys_extattrctl(const char *path, int cmd, \
684			    const char *filename, int attrnamespace, \
685			    const char *attrname); }
686361	STD 		{ int sys_extattr_set_file(const char *path, \
687			    int attrnamespace, const char *attrname, \
688			    const void *data, size_t nbytes); }
689362	STD 		{ ssize_t sys_extattr_get_file(const char *path, \
690			    int attrnamespace, const char *attrname, \
691			    void *data, size_t nbytes); }
692363	STD 		{ int sys_extattr_delete_file(const char *path, \
693			    int attrnamespace, const char *attrname); }
694364	STD 		{ int sys_extattr_set_fd(int fd, \
695			    int attrnamespace, const char *attrname, \
696			    const void *data, size_t nbytes); }
697365	STD 		{ ssize_t sys_extattr_get_fd(int fd, \
698			    int attrnamespace, const char *attrname, \
699			    void *data, size_t nbytes); }
700366	STD 		{ int sys_extattr_delete_fd(int fd, \
701			    int attrnamespace, const char *attrname); }
702367	STD 		{ int sys_extattr_set_link(const char *path, \
703			    int attrnamespace, const char *attrname, \
704			    const void *data, size_t nbytes); }
705368	STD 		{ ssize_t sys_extattr_get_link(const char *path, \
706			    int attrnamespace, const char *attrname, \
707			    void *data, size_t nbytes); }
708369	STD 		{ int sys_extattr_delete_link(const char *path, \
709			    int attrnamespace, const char *attrname); }
710370	STD 		{ ssize_t sys_extattr_list_fd(int fd, \
711			    int attrnamespace, void *data, size_t nbytes); }
712371	STD 		{ ssize_t sys_extattr_list_file(const char *path, \
713			    int attrnamespace, void *data, size_t nbytes); }
714372	STD 		{ ssize_t sys_extattr_list_link(const char *path, \
715			    int attrnamespace, void *data, size_t nbytes); }
716373	STD 		{ int sys_pselect(int nd, fd_set *in, fd_set *ou, \
717			    fd_set *ex, const struct timespec *ts, \
718			    const sigset_t *mask); }
719374	STD 		{ int sys_pollts(struct pollfd *fds, u_int nfds, \
720			    const struct timespec *ts, const sigset_t *mask); }
721375	STD 		{ int sys_setxattr(const char *path, \
722			    const char *name, void *value, size_t size, \
723			    int flags); }
724376	STD 		{ int sys_lsetxattr(const char *path, \
725			    const char *name, void *value, size_t size, \
726			    int flags); }
727377	STD 		{ int sys_fsetxattr(int fd, \
728			    const char *name, void *value, size_t size, \
729			    int flags); }
730378	STD 		{ int sys_getxattr(const char *path, \
731			    const char *name, void *value, size_t size); }
732379	STD 		{ int sys_lgetxattr(const char *path, \
733			    const char *name, void *value, size_t size); }
734380	STD 		{ int sys_fgetxattr(int fd, \
735			    const char *name, void *value, size_t size); }
736381	STD 		{ int sys_listxattr(const char *path, \
737			    char *list, size_t size); }
738382	STD 		{ int sys_llistxattr(const char *path, \
739			    char *list, size_t size); }
740383	STD 		{ int sys_flistxattr(int fd, \
741			    char *list, size_t size); }
742384	STD 		{ int sys_removexattr(const char *path, \
743			    const char *name); }
744385	STD 		{ int sys_lremovexattr(const char *path, \
745			    const char *name); }
746386	STD 		{ int sys_fremovexattr(int fd, \
747			    const char *name); }
748387	STD 	 RUMP	{ int sys___stat30(const char *path, struct stat *ub); }
749388	STD 		{ int sys___fstat30(int fd, struct stat *sb); }
750389	STD 	 RUMP	{ int sys___lstat30(const char *path, struct stat *ub); }
751390	STD 		{ int sys___getdents30(int fd, char *buf, size_t count); }
752391	IGNORED		old posix_fadvise
753392	COMPAT_30 MODULAR { int sys___fhstat30(const struct compat_30_fhandle \
754			    *fhp, struct stat *sb); }
755393	STD 		{ int sys___ntp_gettime30(struct ntptimeval *ntvp); }
756394	STD	 RUMP	{ int sys___socket30(int domain, int type, int protocol); }
757395	STD 		{ int sys___getfh30(const char *fname, void *fhp, \
758			    size_t *fh_size); }
759396	STD 		{ int sys___fhopen40(const void *fhp, size_t fh_size,\
760			    int flags); }
761397	STD 		{ int sys___fhstatvfs140(const void *fhp, \
762			    size_t fh_size, struct statvfs *buf, int flags); }
763398	STD 		{ int sys___fhstat40(const void *fhp, \
764			    size_t fh_size, struct stat *sb); }
765
766; Asynchronous I/O system calls
767399	STD MODULAR	{ int sys_aio_cancel(int fildes, struct aiocb *aiocbp); }
768400	STD MODULAR	{ int sys_aio_error(const struct aiocb *aiocbp); }
769401	STD MODULAR	{ int sys_aio_fsync(int op, struct aiocb *aiocbp); }
770402	STD MODULAR	{ int sys_aio_read(struct aiocb *aiocbp); }
771403	STD MODULAR	{ int sys_aio_return(struct aiocb *aiocbp); }
772404	STD MODULAR	{ int sys_aio_suspend(const struct aiocb *const *list, \
773			    int nent, const struct timespec *timeout); }
774405	STD MODULAR	{ int sys_aio_write(struct aiocb *aiocbp); }
775406	STD MODULAR	{ int sys_lio_listio(int mode, struct aiocb *const *list, \
776			    int nent, struct sigevent *sig); }
777
778407	UNIMPL
779408	UNIMPL
780409	UNIMPL
781
782410	STD 		{ int sys___mount50(const char *type, \
783			    const char *path, int flags, void *data, \
784			    size_t data_len); }
785411	STD 		{ void *sys_mremap(void *old_address, size_t old_size, \
786			    void *new_address, size_t new_size, int flags); }
787
788; Processor-sets system calls
789412	STD 		{ int sys_pset_create(psetid_t *psid); }
790413	STD 		{ int sys_pset_destroy(psetid_t psid); }
791414	STD 		{ int sys_pset_assign(psetid_t psid, cpuid_t cpuid, \
792			    psetid_t *opsid); }
793415	STD 		{ int sys__pset_bind(idtype_t idtype, id_t first_id, \
794			    id_t second_id, psetid_t psid, psetid_t *opsid); }
795416	STD 		{ int sys___posix_fadvise50(int fd, int pad, \
796			    off_t offset, off_t len, int advice); }
797