xref: /netbsd-src/sys/kern/syscalls.master (revision 466a16a118933bd295a8a104f095714fadf9cf68)
1	$NetBSD: syscalls.master,v 1.218 2008/11/26 15:01: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; The compat options are defined in the syscalls.conf file, and the
30; compat option name is prefixed to the syscall name.  Other than
31; that, they're like NODEF (for 'compat' options), or STD (for
32; 'libcompat' options).
33;
34; The type-dependent arguments are as follows:
35; For STD, NODEF, NOARGS, and compat syscalls:
36;	{ pseudo-proto } [alias]
37; For other syscalls:
38;	[comment]
39;
40; #ifdef's, etc. may be included, and are copied to the output files.
41; #include's are copied to the syscall names and switch definition files only.
42
43#include "opt_ntp.h"
44#include "opt_sysv.h"
45
46#include "fs_lfs.h"
47
48#include <sys/param.h>
49#include <sys/systm.h>
50#include <sys/signal.h>
51#include <sys/mount.h>
52#include <sys/sched.h>
53#include <sys/syscallargs.h>
54
55%%
56
57; Reserved/unimplemented system calls in the range 0-150 inclusive
58; are reserved for use in future Berkeley releases.
59; Additional system calls implemented in vendor and other
60; redistributions should be placed in the reserved range at the end
61; of the current calls.
62
630	INDIR		{ int sys_syscall(int code, \
64			    ... register_t args[SYS_MAXSYSARGS]); }
651	STD 		{ void sys_exit(int rval); }
662	STD 		{ int sys_fork(void); }
673	STD 	 RUMP	{ ssize_t sys_read(int fd, void *buf, size_t nbyte); }
684	STD 	 RUMP	{ ssize_t sys_write(int fd, const void *buf, \
69			    size_t nbyte); }
705	STD 	 RUMP	{ int sys_open(const char *path, \
71			    int flags, ... mode_t mode); }
726	STD 	 RUMP	{ int sys_close(int fd); }
737	STD 		{ int sys_wait4(int pid, int *status, int options, \
74			    struct rusage *rusage); }
758	COMPAT_43 MODULAR { int sys_creat(const char *path, mode_t mode); } ocreat
769	STD 	 RUMP	{ int sys_link(const char *path, const char *link); }
7710	STD 	 RUMP	{ int sys_unlink(const char *path); }
7811	OBSOL		execv
7912	STD 	 RUMP	{ int sys_chdir(const char *path); }
8013	STD 	 RUMP	{ int sys_fchdir(int fd); }
8114	STD 	 RUMP	{ int sys_mknod(const char *path, mode_t mode, \
82			    dev_t dev); }
8315	STD 	 RUMP	{ int sys_chmod(const char *path, mode_t mode); }
8416	STD 	 RUMP	{ int sys_chown(const char *path, uid_t uid, \
85			    gid_t gid); }
8617	STD 		{ int sys_obreak(char *nsize); } break
8718	COMPAT_20 MODULAR { int sys_getfsstat(struct statfs12 *buf, \
88			    long bufsize, int flags); }
8919	COMPAT_43 MODULAR { long sys_lseek(int fd, long offset, int whence); } \
90			    olseek
9120	STD 		{ pid_t sys_getpid_with_ppid(void); } getpid
9221	COMPAT_40 MODULAR { int sys_mount(const char *type, const char *path, \
93			    int flags, void *data); }
9422	STD 	 RUMP	{ int sys_unmount(const char *path, int flags); }
9523	STD 		{ int sys_setuid(uid_t uid); }
9624	STD 		{ uid_t sys_getuid_with_euid(void); } getuid
9725	STD 		{ uid_t sys_geteuid(void); }
9826	STD 		{ int sys_ptrace(int req, pid_t pid, void *addr, \
99			    int data); }
10027	STD 		{ ssize_t sys_recvmsg(int s, struct msghdr *msg, \
101			    int flags); }
10228	STD 		{ ssize_t sys_sendmsg(int s, \
103			    const struct msghdr *msg, int flags); }
10429	STD 		{ ssize_t sys_recvfrom(int s, void *buf, size_t len, \
105			    int flags, struct sockaddr *from, \
106			    unsigned int *fromlenaddr); }
10730	STD	RUMP	{ int sys_accept(int s, struct sockaddr *name, \
108			    unsigned int *anamelen); }
10931	STD		{ int sys_getpeername(int fdes, struct sockaddr *asa, \
110			    unsigned int *alen); }
11132	STD		{ int sys_getsockname(int fdes, struct sockaddr *asa, \
112			    unsigned int *alen); }
11333	STD 		{ int sys_access(const char *path, int flags); }
11434	STD 	 RUMP	{ int sys_chflags(const char *path, u_long flags); }
11535	STD 		{ int sys_fchflags(int fd, u_long flags); }
11636	STD 	 RUMP	{ void sys_sync(void); }
11737	STD 		{ int sys_kill(int pid, int signum); }
11838	COMPAT_43 MODULAR { int sys_stat(const char *path, struct stat43 *ub); } \
119			    stat43
12039	STD 		{ pid_t sys_getppid(void); }
12140	COMPAT_43 MODULAR { int sys_lstat(const char *path, \
122			    struct stat43 *ub); } lstat43
12341	STD 		{ int sys_dup(int fd); }
12442	STD 		{ int sys_pipe(void); }
12543	STD 		{ gid_t sys_getegid(void); }
12644	STD 		{ int sys_profil(char *samples, size_t size, \
127			    u_long offset, u_int scale); }
12845	STD 		{ int sys_ktrace(const char *fname, int ops, \
129			    int facs, int pid); }
13046	COMPAT_13 MODULAR { int sys_sigaction(int signum, \
131			    const struct sigaction13 *nsa, \
132			    struct sigaction13 *osa); } sigaction13
13347	STD 		{ gid_t sys_getgid_with_egid(void); } getgid
13448	COMPAT_13 MODULAR { int sys_sigprocmask(int how, \
135			    int mask); } sigprocmask13
13649	STD 		{ int sys___getlogin(char *namebuf, size_t namelen); }
13750	STD 	 	{ int sys___setlogin(const char *namebuf); }
13851	STD 		{ int sys_acct(const char *path); }
13952	COMPAT_13 MODULAR { int sys_sigpending(void); } sigpending13
14053	COMPAT_13 MODULAR { int sys_sigaltstack( \
141			    const struct sigaltstack13 *nss, \
142			    struct sigaltstack13 *oss); } sigaltstack13
14354	STD	RUMP	{ int sys_ioctl(int fd, \
144			    u_long com, ... void *data); }
14555	COMPAT_12 MODULAR { int sys_reboot(int opt); } oreboot
14656	STD 		{ int sys_revoke(const char *path); }
14757	STD 	 RUMP	{ int sys_symlink(const char *path, \
148			    const char *link); }
14958	STD 	 RUMP	{ ssize_t sys_readlink(const char *path, char *buf, \
150			    size_t count); }
15159	STD 		{ int sys_execve(const char *path, \
152			    char * const *argp, char * const *envp); }
15360	STD 		{ mode_t sys_umask(mode_t newmask); }
15461	STD 		{ int sys_chroot(const char *path); }
15562	COMPAT_43 MODULAR { int sys_fstat(int fd, struct stat43 *sb); } fstat43
15663	COMPAT_43 MODULAR { int sys_getkerninfo(int op, char *where, int *size, \
157			    int arg); } ogetkerninfo
15864	COMPAT_43 MODULAR { int sys_getpagesize(void); } ogetpagesize
15965	COMPAT_12 MODULAR { int sys_msync(void *addr, size_t len); }
160; XXX COMPAT_??? for 4.4BSD-compatible vfork(2)?
16166	STD 		{ int sys_vfork(void); }
16267	OBSOL		vread
16368	OBSOL		vwrite
16469	STD 		{ int sys_sbrk(intptr_t incr); }
16570	STD 		{ int sys_sstk(int incr); }
16671	COMPAT_43 MODULAR { int sys_mmap(void *addr, size_t len, int prot, \
167			    int flags, int fd, long pos); } ommap
16872	STD 		{ int sys_ovadvise(int anom); } vadvise
16973	STD 		{ int sys_munmap(void *addr, size_t len); }
17074	STD 		{ int sys_mprotect(void *addr, size_t len, \
171			    int prot); }
17275	STD 		{ int sys_madvise(void *addr, size_t len, \
173			    int behav); }
17476	OBSOL		vhangup
17577	OBSOL		vlimit
17678	STD 		{ int sys_mincore(void *addr, size_t len, \
177			    char *vec); }
17879	STD 		{ int sys_getgroups(int gidsetsize, \
179			    gid_t *gidset); }
18080	STD 		{ int sys_setgroups(int gidsetsize, \
181			    const gid_t *gidset); }
18281	STD 	 	{ int sys_getpgrp(void); }
18382	STD 		{ int sys_setpgid(int pid, int pgid); }
18483	STD 		{ int sys_setitimer(int which, \
185			    const struct itimerval *itv, \
186			    struct itimerval *oitv); }
18784	COMPAT_43 MODULAR { int sys_wait(void); } owait
18885	COMPAT_12 MODULAR { int sys_swapon(const char *name); } oswapon
18986	STD 		{ int sys_getitimer(int which, \
190			    struct itimerval *itv); }
19187	COMPAT_43 MODULAR { int sys_gethostname(char *hostname, u_int len); } \
192			    ogethostname
19388	COMPAT_43 MODULAR { int sys_sethostname(char *hostname, u_int len); } \
194			    osethostname
19589	COMPAT_43 MODULAR { int sys_getdtablesize(void); } ogetdtablesize
19690	STD 		{ int sys_dup2(int from, int to); }
19791	UNIMPL		getdopt
19892	STD 		{ int sys_fcntl(int fd, int cmd, ... void *arg); }
19993	STD 		{ int sys_select(int nd, fd_set *in, fd_set *ou, \
200			    fd_set *ex, struct timeval *tv); }
20194	UNIMPL		setdopt
20295	STD	RUMP 	{ int sys_fsync(int fd); }
20396	STD 		{ int sys_setpriority(int which, id_t who, int prio); }
20497	COMPAT_30 MODULAR { int sys_socket(int domain, int type, int protocol); }
20598	STD	RUMP	{ int sys_connect(int s, const struct sockaddr *name, \
206			    unsigned int namelen); }
20799	COMPAT_43 MODULAR { int sys_accept(int s, void *name, \
208			    int *anamelen); } oaccept
209100	STD 		{ int sys_getpriority(int which, id_t who); }
210101	COMPAT_43 MODULAR { int sys_send(int s, void *buf, int len, \
211			    int flags); } osend
212102	COMPAT_43 MODULAR { int sys_recv(int s, void *buf, int len, \
213			    int flags); } orecv
214103	COMPAT_13 MODULAR { int sys_sigreturn(struct sigcontext13 *sigcntxp); } \
215			    sigreturn13
216104	STD	RUMP	{ int sys_bind(int s, const struct sockaddr *name, \
217			    unsigned int namelen); }
218105	STD	RUMP	{ int sys_setsockopt(int s, int level, int name, \
219			    const void *val, unsigned int valsize); }
220106	STD	RUMP	{ int sys_listen(int s, int backlog); }
221107	OBSOL		vtimes
222108	COMPAT_43 MODULAR { int sys_sigvec(int signum, struct sigvec *nsv, \
223			    struct sigvec *osv); } osigvec
224109	COMPAT_43 MODULAR { int sys_sigblock(int mask); } osigblock
225110	COMPAT_43 MODULAR { int sys_sigsetmask(int mask); } osigsetmask
226111	COMPAT_13 MODULAR { int sys_sigsuspend(int mask); } sigsuspend13
227112	COMPAT_43 MODULAR { int sys_sigstack(struct sigstack *nss, \
228			    struct sigstack *oss); } osigstack
229113	COMPAT_43 MODULAR { int sys_recvmsg(int s, struct omsghdr *msg, \
230			    int flags); } orecvmsg
231114	COMPAT_43 MODULAR { int sys_sendmsg(int s, void *msg, int flags); } \
232			    osendmsg
233115	OBSOL		vtrace
234116	STD 		{ int sys_gettimeofday(struct timeval *tp, \
235			    void *tzp); }
236117	STD 		{ int sys_getrusage(int who, struct rusage *rusage); }
237118	STD	RUMP	{ int sys_getsockopt(int s, int level, int name, \
238			    void *val, unsigned int *avalsize); }
239119	OBSOL		resuba
240120	STD 		{ ssize_t sys_readv(int fd, \
241			    const struct iovec *iovp, int iovcnt); }
242121	STD 		{ ssize_t sys_writev(int fd, \
243			    const struct iovec *iovp, int iovcnt); }
244122	STD 		{ int sys_settimeofday(const struct timeval *tv, \
245			    const void *tzp); }
246123	STD 		{ int sys_fchown(int fd, uid_t uid, gid_t gid); }
247124	STD 		{ int sys_fchmod(int fd, mode_t mode); }
248125	COMPAT_43 MODULAR { int sys_recvfrom(int s, void *buf, size_t len, \
249			    int flags, void *from, int *fromlenaddr); } \
250			    orecvfrom
251126	STD 		{ int sys_setreuid(uid_t ruid, uid_t euid); }
252127	STD 		{ int sys_setregid(gid_t rgid, gid_t egid); }
253128	STD 	 RUMP	{ int sys_rename(const char *from, const char *to); }
254129	COMPAT_43 MODULAR { int sys_truncate(const char *path, long length); } \
255			    otruncate
256130	COMPAT_43 MODULAR { int sys_ftruncate(int fd, long length); } oftruncate
257131	STD 		{ int sys_flock(int fd, int how); }
258132	STD 	 RUMP	{ int sys_mkfifo(const char *path, mode_t mode); }
259133	STD 		{ ssize_t sys_sendto(int s, const void *buf, \
260			    size_t len, int flags, const struct sockaddr *to, \
261			    unsigned int tolen); }
262134	STD		{ int sys_shutdown(int s, int how); }
263135	STD		{ int sys_socketpair(int domain, int type, \
264			    int protocol, int *rsv); }
265136	STD 	 RUMP	{ int sys_mkdir(const char *path, mode_t mode); }
266137	STD 	 RUMP	{ int sys_rmdir(const char *path); }
267138	STD 	 RUMP	{ int sys_utimes(const char *path, \
268			    const struct timeval *tptr); }
269139	OBSOL		4.2 sigreturn
270140	STD 		{ int sys_adjtime(const struct timeval *delta, \
271			    struct timeval *olddelta); }
272141	COMPAT_43 MODULAR { int sys_getpeername(int fdes, void *asa, \
273			    int *alen); } ogetpeername
274142	COMPAT_43 MODULAR { int32_t sys_gethostid(void); } ogethostid
275143	COMPAT_43 MODULAR { int sys_sethostid(int32_t hostid); } osethostid
276144	COMPAT_43 MODULAR { int sys_getrlimit(int which, \
277			    struct orlimit *rlp); } ogetrlimit
278145	COMPAT_43 MODULAR { int sys_setrlimit(int which, \
279			    const struct orlimit *rlp); } osetrlimit
280146	COMPAT_43 MODULAR { int sys_killpg(int pgid, int signum); } okillpg
281147	STD 	 	{ int sys_setsid(void); }
282148	STD 		{ int sys_quotactl(const char *path, int cmd, \
283			    int uid, void *arg); }
284149	COMPAT_43 MODULAR { int sys_quota(void); } oquota
285150	COMPAT_43 MODULAR { int sys_getsockname(int fdec, void *asa, \
286			    int *alen); } ogetsockname
287
288; Syscalls 151-180 inclusive are reserved for vendor-specific
289; system calls.  (This includes various calls added for compatibity
290; with other Unix variants.)
291; Some of these calls are now supported by BSD...
292151	UNIMPL
293152	UNIMPL
294153	UNIMPL
295154	UNIMPL
296155	STD MODULAR RUMP  { int sys_nfssvc(int flag, void *argp); }
297156	COMPAT_43 MODULAR { int sys_getdirentries(int fd, char *buf, \
298			    u_int count, long *basep); } ogetdirentries
299157	COMPAT_20 MODULAR { int sys_statfs(const char *path, \
300			    struct statfs12 *buf); }
301158	COMPAT_20 MODULAR { int sys_fstatfs(int fd, struct statfs12 *buf); }
302159	UNIMPL
303160	UNIMPL
304161	COMPAT_30 MODULAR { int sys_getfh(const char *fname, \
305			    struct compat_30_fhandle *fhp); }
306162	COMPAT_09 MODULAR { int sys_getdomainname(char *domainname, int len); } \
307			    ogetdomainname
308163	COMPAT_09 MODULAR { int sys_setdomainname(char *domainname, int len); } \
309			    osetdomainname
310164	COMPAT_09 MODULAR { int sys_uname(struct outsname *name); } ouname
311165	STD 		{ int sys_sysarch(int op, void *parms); }
312166	UNIMPL
313167	UNIMPL
314168	UNIMPL
315; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
316#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
317169	COMPAT_10 MODULAR { int sys_semsys(int which, int a2, int a3, int a4, \
318			    int a5); } osemsys
319#else
320169	EXCL		1.0 semsys
321#endif
322; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
323#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64)
324170	COMPAT_10 MODULAR { int sys_msgsys(int which, int a2, int a3, int a4, \
325			    int a5, int a6); } omsgsys
326#else
327170	EXCL		1.0 msgsys
328#endif
329; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
330#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64)
331171	COMPAT_10 MODULAR { int sys_shmsys(int which, int a2, int a3, int a4); } \
332			    oshmsys
333#else
334171	EXCL		1.0 shmsys
335#endif
336172	UNIMPL
337173	STD 	 RUMP	{ ssize_t sys_pread(int fd, void *buf, \
338			    size_t nbyte, int pad, off_t offset); }
339174	STD 	 RUMP	{ ssize_t sys_pwrite(int fd, const void *buf, \
340			    size_t nbyte, int pad, off_t offset); }
341; For some reason, ntp_gettime doesn't want to raise SIGSYS when it's excluded.
342175	STD		{ int sys_ntp_gettime(struct ntptimeval30 *ntvp); }
343#if defined(NTP) || !defined(_KERNEL_OPT)
344176	STD 		{ int sys_ntp_adjtime(struct timex *tp); }
345#else
346176	EXCL		ntp_adjtime
347#endif
348177	UNIMPL
349178	UNIMPL
350179	UNIMPL
351180	UNIMPL
352
353; Syscalls 180-199 are used by/reserved for BSD
354181	STD 		{ int sys_setgid(gid_t gid); }
355182	STD 		{ int sys_setegid(gid_t egid); }
356183	STD 		{ int sys_seteuid(uid_t euid); }
357#if defined(LFS) || !defined(_KERNEL)
358184	STD 		{ int sys_lfs_bmapv(fsid_t *fsidp, \
359			    struct block_info *blkiov, int blkcnt); }
360185	STD 		{ int sys_lfs_markv(fsid_t *fsidp, \
361			    struct block_info *blkiov, int blkcnt); }
362186	STD 		{ int sys_lfs_segclean(fsid_t *fsidp, u_long segment); }
363187	STD 		{ int sys_lfs_segwait(fsid_t *fsidp, \
364			    struct timeval *tv); }
365#else
366184	EXCL		lfs_bmapv
367185	EXCL		lfs_markv
368186	EXCL		lfs_segclean
369187	EXCL		lfs_segwait
370#endif
371188	COMPAT_12 MODULAR { int sys_stat(const char *path, struct stat12 *ub); } \
372			    stat12
373189	COMPAT_12 MODULAR { int sys_fstat(int fd, struct stat12 *sb); } fstat12
374190	COMPAT_12 MODULAR { int sys_lstat(const char *path, \
375			    struct stat12 *ub); } lstat12
376191	STD 		{ long sys_pathconf(const char *path, int name); }
377192	STD 		{ long sys_fpathconf(int fd, int name); }
378193	UNIMPL
379194	STD 		{ int sys_getrlimit(int which, \
380			    struct rlimit *rlp); }
381195	STD 		{ int sys_setrlimit(int which, \
382			    const struct rlimit *rlp); }
383196	COMPAT_12 MODULAR { int sys_getdirentries(int fd, char *buf, \
384			    u_int count, long *basep); }
385197	STD 		{ void *sys_mmap(void *addr, size_t len, int prot, \
386			    int flags, int fd, long pad, off_t pos); }
387198	INDIR		{ quad_t sys___syscall(quad_t code, \
388			    ... register_t args[SYS_MAXSYSARGS]); }
389199	STD 		{ off_t sys_lseek(int fd, int pad, off_t offset, \
390			    int whence); }
391200	STD 	 RUMP	{ int sys_truncate(const char *path, int pad, \
392			    off_t length); }
393201	STD 		{ int sys_ftruncate(int fd, int pad, off_t length); }
394202	STD	 RUMP 	{ int sys___sysctl(const int *name, u_int namelen, \
395			    void *old, size_t *oldlenp, const void *new, \
396			    size_t newlen); }
397203	STD 		{ int sys_mlock(const void *addr, size_t len); }
398204	STD 		{ int sys_munlock(const void *addr, size_t len); }
399205	STD 		{ int sys_undelete(const char *path); }
400206	STD 		{ int sys_futimes(int fd, \
401			    const struct timeval *tptr); }
402207	STD 		{ pid_t sys_getpgid(pid_t pid); }
403208	STD 		{ int sys_reboot(int opt, char *bootstr); }
404209	STD 		{ int sys_poll(struct pollfd *fds, u_int nfds, \
405			    int timeout); }
406;
407; Syscalls 210-219 are reserved for dynamically loaded syscalls
408;
409210	UNIMPL
410211	UNIMPL
411212	UNIMPL
412213	UNIMPL
413214	UNIMPL
414215	UNIMPL
415216	UNIMPL
416217	UNIMPL
417218	UNIMPL
418219	UNIMPL
419; System calls 220-300 are reserved for use by NetBSD
420#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
421220	COMPAT_14 MODULAR { int sys___semctl(int semid, int semnum, int cmd, \
422			    union __semun *arg); }
423221	STD 		{ int sys_semget(key_t key, int nsems, int semflg); }
424222	STD 		{ int sys_semop(int semid, struct sembuf *sops, \
425			    size_t nsops); }
426223	STD 		{ int sys_semconfig(int flag); }
427#else
428220	EXCL		compat_14_semctl
429221	EXCL		semget
430222	EXCL		semop
431223	EXCL		semconfig
432#endif
433#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
434224	COMPAT_14 MODULAR { int sys_msgctl(int msqid, int cmd, \
435			    struct msqid_ds14 *buf); }
436225	STD 		{ int sys_msgget(key_t key, int msgflg); }
437226	STD 		{ int sys_msgsnd(int msqid, const void *msgp, \
438			    size_t msgsz, int msgflg); }
439227	STD 		{ ssize_t sys_msgrcv(int msqid, void *msgp, \
440			    size_t msgsz, long msgtyp, int msgflg); }
441#else
442224	EXCL 		compat_14_msgctl
443225	EXCL 		msgget
444226	EXCL 		msgsnd
445227	EXCL 		msgrcv
446#endif
447#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
448228	STD 		{ void *sys_shmat(int shmid, const void *shmaddr, \
449			    int shmflg); }
450229	COMPAT_14 MODULAR { int sys_shmctl(int shmid, int cmd, \
451			    struct shmid_ds14 *buf); }
452230	STD 		{ int sys_shmdt(const void *shmaddr); }
453231	STD 		{ int sys_shmget(key_t key, size_t size, int shmflg); }
454#else
455228	EXCL		shmat
456229	EXCL		compat_14_shmctl
457230	EXCL		shmdt
458231	EXCL		shmget
459#endif
460232	STD 		{ int sys_clock_gettime(clockid_t clock_id, \
461			    struct timespec *tp); }
462233	STD 		{ int sys_clock_settime(clockid_t clock_id, \
463			    const struct timespec *tp); }
464234	STD 		{ int sys_clock_getres(clockid_t clock_id, \
465			    struct timespec *tp); }
466235	STD 		{ int sys_timer_create(clockid_t clock_id, \
467			    struct sigevent *evp, timer_t *timerid); }
468236	STD 		{ int sys_timer_delete(timer_t timerid); }
469237	STD 		{ int sys_timer_settime(timer_t timerid, int flags, \
470			    const struct itimerspec *value, \
471			    struct itimerspec *ovalue); }
472238	STD 		{ int sys_timer_gettime(timer_t timerid, struct \
473			    itimerspec *value); }
474239	STD 		{ int sys_timer_getoverrun(timer_t timerid); }
475;
476; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls
477;
478240	STD 		{ int sys_nanosleep(const struct timespec *rqtp, \
479			    struct timespec *rmtp); }
480241	STD 		{ int sys_fdatasync(int fd); }
481242	STD 		{ int sys_mlockall(int flags); }
482243	STD 		{ int sys_munlockall(void); }
483244	STD 		{ int sys___sigtimedwait(const sigset_t *set, \
484			    siginfo_t *info, \
485			    struct timespec *timeout); }
486245	UNIMPL		sys_sigqueue
487246	STD 	 	{ int sys_modctl(int cmd, void *arg); }
488247	STD MODULAR 	{ int sys__ksem_init(unsigned int value, intptr_t *idp); }
489248	STD MODULAR 	{ int sys__ksem_open(const char *name, int oflag, \
490			    mode_t mode, unsigned int value, intptr_t *idp); }
491249	STD MODULAR 	{ int sys__ksem_unlink(const char *name); }
492250	STD MODULAR 	{ int sys__ksem_close(intptr_t id); }
493251	STD MODULAR 	{ int sys__ksem_post(intptr_t id); }
494252	STD MODULAR 	{ int sys__ksem_wait(intptr_t id); }
495253	STD MODULAR 	{ int sys__ksem_trywait(intptr_t id); }
496254	STD MODULAR 	{ int sys__ksem_getvalue(intptr_t id, \
497			    unsigned int *value); }
498255	STD MODULAR 	{ int sys__ksem_destroy(intptr_t id); }
499256	UNIMPL		sys__ksem_timedwait
500257	STD 		{ mqd_t sys_mq_open(const char * name, int oflag, \
501			    mode_t mode, struct mq_attr *attr); }
502258	STD 		{ int sys_mq_close(mqd_t mqdes); }
503259	STD 		{ int sys_mq_unlink(const char *name); }
504260	STD 		{ int sys_mq_getattr(mqd_t mqdes, \
505			    struct mq_attr *mqstat); }
506261	STD 		{ int sys_mq_setattr(mqd_t mqdes, \
507			    const struct mq_attr *mqstat, \
508			    struct mq_attr *omqstat); }
509262	STD 		{ int sys_mq_notify(mqd_t mqdes, \
510			    const struct sigevent *notification); }
511263	STD 		{ int sys_mq_send(mqd_t mqdes, const char *msg_ptr, \
512			    size_t msg_len, unsigned msg_prio); }
513264	STD 		{ ssize_t sys_mq_receive(mqd_t mqdes, char *msg_ptr, \
514			    size_t msg_len, unsigned *msg_prio); }
515265	STD 		{ int sys_mq_timedsend(mqd_t mqdes, \
516			    const char *msg_ptr, size_t msg_len, \
517			    unsigned msg_prio, \
518			    const struct timespec *abs_timeout); }
519266	STD 		{ ssize_t sys_mq_timedreceive(mqd_t mqdes, \
520			    char *msg_ptr, size_t msg_len, unsigned *msg_prio, \
521			    const struct timespec *abs_timeout); }
522267	UNIMPL
523268	UNIMPL
524269	UNIMPL
525270	STD 		{ int sys___posix_rename(const char *from, \
526			    const char *to); }
527271	STD 		{ int sys_swapctl(int cmd, void *arg, int misc); }
528272	COMPAT_30 MODULAR { int sys_getdents(int fd, char *buf, size_t count); }
529273	STD 		{ int sys_minherit(void *addr, size_t len, \
530			    int inherit); }
531274	STD 	 RUMP	{ int sys_lchmod(const char *path, mode_t mode); }
532275	STD 	 RUMP	{ int sys_lchown(const char *path, uid_t uid, \
533			    gid_t gid); }
534276	STD 	 RUMP	{ int sys_lutimes(const char *path, \
535			    const struct timeval *tptr); }
536277	STD 		{ int sys___msync13(void *addr, size_t len, int flags); }
537278	COMPAT_30 MODULAR { int sys___stat13(const char *path, struct stat13 *ub); }
538279	COMPAT_30 MODULAR { int sys___fstat13(int fd, struct stat13 *sb); }
539280	COMPAT_30 MODULAR { int sys___lstat13(const char *path, struct stat13 *ub); }
540281	STD 		{ int sys___sigaltstack14( \
541			    const struct sigaltstack *nss, \
542			    struct sigaltstack *oss); }
543282	STD 		{ int sys___vfork14(void); }
544283	STD 		{ int sys___posix_chown(const char *path, uid_t uid, \
545			    gid_t gid); }
546284	STD 		{ int sys___posix_fchown(int fd, uid_t uid, \
547			    gid_t gid); }
548285	STD 		{ int sys___posix_lchown(const char *path, uid_t uid, \
549			    gid_t gid); }
550286	STD 		{ pid_t sys_getsid(pid_t pid); }
551287	STD 		{ pid_t sys___clone(int flags, void *stack); }
552288	STD 		{ int sys_fktrace(int fd, int ops, \
553			    int facs, int pid); }
554289	STD 		{ ssize_t sys_preadv(int fd, \
555			    const struct iovec *iovp, int iovcnt, \
556			    int pad, off_t offset); }
557290	STD 		{ ssize_t sys_pwritev(int fd, \
558			    const struct iovec *iovp, int iovcnt, \
559			    int pad, off_t offset); }
560291	COMPAT_16 MODULAR { int sys___sigaction14(int signum, \
561			    const struct sigaction *nsa, \
562			    struct sigaction *osa); }
563292	STD 		{ int sys___sigpending14(sigset_t *set); }
564293	STD 		{ int sys___sigprocmask14(int how, \
565			    const sigset_t *set, \
566			    sigset_t *oset); }
567294	STD 		{ int sys___sigsuspend14(const sigset_t *set); }
568295	COMPAT_16 MODULAR { int sys___sigreturn14(struct sigcontext *sigcntxp); }
569296	STD 		{ int sys___getcwd(char *bufp, size_t length); }
570297	STD 		{ int sys_fchroot(int fd); }
571298	COMPAT_30 MODULAR { int sys_fhopen(const struct compat_30_fhandle *fhp, int flags); }
572299	COMPAT_30 MODULAR { int sys_fhstat(const struct compat_30_fhandle *fhp, \
573			    struct stat13 *sb); }
574300	COMPAT_20 MODULAR { int sys_fhstatfs(const struct compat_30_fhandle *fhp, \
575			    struct statfs12 *buf); }
576#if defined(SYSVSEM) || !defined(_KERNEL_OPT)
577301	STD 		{ int sys_____semctl13(int semid, int semnum, int cmd, \
578			    ... union __semun *arg); }
579#else
580301	EXCL		____semctl13
581#endif
582#if defined(SYSVMSG) || !defined(_KERNEL_OPT)
583302	STD 		{ int sys___msgctl13(int msqid, int cmd, \
584			    struct msqid_ds *buf); }
585#else
586302	EXCL		__msgctl13
587#endif
588#if defined(SYSVSHM) || !defined(_KERNEL_OPT)
589303	STD 		{ int sys___shmctl13(int shmid, int cmd, \
590			    struct shmid_ds *buf); }
591#else
592303	EXCL		__shmctl13
593#endif
594304	STD 	 RUMP	{ int sys_lchflags(const char *path, u_long flags); }
595305	STD 		{ int sys_issetugid(void); }
596306	STD 		{ int sys_utrace(const char *label, void *addr, \
597				size_t len); }
598307	STD 		{ int sys_getcontext(struct __ucontext *ucp); }
599308	STD 		{ int sys_setcontext(const struct __ucontext *ucp); }
600309	STD 		{ int sys__lwp_create(const struct __ucontext *ucp, \
601				u_long flags, lwpid_t *new_lwp); }
602310	STD 		{ int sys__lwp_exit(void); }
603311	STD 		{ lwpid_t sys__lwp_self(void); }
604312	STD 		{ int sys__lwp_wait(lwpid_t wait_for, \
605				lwpid_t *departed); }
606313	STD 		{ int sys__lwp_suspend(lwpid_t target); }
607314	STD 		{ int sys__lwp_continue(lwpid_t target); }
608315	STD 		{ int sys__lwp_wakeup(lwpid_t target); }
609316	STD 		{ void *sys__lwp_getprivate(void); }
610317	STD 		{ void sys__lwp_setprivate(void *ptr); }
611318	STD 		{ int sys__lwp_kill(lwpid_t target, int signo); }
612319	STD 		{ int sys__lwp_detach(lwpid_t target); }
613320	STD 		{ int sys__lwp_park(const struct timespec *ts, \
614				lwpid_t unpark, const void *hint, \
615				const void *unparkhint); }
616321	STD 		{ int sys__lwp_unpark(lwpid_t target, const void *hint); }
617322	STD 		{ ssize_t sys__lwp_unpark_all(const lwpid_t *targets, \
618				size_t ntargets, const void *hint); }
619323	STD 		{ int sys__lwp_setname(lwpid_t target, \
620				const char *name); }
621324	STD 		{ int sys__lwp_getname(lwpid_t target, \
622				char *name, size_t len); }
623325	STD 		{ int sys__lwp_ctl(int features, \
624				struct lwpctl **address); }
625; Syscalls 326-339 reserved for LWP syscalls.
626326	UNIMPL
627327	UNIMPL
628328	UNIMPL
629329	UNIMPL
630; SA system calls.
631330	STD 		{ int sys_sa_register(sa_upcall_t new, \
632				sa_upcall_t *old, int flags, \
633				ssize_t stackinfo_offset); }
634331	STD 		{ int sys_sa_stacks(int num, stack_t *stacks); }
635332	STD 		{ int sys_sa_enable(void); }
636333	STD 		{ int sys_sa_setconcurrency(int concurrency); }
637334	STD 		{ int sys_sa_yield(void); }
638335	STD 		{ int sys_sa_preempt(int sa_id); }
639336	OBSOL 		sys_sa_unblockyield
640;
641; Syscalls 337-339 are reserved for other scheduler activation syscalls.
642;
643337	UNIMPL
644338	UNIMPL
645339	UNIMPL
646340	STD 		{ int sys___sigaction_sigtramp(int signum, \
647			    const struct sigaction *nsa, \
648			    struct sigaction *osa, \
649			    const void *tramp, int vers); }
650341	STD 		{ int sys_pmc_get_info(int ctr, int op, void *args); }
651342	STD 		{ int sys_pmc_control(int ctr, int op, void *args); }
652343	STD 		{ int sys_rasctl(void *addr, size_t len, int op); }
653344	STD 		{ int sys_kqueue(void); }
654345	STD 		{ int sys_kevent(int fd, \
655			    const struct kevent *changelist, size_t nchanges, \
656			    struct kevent *eventlist, size_t nevents, \
657			    const struct timespec *timeout); }
658
659; Scheduling system calls.
660346	STD 		{ int sys__sched_setparam(pid_t pid, lwpid_t lid, \
661			    int policy, const struct sched_param *params); }
662347	STD 		{ int sys__sched_getparam(pid_t pid, lwpid_t lid, \
663			    int *policy, struct sched_param *params); }
664348	STD 		{ int sys__sched_setaffinity(pid_t pid, lwpid_t lid, \
665			    size_t size, const cpuset_t *cpuset); }
666349	STD 		{ int sys__sched_getaffinity(pid_t pid, lwpid_t lid, \
667			    size_t size, cpuset_t *cpuset); }
668350	STD 		{ int sys_sched_yield(void); }
669351	UNIMPL
670352	UNIMPL
671353	UNIMPL
672
673354	STD 		{ int sys_fsync_range(int fd, int flags, off_t start, \
674			    off_t length); }
675355	STD 		{ int sys_uuidgen(struct uuid *store, int count); }
676356	STD 		{ int sys_getvfsstat(struct statvfs *buf, \
677			    size_t bufsize, int flags); }
678357	STD 	RUMP	{ int sys_statvfs1(const char *path, \
679			    struct statvfs *buf, int flags); }
680358	STD 		{ int sys_fstatvfs1(int fd, struct statvfs *buf, \
681			    int flags); }
682359	COMPAT_30 MODULAR { int sys_fhstatvfs1(const struct compat_30_fhandle *fhp, \
683			    struct statvfs *buf, int flags); }
684360	STD 		{ int sys_extattrctl(const char *path, int cmd, \
685			    const char *filename, int attrnamespace, \
686			    const char *attrname); }
687361	STD 		{ int sys_extattr_set_file(const char *path, \
688			    int attrnamespace, const char *attrname, \
689			    const void *data, size_t nbytes); }
690362	STD 		{ ssize_t sys_extattr_get_file(const char *path, \
691			    int attrnamespace, const char *attrname, \
692			    void *data, size_t nbytes); }
693363	STD 		{ int sys_extattr_delete_file(const char *path, \
694			    int attrnamespace, const char *attrname); }
695364	STD 		{ int sys_extattr_set_fd(int fd, \
696			    int attrnamespace, const char *attrname, \
697			    const void *data, size_t nbytes); }
698365	STD 		{ ssize_t sys_extattr_get_fd(int fd, \
699			    int attrnamespace, const char *attrname, \
700			    void *data, size_t nbytes); }
701366	STD 		{ int sys_extattr_delete_fd(int fd, \
702			    int attrnamespace, const char *attrname); }
703367	STD 		{ int sys_extattr_set_link(const char *path, \
704			    int attrnamespace, const char *attrname, \
705			    const void *data, size_t nbytes); }
706368	STD 		{ ssize_t sys_extattr_get_link(const char *path, \
707			    int attrnamespace, const char *attrname, \
708			    void *data, size_t nbytes); }
709369	STD 		{ int sys_extattr_delete_link(const char *path, \
710			    int attrnamespace, const char *attrname); }
711370	STD 		{ ssize_t sys_extattr_list_fd(int fd, \
712			    int attrnamespace, void *data, size_t nbytes); }
713371	STD 		{ ssize_t sys_extattr_list_file(const char *path, \
714			    int attrnamespace, void *data, size_t nbytes); }
715372	STD 		{ ssize_t sys_extattr_list_link(const char *path, \
716			    int attrnamespace, void *data, size_t nbytes); }
717373	STD 		{ int sys_pselect(int nd, fd_set *in, fd_set *ou, \
718			    fd_set *ex, const struct timespec *ts, \
719			    const sigset_t *mask); }
720374	STD 		{ int sys_pollts(struct pollfd *fds, u_int nfds, \
721			    const struct timespec *ts, const sigset_t *mask); }
722375	STD 		{ int sys_setxattr(const char *path, \
723			    const char *name, void *value, size_t size, \
724			    int flags); }
725376	STD 		{ int sys_lsetxattr(const char *path, \
726			    const char *name, void *value, size_t size, \
727			    int flags); }
728377	STD 		{ int sys_fsetxattr(int fd, \
729			    const char *name, void *value, size_t size, \
730			    int flags); }
731378	STD 		{ int sys_getxattr(const char *path, \
732			    const char *name, void *value, size_t size); }
733379	STD 		{ int sys_lgetxattr(const char *path, \
734			    const char *name, void *value, size_t size); }
735380	STD 		{ int sys_fgetxattr(int fd, \
736			    const char *name, void *value, size_t size); }
737381	STD 		{ int sys_listxattr(const char *path, \
738			    char *list, size_t size); }
739382	STD 		{ int sys_llistxattr(const char *path, \
740			    char *list, size_t size); }
741383	STD 		{ int sys_flistxattr(int fd, \
742			    char *list, size_t size); }
743384	STD 		{ int sys_removexattr(const char *path, \
744			    const char *name); }
745385	STD 		{ int sys_lremovexattr(const char *path, \
746			    const char *name); }
747386	STD 		{ int sys_fremovexattr(int fd, \
748			    const char *name); }
749387	STD 	 RUMP	{ int sys___stat30(const char *path, struct stat *ub); }
750388	STD 		{ int sys___fstat30(int fd, struct stat *sb); }
751389	STD 	 RUMP	{ int sys___lstat30(const char *path, struct stat *ub); }
752390	STD 		{ int sys___getdents30(int fd, char *buf, size_t count); }
753391	IGNORED		old posix_fadvise
754392	COMPAT_30 MODULAR { int sys___fhstat30(const struct compat_30_fhandle \
755			    *fhp, struct stat *sb); }
756393	STD 		{ int sys___ntp_gettime30(struct ntptimeval *ntvp); }
757394	STD	 RUMP	{ int sys___socket30(int domain, int type, int protocol); }
758395	STD 	 RUMP	{ int sys___getfh30(const char *fname, void *fhp, \
759			    size_t *fh_size); }
760396	STD 		{ int sys___fhopen40(const void *fhp, size_t fh_size,\
761			    int flags); }
762397	STD 		{ int sys___fhstatvfs140(const void *fhp, \
763			    size_t fh_size, struct statvfs *buf, int flags); }
764398	STD 		{ int sys___fhstat40(const void *fhp, \
765			    size_t fh_size, struct stat *sb); }
766
767; Asynchronous I/O system calls
768399	STD MODULAR	{ int sys_aio_cancel(int fildes, struct aiocb *aiocbp); }
769400	STD MODULAR	{ int sys_aio_error(const struct aiocb *aiocbp); }
770401	STD MODULAR	{ int sys_aio_fsync(int op, struct aiocb *aiocbp); }
771402	STD MODULAR	{ int sys_aio_read(struct aiocb *aiocbp); }
772403	STD MODULAR	{ int sys_aio_return(struct aiocb *aiocbp); }
773404	STD MODULAR	{ int sys_aio_suspend(const struct aiocb *const *list, \
774			    int nent, const struct timespec *timeout); }
775405	STD MODULAR	{ int sys_aio_write(struct aiocb *aiocbp); }
776406	STD MODULAR	{ int sys_lio_listio(int mode, struct aiocb *const *list, \
777			    int nent, struct sigevent *sig); }
778
779407	UNIMPL
780408	UNIMPL
781409	UNIMPL
782
783410	STD 		{ int sys___mount50(const char *type, \
784			    const char *path, int flags, void *data, \
785			    size_t data_len); }
786411	STD 		{ void *sys_mremap(void *old_address, size_t old_size, \
787			    void *new_address, size_t new_size, int flags); }
788
789; Processor-sets system calls
790412	STD 		{ int sys_pset_create(psetid_t *psid); }
791413	STD 		{ int sys_pset_destroy(psetid_t psid); }
792414	STD 		{ int sys_pset_assign(psetid_t psid, cpuid_t cpuid, \
793			    psetid_t *opsid); }
794415	STD 		{ int sys__pset_bind(idtype_t idtype, id_t first_id, \
795			    id_t second_id, psetid_t psid, psetid_t *opsid); }
796416	STD 		{ int sys___posix_fadvise50(int fd, int pad, \
797			    off_t offset, off_t len, int advice); }
798