syscalls.master revision 69449
160786Sps $FreeBSD: head/sys/kern/syscalls.master 69449 2000-12-01 08:57:47Z alfred $
260786Sps;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
360786Sps;
460786Sps; System call name/number master file.
560786Sps; Processed to created init_sysent.c, syscalls.c and syscall.h.
6238730Sdelphij
760786Sps; Columns: number [MPSAFE] type nargs namespc name alt{name,tag,rtyp}/comments
860786Sps;	number	system call number, must be in order
960786Sps;   MPSAFE	optional field, specifies that syscall does not want the
1060786Sps;		BGL grabbed automatically (it is SMP safe).
1160786Sps;	type	one of STD, OBSOL, UNIMPL, COMPAT, CPT_NOA, LIBCOMPAT,
1260786Sps;		NODEF, NOARGS, NOPROTO, NOIMPL, NOSTD
1360786Sps;	namespc one of POSIX, BSD, NOHIDE
1460786Sps;	name	psuedo-prototype of syscall routine
1560786Sps;		If one of the following alts is different, then all appear:
1660786Sps;	altname	name of system call if different
1760786Sps;	alttag	name of args struct tag if different from [o]`name'"_args"
1860786Sps;	altrtyp	return type if not int (bogus - syscalls always return int)
1960786Sps;		for UNIMPL/OBSOL, name continues with comments
2060786Sps
2160786Sps; types:
2260786Sps;	STD	always included
23128345Stjr;	COMPAT	included on COMPAT #ifdef
24128345Stjr;	LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
2560786Sps;	OBSOL	obsolete, not included in system, only specifies name
2660786Sps;	UNIMPL	not implemented, placeholder only
2760786Sps;	NOSTD	implemented but as a lkm that can be statically
2860786Sps;			compiled in sysent entry will be filled with lkmsys
2960786Sps;			so the SYSCALL_MODULE macro works
3060786Sps
3160786Sps; #ifdef's, etc. may be included, and are copied to the output files.
3260786Sps
3360786Sps#include <sys/param.h>
3460786Sps#include <sys/sysent.h>
3560786Sps#include <sys/sysproto.h>
3660786Sps
3760786Sps; Reserved/unimplemented system calls in the range 0-150 inclusive
3860786Sps; are reserved for use in future Berkeley releases.
3960786Sps; Additional system calls implemented in vendor and other
4060786Sps; redistributions should be placed in the reserved range at the end
4160786Sps; of the current calls.
42191930Sdelphij
4360786Sps0	STD	NOHIDE	{ int nosys(void); } syscall nosys_args int
44237613Sdelphij1	STD	NOHIDE	{ void sys_exit(int rval); } exit sys_exit_args void
4560786Sps2	STD	POSIX	{ int fork(void); }
4660786Sps3	STD	POSIX	{ ssize_t read(int fd, void *buf, size_t nbyte); }
4760786Sps4	STD	POSIX	{ ssize_t write(int fd, const void *buf, size_t nbyte); }
4860786Sps5	STD	POSIX	{ int open(char *path, int flags, int mode); }
4960786Sps; XXX should be		{ int open(const char *path, int flags, ...); }
5060786Sps; but we're not ready for `const' or varargs.
5160786Sps; XXX man page says `mode_t mode'.
5260786Sps6	STD	POSIX	{ int close(int fd); }
5360786Sps7	STD	BSD	{ int wait4(int pid, int *status, int options, \
5460786Sps			    struct rusage *rusage); } wait4 wait_args int
5560786Sps8	COMPAT	BSD	{ int creat(char *path, int mode); }
5660786Sps9	STD	POSIX	{ int link(char *path, char *link); }
5789019Sps10	STD	POSIX	{ int unlink(char *path); }
5889019Sps11	OBSOL	NOHIDE	execv
5960786Sps12	STD	POSIX	{ int chdir(char *path); }
6060786Sps13	STD	BSD	{ int fchdir(int fd); }
6160786Sps14	STD	POSIX	{ int mknod(char *path, int mode, int dev); }
6260786Sps15	STD	POSIX	{ int chmod(char *path, int mode); }
6360786Sps16	STD	POSIX	{ int chown(char *path, int uid, int gid); }
6460786Sps17	STD	BSD	{ int obreak(char *nsize); } break obreak_args int
6560786Sps18	STD	BSD	{ int getfsstat(struct statfs *buf, long bufsize, \
6660786Sps			    int flags); }
6760786Sps19	COMPAT	POSIX	{ long lseek(int fd, long offset, int whence); }
6860786Sps20	STD	POSIX	{ pid_t getpid(void); }
6960786Sps21	STD	BSD	{ int mount(char *type, char *path, int flags, \
7060786Sps			    caddr_t data); }
7160786Sps; XXX 4.4lite2 uses `char *type' but we're not ready for that.
7260786Sps; XXX `path' should have type `const char *' but we're not ready for that.
7360786Sps22	STD	BSD	{ int unmount(char *path, int flags); }
7460786Sps23	STD	POSIX	{ int setuid(uid_t uid); }
7560786Sps24	MPSAFE	STD	POSIX	{ uid_t getuid(void); }
7660786Sps25	MPSAFE	STD	POSIX	{ uid_t geteuid(void); }
7760786Sps26	STD	BSD	{ int ptrace(int req, pid_t pid, caddr_t addr, \
7860786Sps			    int data); }
7960786Sps27	STD	BSD	{ int recvmsg(int s, struct msghdr *msg, int flags); }
8060786Sps28	STD	BSD	{ int sendmsg(int s, caddr_t msg, int flags); }
8160786Sps29	STD	BSD	{ int recvfrom(int s, caddr_t buf, size_t len, \
8260786Sps			    int flags, caddr_t from, int *fromlenaddr); }
8360786Sps30	STD	BSD	{ int accept(int s, caddr_t name, int *anamelen); }
8460786Sps31	STD	BSD	{ int getpeername(int fdes, caddr_t asa, int *alen); }
8560786Sps32	STD	BSD	{ int getsockname(int fdes, caddr_t asa, int *alen); }
8660786Sps33	STD	POSIX	{ int access(char *path, int flags); }
8760786Sps34	STD	BSD	{ int chflags(char *path, int flags); }
8860786Sps35	STD	BSD	{ int fchflags(int fd, int flags); }
8960786Sps36	STD	BSD	{ int sync(void); }
9060786Sps37	STD	POSIX	{ int kill(int pid, int signum); }
9160786Sps38	COMPAT	POSIX	{ int stat(char *path, struct ostat *ub); }
9260786Sps39	STD	POSIX	{ pid_t getppid(void); }
9360786Sps40	COMPAT	POSIX	{ int lstat(char *path, struct ostat *ub); }
9460786Sps41	STD	POSIX	{ int dup(u_int fd); }
9560786Sps42	STD	POSIX	{ int pipe(void); }
9660786Sps43	STD	POSIX	{ gid_t getegid(void); }
9760786Sps44	STD	BSD	{ int profil(caddr_t samples, size_t size, \
9860786Sps			    size_t offset, u_int scale); }
9960786Sps45	STD	BSD	{ int ktrace(const char *fname, int ops, int facs, \
10060786Sps			    int pid); }
10160786Sps46	COMPAT	POSIX	{ int sigaction(int signum, struct osigaction *nsa, \
10260786Sps			    struct osigaction *osa); }
10360786Sps47	MPSAFE	STD	POSIX	{ gid_t getgid(void); }
10460786Sps48	MPSAFE	COMPAT	POSIX	{ int sigprocmask(int how, osigset_t mask); }
10560786Sps; XXX note nonstandard (bogus) calling convention - the libc stub passes
10660786Sps; us the mask, not a pointer to it, and we return the old mask as the
10760786Sps; (int) return value.
10860786Sps49	STD	BSD	{ int getlogin(char *namebuf, u_int namelen); }
10960786Sps50	STD	BSD	{ int setlogin(char *namebuf); }
11060786Sps51	STD	BSD	{ int acct(char *path); }
11160786Sps52	COMPAT	POSIX	{ int sigpending(void); }
11260786Sps53	STD	BSD	{ int sigaltstack(stack_t *ss, stack_t *oss); }
11360786Sps54	STD	POSIX	{ int ioctl(int fd, u_long com, caddr_t data); }
11460786Sps55	STD	BSD	{ int reboot(int opt); }
115237613Sdelphij56	STD	POSIX	{ int revoke(char *path); }
116221715Sdelphij57	STD	POSIX	{ int symlink(char *path, char *link); }
117237613Sdelphij58	STD	POSIX	{ int readlink(char *path, char *buf, int count); }
11860786Sps59	STD	POSIX	{ int execve(char *fname, char **argv, char **envv); }
11960786Sps60	MPSAFE	STD	POSIX	{ int umask(int newmask); } umask umask_args int
12060786Sps61	STD	BSD	{ int chroot(char *path); }
12160786Sps62	COMPAT	POSIX	{ int fstat(int fd, struct ostat *sb); }
122170256Sdelphij63	COMPAT	BSD	{ int getkerninfo(int op, char *where, size_t *size, \
123170256Sdelphij			    int arg); } getkerninfo getkerninfo_args int
12460786Sps64	COMPAT	BSD	{ int getpagesize(void); } \
12560786Sps			    getpagesize getpagesize_args int
12660786Sps65	STD	BSD	{ int msync(void *addr, size_t len, int flags); }
12760786Sps66	STD	BSD	{ int vfork(void); }
12860786Sps67	OBSOL	NOHIDE	vread
12960786Sps68	OBSOL	NOHIDE	vwrite
13060786Sps69	STD	BSD	{ int sbrk(int incr); }
13160786Sps70	STD	BSD	{ int sstk(int incr); }
13260786Sps71	COMPAT	BSD	{ int mmap(void *addr, int len, int prot, \
13360786Sps			    int flags, int fd, long pos); }
13460786Sps72	STD	BSD	{ int ovadvise(int anom); } vadvise ovadvise_args int
13560786Sps73	STD	BSD	{ int munmap(void *addr, size_t len); }
13660786Sps74	STD	BSD	{ int mprotect(const void *addr, size_t len, int prot); }
13760786Sps75	STD	BSD	{ int madvise(void *addr, size_t len, int behav); }
13860786Sps76	OBSOL	NOHIDE	vhangup
13960786Sps77	OBSOL	NOHIDE	vlimit
14060786Sps78	STD	BSD	{ int mincore(const void *addr, size_t len, \
14160786Sps			    char *vec); }
14260786Sps79	STD	POSIX	{ int getgroups(u_int gidsetsize, gid_t *gidset); }
14360786Sps80	STD	POSIX	{ int setgroups(u_int gidsetsize, gid_t *gidset); }
14460786Sps81	MPSAFE	STD	POSIX	{ int getpgrp(void); }
14560786Sps82	STD	POSIX	{ int setpgid(int pid, int pgid); }
14663128Sps83	STD	BSD	{ int setitimer(u_int which, struct itimerval *itv, \
14763128Sps			    struct itimerval *oitv); }
14860786Sps84	COMPAT	BSD	{ int wait(void); }
14960786Sps85	STD	BSD	{ int swapon(char *name); }
150221715Sdelphij86	STD	BSD	{ int getitimer(u_int which, struct itimerval *itv); }
151221715Sdelphij87	COMPAT	BSD	{ int gethostname(char *hostname, u_int len); } \
152128345Stjr			    gethostname gethostname_args int
153128345Stjr88	COMPAT	BSD	{ int sethostname(char *hostname, u_int len); } \
15460786Sps			    sethostname sethostname_args int
15560786Sps89	STD	BSD	{ int getdtablesize(void); }
15660786Sps90	STD	POSIX	{ int dup2(u_int from, u_int to); }
157170256Sdelphij91	UNIMPL	BSD	getdopt
15860786Sps92	STD	POSIX	{ int fcntl(int fd, int cmd, long arg); }
15960786Sps; XXX should be		{ int fcntl(int fd, int cmd, ...); }
16060786Sps; but we're not ready for varargs.
16160786Sps; XXX man page says `int arg' too.
16260786Sps93	STD	BSD	{ int select(int nd, fd_set *in, fd_set *ou, \
16360786Sps			    fd_set *ex, struct timeval *tv); }
16460786Sps94	UNIMPL	BSD	setdopt
16560786Sps95	STD	POSIX	{ int fsync(int fd); }
16660786Sps96	STD	BSD	{ int setpriority(int which, int who, int prio); }
16760786Sps97	STD	BSD	{ int socket(int domain, int type, int protocol); }
16860786Sps98	STD	BSD	{ int connect(int s, caddr_t name, int namelen); }
16960786Sps99	CPT_NOA	BSD	{ int accept(int s, caddr_t name, int *anamelen); } \
17060786Sps			    accept accept_args int
17160786Sps100	STD	BSD	{ int getpriority(int which, int who); }
17260786Sps101	COMPAT	BSD	{ int send(int s, caddr_t buf, int len, int flags); }
173237613Sdelphij102	COMPAT	BSD	{ int recv(int s, caddr_t buf, int len, int flags); }
17460786Sps103	COMPAT	BSD	{ int sigreturn(struct osigcontext *sigcntxp); }
17560786Sps104	STD	BSD	{ int bind(int s, caddr_t name, int namelen); }
17660786Sps105	STD	BSD	{ int setsockopt(int s, int level, int name, \
17760786Sps			    caddr_t val, int valsize); }
17860786Sps106	STD	BSD	{ int listen(int s, int backlog); }
17960786Sps107	OBSOL	NOHIDE	vtimes
18060786Sps108	COMPAT	BSD	{ int sigvec(int signum, struct sigvec *nsv, \
18160786Sps			    struct sigvec *osv); }
18260786Sps109	COMPAT	BSD	{ int sigblock(int mask); }
18360786Sps110	COMPAT	BSD	{ int sigsetmask(int mask); }
18460786Sps111	COMPAT	POSIX	{ int sigsuspend(osigset_t mask); }
18560786Sps; XXX note nonstandard (bogus) calling convention - the libc stub passes
18689019Sps; us the mask, not a pointer to it.
18760786Sps112	COMPAT	BSD	{ int sigstack(struct sigstack *nss, \
18860786Sps			    struct sigstack *oss); }
18960786Sps113	COMPAT	BSD	{ int recvmsg(int s, struct omsghdr *msg, int flags); }
19060786Sps114	COMPAT	BSD	{ int sendmsg(int s, caddr_t msg, int flags); }
19160786Sps115	OBSOL	NOHIDE	vtrace
19260786Sps116	STD	BSD	{ int gettimeofday(struct timeval *tp, \
19360786Sps			    struct timezone *tzp); }
19460786Sps117	STD	BSD	{ int getrusage(int who, struct rusage *rusage); }
19560786Sps118	STD	BSD	{ int getsockopt(int s, int level, int name, \
19660786Sps			    caddr_t val, int *avalsize); }
19760786Sps119	UNIMPL	NOHIDE	resuba (BSD/OS 2.x)
19863128Sps120	STD	BSD	{ int readv(int fd, struct iovec *iovp, u_int iovcnt); }
19963128Sps121	STD	BSD	{ int writev(int fd, struct iovec *iovp, \
200221715Sdelphij			    u_int iovcnt); }
201237613Sdelphij122	STD	BSD	{ int settimeofday(struct timeval *tv, \
202221715Sdelphij			    struct timezone *tzp); }
203221715Sdelphij123	STD	BSD	{ int fchown(int fd, int uid, int gid); }
20463128Sps124	STD	BSD	{ int fchmod(int fd, int mode); }
205221715Sdelphij125	CPT_NOA	BSD	{ int recvfrom(int s, caddr_t buf, size_t len, \
20660786Sps			    int flags, caddr_t from, int *fromlenaddr); } \
20760786Sps			    recvfrom recvfrom_args int
20860786Sps126	STD	BSD	{ int setreuid(int ruid, int euid); }
20960786Sps127	STD	BSD	{ int setregid(int rgid, int egid); }
21060786Sps128	STD	POSIX	{ int rename(char *from, char *to); }
21160786Sps129	COMPAT	BSD	{ int truncate(char *path, long length); }
21260786Sps130	COMPAT	BSD	{ int ftruncate(int fd, long length); }
21360786Sps131	STD	BSD	{ int flock(int fd, int how); }
21460786Sps132	STD	POSIX	{ int mkfifo(char *path, int mode); }
215237613Sdelphij133	STD	BSD	{ int sendto(int s, caddr_t buf, size_t len, \
216237613Sdelphij			    int flags, caddr_t to, int tolen); }
21760786Sps134	STD	BSD	{ int shutdown(int s, int how); }
21860786Sps135	STD	BSD	{ int socketpair(int domain, int type, int protocol, \
21960786Sps			    int *rsv); }
22060786Sps136	STD	POSIX	{ int mkdir(char *path, int mode); }
221237613Sdelphij137	STD	POSIX	{ int rmdir(char *path); }
222237613Sdelphij138	STD	BSD	{ int utimes(char *path, struct timeval *tptr); }
223237613Sdelphij139	OBSOL	NOHIDE	4.2 sigreturn
22460786Sps140	STD	BSD	{ int adjtime(struct timeval *delta, \
22560786Sps			    struct timeval *olddelta); }
22660786Sps141	COMPAT	BSD	{ int getpeername(int fdes, caddr_t asa, int *alen); }
22760786Sps142	COMPAT	BSD	{ long gethostid(void); }
228237613Sdelphij143	COMPAT	BSD	{ int sethostid(long hostid); }
22960786Sps144	COMPAT	BSD	{ int getrlimit(u_int which, struct orlimit *rlp); }
230170256Sdelphij145	COMPAT	BSD	{ int setrlimit(u_int which, struct orlimit *rlp); }
231146	COMPAT	BSD	{ int killpg(int pgid, int signum); }
232147	STD	POSIX	{ int setsid(void); }
233148	STD	BSD	{ int quotactl(char *path, int cmd, int uid, \
234			    caddr_t arg); }
235149	COMPAT	BSD	{ int quota(void); }
236150	CPT_NOA	BSD	{ int getsockname(int fdec, caddr_t asa, int *alen); }\
237			    getsockname getsockname_args int
238
239; Syscalls 151-180 inclusive are reserved for vendor-specific
240; system calls.  (This includes various calls added for compatibity
241; with other Unix variants.)
242; Some of these calls are now supported by BSD...
243151	UNIMPL	NOHIDE	sem_lock (BSD/OS 2.x)
244152	UNIMPL	NOHIDE	sem_wakeup (BSD/OS 2.x)
245153	UNIMPL	NOHIDE	asyncdaemon (BSD/OS 2.x)
246154	UNIMPL	NOHIDE	nosys
247; 155 is initialized by the NFS code, if present.
248155	NOIMPL	BSD	{ int nfssvc(int flag, caddr_t argp); }
249156	COMPAT	BSD	{ int getdirentries(int fd, char *buf, u_int count, \
250			    long *basep); }
251157	STD	BSD	{ int statfs(char *path, struct statfs *buf); }
252158	STD	BSD	{ int fstatfs(int fd, struct statfs *buf); }
253159	UNIMPL	NOHIDE	nosys
254160	UNIMPL	NOHIDE	nosys
255161	STD	BSD	{ int getfh(char *fname, struct fhandle *fhp); }
256162	STD	BSD	{ int getdomainname(char *domainname, int len); }
257163	STD	BSD	{ int setdomainname(char *domainname, int len); }
258164	STD	BSD	{ int uname(struct utsname *name); }
259165	STD	BSD	{ int sysarch(int op, char *parms); }
260166	STD	BSD	{ int rtprio(int function, pid_t pid, \
261			    struct rtprio *rtp); }
262167	UNIMPL	NOHIDE	nosys
263168	UNIMPL	NOHIDE	nosys
264; 169 is initialized by the SYSVSEM code if present or loaded
265169	NOSTD	BSD	{ int semsys(int which, int a2, int a3, int a4, \
266			    int a5); }
267; 169 is initialized by the SYSVMSG code if present or loaded
268; XXX should be		{ int semsys(int which, ...); }
269170	NOSTD	BSD	{ int msgsys(int which, int a2, int a3, int a4, \
270			    int a5, int a6); }
271; 169 is initialized by the SYSVSHM code if present or loaded
272; XXX should be		{ int msgsys(int which, ...); }
273171	NOSTD	BSD	{ int shmsys(int which, int a2, int a3, int a4); }
274; XXX should be		{ int shmsys(int which, ...); }
275172	UNIMPL	NOHIDE	nosys
276173	STD	POSIX	{ ssize_t pread(int fd, void *buf, size_t nbyte, \
277			    int pad, off_t offset); }
278174	STD	POSIX	{ ssize_t pwrite(int fd, const void *buf, \
279			    size_t nbyte, int pad, off_t offset); }
280175	UNIMPL	NOHIDE	nosys
281176	STD	BSD	{ int ntp_adjtime(struct timex *tp); }
282177	UNIMPL	NOHIDE	sfork (BSD/OS 2.x)
283178	UNIMPL	NOHIDE	getdescriptor (BSD/OS 2.x)
284179	UNIMPL	NOHIDE	setdescriptor (BSD/OS 2.x)
285180	UNIMPL	NOHIDE	nosys
286
287; Syscalls 181-199 are used by/reserved for BSD
288181	STD	POSIX	{ int setgid(gid_t gid); }
289182	STD	BSD	{ int setegid(gid_t egid); }
290183	STD	BSD	{ int seteuid(uid_t euid); }
291184	UNIMPL	BSD	lfs_bmapv
292185	UNIMPL	BSD	lfs_markv
293186	UNIMPL	BSD	lfs_segclean
294187	UNIMPL	BSD	lfs_segwait
295188	STD	POSIX	{ int stat(char *path, struct stat *ub); }
296189	STD	POSIX	{ int fstat(int fd, struct stat *sb); }
297190	STD	POSIX	{ int lstat(char *path, struct stat *ub); }
298191	STD	POSIX	{ int pathconf(char *path, int name); }
299192	STD	POSIX	{ int fpathconf(int fd, int name); }
300193	UNIMPL	NOHIDE	nosys
301194	STD	BSD	{ int getrlimit(u_int which, \
302			    struct rlimit *rlp); } \
303			    getrlimit __getrlimit_args int
304195	STD	BSD	{ int setrlimit(u_int which, \
305			    struct rlimit *rlp); } \
306			    setrlimit __setrlimit_args int
307196	STD	BSD	{ int getdirentries(int fd, char *buf, u_int count, \
308			    long *basep); }
309197	STD	BSD	{ caddr_t mmap(caddr_t addr, size_t len, int prot, \
310			    int flags, int fd, int pad, off_t pos); }
311198	STD	NOHIDE	{ int nosys(void); } __syscall __syscall_args int
312199	STD	POSIX	{ off_t lseek(int fd, int pad, off_t offset, \
313			    int whence); }
314200	STD	BSD	{ int truncate(char *path, int pad, off_t length); }
315201	STD	BSD	{ int ftruncate(int fd, int pad, off_t length); }
316202	STD	BSD	{ int __sysctl(int *name, u_int namelen, void *old, \
317			    size_t *oldlenp, void *new, size_t newlen); } \
318			    __sysctl sysctl_args int
319; properly, __sysctl should be a NOHIDE, but making an exception
320; here allows to avoid one in libc/sys/Makefile.inc.
321203	STD	BSD	{ int mlock(const void *addr, size_t len); }
322204	STD	BSD	{ int munlock(const void *addr, size_t len); }
323205	STD	BSD	{ int undelete(char *path); }
324206	STD	BSD	{ int futimes(int fd, struct timeval *tptr); }
325207	STD	BSD	{ int getpgid(pid_t pid); }
326208	UNIMPL	NOHIDE	newreboot (NetBSD)
327209	STD	BSD	{ int poll(struct pollfd *fds, u_int nfds, \
328			    int timeout); }
329
330;
331; The following are reserved for loadable syscalls
332;
333210	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
334211	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
335212	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
336213	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
337214	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
338215	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
339216	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
340217	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
341218	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
342219	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
343
344;
345; The following were introduced with NetBSD/4.4Lite-2
346; They are initialized by thier respective modules/sysinits
347220	NOSTD	BSD	{ int __semctl(int semid, int semnum, int cmd, \
348			    union semun *arg); }
349221	NOSTD	BSD	{ int semget(key_t key, int nsems, int semflg); }
350222	NOSTD	BSD	{ int semop(int semid, struct sembuf *sops, \
351			    u_int nsops); }
352223	UNIMPL	NOHIDE	semconfig
353224	NOSTD	BSD	{ int msgctl(int msqid, int cmd, \
354			    struct msqid_ds *buf); }
355225	NOSTD	BSD	{ int msgget(key_t key, int msgflg); }
356226	NOSTD	BSD	{ int msgsnd(int msqid, void *msgp, size_t msgsz, \
357			    int msgflg); }
358227	NOSTD	BSD	{ int msgrcv(int msqid, void *msgp, size_t msgsz, \
359			    long msgtyp, int msgflg); }
360228	NOSTD	BSD	{ int shmat(int shmid, void *shmaddr, int shmflg); }
361229	NOSTD	BSD	{ int shmctl(int shmid, int cmd, \
362			    struct shmid_ds *buf); }
363230	NOSTD	BSD	{ int shmdt(void *shmaddr); }
364231	NOSTD	BSD	{ int shmget(key_t key, int size, int shmflg); }
365;
366232	STD	POSIX	{ int clock_gettime(clockid_t clock_id, \
367			    struct timespec *tp); }
368233	STD	POSIX	{ int clock_settime(clockid_t clock_id, \
369			    const struct timespec *tp); }
370234	STD	POSIX	{ int clock_getres(clockid_t clock_id, \
371			    struct timespec *tp); }
372235	UNIMPL	NOHIDE	timer_create
373236	UNIMPL	NOHIDE	timer_delete
374237	UNIMPL	NOHIDE	timer_settime
375238	UNIMPL	NOHIDE	timer_gettime
376239	UNIMPL	NOHIDE	timer_getoverrun
377240	STD	POSIX	{ int nanosleep(const struct timespec *rqtp, \
378			    struct timespec *rmtp); }
379241	UNIMPL	NOHIDE	nosys
380242	UNIMPL	NOHIDE	nosys
381243	UNIMPL	NOHIDE	nosys
382244	UNIMPL	NOHIDE	nosys
383245	UNIMPL	NOHIDE	nosys
384246	UNIMPL	NOHIDE	nosys
385247	UNIMPL	NOHIDE	nosys
386248	UNIMPL	NOHIDE	nosys
387249	UNIMPL	NOHIDE	nosys
388; syscall numbers initially used in OpenBSD
389250	STD	BSD	{ int minherit(void *addr, size_t len, int inherit); }
390251	STD	BSD	{ int rfork(int flags); }
391252	STD	BSD	{ int openbsd_poll(struct pollfd *fds, u_int nfds, \
392			    int timeout); }
393253	STD	BSD	{ int issetugid(void); }
394254	STD	BSD	{ int lchown(char *path, int uid, int gid); }
395255	UNIMPL	NOHIDE	nosys
396256	UNIMPL	NOHIDE	nosys
397257	UNIMPL	NOHIDE	nosys
398258	UNIMPL	NOHIDE	nosys
399259	UNIMPL	NOHIDE	nosys
400260	UNIMPL	NOHIDE	nosys
401261	UNIMPL	NOHIDE	nosys
402262	UNIMPL	NOHIDE	nosys
403263	UNIMPL	NOHIDE	nosys
404264	UNIMPL	NOHIDE	nosys
405265	UNIMPL	NOHIDE	nosys
406266	UNIMPL	NOHIDE	nosys
407267	UNIMPL	NOHIDE	nosys
408268	UNIMPL	NOHIDE	nosys
409269	UNIMPL	NOHIDE	nosys
410270	UNIMPL	NOHIDE	nosys
411271	UNIMPL	NOHIDE	nosys
412272	STD	BSD	{ int getdents(int fd, char *buf, size_t count); }
413273	UNIMPL	NOHIDE	nosys
414274	STD	BSD	{ int lchmod(char *path, mode_t mode); }
415275	NOPROTO BSD	{ int lchown(char *path, uid_t uid, gid_t gid); } netbsd_lchown lchown_args int
416276	STD	BSD	{ int lutimes(char *path, struct timeval *tptr); }
417277	NOPROTO	BSD	{ int msync(void *addr, size_t len, int flags); } netbsd_msync msync_args int
418278	STD	BSD	{ int nstat(char *path, struct nstat *ub); }
419279	STD	BSD	{ int nfstat(int fd, struct nstat *sb); }
420280	STD	BSD	{ int nlstat(char *path, struct nstat *ub); }
421281	UNIMPL	NOHIDE	nosys
422282	UNIMPL	NOHIDE	nosys
423283	UNIMPL	NOHIDE	nosys
424284	UNIMPL	NOHIDE	nosys
425285	UNIMPL	NOHIDE	nosys
426286	UNIMPL	NOHIDE	nosys
427287	UNIMPL	NOHIDE	nosys
428288	UNIMPL	NOHIDE	nosys
429289	UNIMPL	NOHIDE	nosys
430290	UNIMPL	NOHIDE	nosys
431291	UNIMPL	NOHIDE	nosys
432292	UNIMPL	NOHIDE	nosys
433293	UNIMPL	NOHIDE	nosys
434294	UNIMPL	NOHIDE	nosys
435295	UNIMPL	NOHIDE	nosys
436296	UNIMPL	NOHIDE	nosys
437; XXX 297 is 300 in NetBSD 
438297	STD	BSD	{ int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
439298	STD	BSD	{ int fhopen(const struct fhandle *u_fhp, int flags); }
440299	STD	BSD 	{ int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
441; syscall numbers for FreeBSD
442300	STD	BSD	{ int modnext(int modid); }
443301	STD	BSD	{ int modstat(int modid, struct module_stat* stat); }
444302	STD	BSD	{ int modfnext(int modid); }
445303	STD	BSD	{ int modfind(const char *name); }
446304	STD	BSD	{ int kldload(const char *file); }
447305	STD	BSD	{ int kldunload(int fileid); }
448306	STD	BSD	{ int kldfind(const char *file); }
449307	STD	BSD	{ int kldnext(int fileid); }
450308	STD	BSD	{ int kldstat(int fileid, struct kld_file_stat* stat); }
451309	STD	BSD	{ int kldfirstmod(int fileid); }
452310	STD	BSD	{ int getsid(pid_t pid); }
453311	STD	BSD	{ int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
454312	STD	BSD	{ int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
455313	OBSOL	NOHIDE	signanosleep
456314     STD     BSD     { int aio_return(struct aiocb *aiocbp); }
457315     STD     BSD     { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
458316     STD     BSD     { int aio_cancel(int fd, struct aiocb *aiocbp); }
459317     STD     BSD     { int aio_error(struct aiocb *aiocbp); }
460318     STD     BSD     { int aio_read(struct aiocb *aiocbp); }
461319     STD     BSD     { int aio_write(struct aiocb *aiocbp); }
462320     STD     BSD     { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
463321     STD     BSD     { int yield(void); }
464322     STD     BSD     { int thr_sleep(const struct timespec *timeout); }
465323     STD     BSD     { int thr_wakeup(pid_t pid); }
466324     STD     BSD     { int mlockall(int how); }
467325     STD     BSD     { int munlockall(void); }
468326     STD     BSD     { int __getcwd(u_char *buf, u_int buflen); }
469
470327     STD     POSIX   { int sched_setparam (pid_t pid, const struct sched_param *param); }
471328     STD     POSIX   { int sched_getparam (pid_t pid, struct sched_param *param); }
472
473329     STD     POSIX   { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
474330     STD     POSIX   { int sched_getscheduler (pid_t pid); }
475
476331     STD     POSIX   { int sched_yield (void); }
477332     STD     POSIX   { int sched_get_priority_max (int policy); }
478333     STD     POSIX   { int sched_get_priority_min (int policy); }
479334     STD     POSIX   { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
480335	STD	BSD	{ int utrace(const void *addr, size_t len); }
481336	STD	BSD	{ int sendfile(int fd, int s, off_t offset, size_t nbytes, \
482				struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
483337	STD	BSD	{ int kldsym(int fileid, int cmd, void *data); }
484338	STD	BSD	{ int jail(struct jail *jail); }
485339	UNIMPL	BSD	pioctl
486340	MPSAFE	STD	POSIX	{ int sigprocmask(int how, const sigset_t *set, \
487			    sigset_t *oset); }
488341	STD	POSIX	{ int sigsuspend(const sigset_t *sigmask); }
489342	STD	POSIX	{ int sigaction(int sig, const struct sigaction *act, \
490			    struct sigaction *oact); }
491343	STD	POSIX	{ int sigpending(sigset_t *set); }
492344	STD	BSD	{ int sigreturn(ucontext_t *sigcntxp); }
493345	UNIMPL	NOHIDE	sigtimedwait
494346	UNIMPL	NOHIDE	sigwaitinfo
495347	STD	BSD	{ int __acl_get_file(const char *path, \
496			    acl_type_t type, struct acl *aclp); }
497348	STD	BSD	{ int __acl_set_file(const char *path, \
498			    acl_type_t type, struct acl *aclp); }
499349	STD	BSD	{ int __acl_get_fd(int filedes, acl_type_t type, \
500			    struct acl *aclp); }
501350	STD	BSD	{ int __acl_set_fd(int filedes, acl_type_t type, \
502			    struct acl *aclp); }
503351	STD	BSD	{ int __acl_delete_file(const char *path, \
504			    acl_type_t type); }
505352	STD	BSD	{ int __acl_delete_fd(int filedes, acl_type_t type); }
506353	STD	BSD	{ int __acl_aclcheck_file(const char *path, \
507			    acl_type_t type, struct acl *aclp); }
508354	STD	BSD	{ int __acl_aclcheck_fd(int filedes, acl_type_t type, \
509			    struct acl *aclp); }
510355	STD	BSD	{ int extattrctl(const char *path, int cmd, \
511			    const char *attrname, char *arg); }
512356	STD	BSD	{ int extattr_set_file(const char *path, \
513			    const char *attrname, struct iovec *iovp, \
514			    unsigned iovcnt); }
515357	STD	BSD	{ int extattr_get_file(const char *path, \
516			    const char *attrname, struct iovec *iovp, \
517			    unsigned iovcnt); }
518358	STD	BSD	{ int extattr_delete_file(const char *path, \
519			    const char *attrname); }
520359	STD	BSD	{ int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }
521360	STD	BSD	{ int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
522361	STD	BSD	{ int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
523362	STD	BSD	{ int kqueue(void); }
524363	STD	BSD	{ int kevent(int fd, \
525			    const struct kevent *changelist, int nchanges, \
526			    struct kevent *eventlist, int nevents, \
527			    const struct timespec *timeout); }
528364	STD	BSD	{ int __cap_get_proc(struct cap *cap_p); }
529365	STD	BSD	{ int __cap_set_proc(struct cap *cap_p); }
530366	STD	BSD	{ int __cap_get_fd(int fd, struct cap *cap_p); }
531367	STD	BSD	{ int __cap_get_file(const char *path_p, struct cap *cap_p); }
532368	STD	BSD	{ int __cap_set_fd(int fd, struct cap *cap_p); }
533369	STD	BSD	{ int __cap_set_file(const char *path_p, struct cap *cap_p); }
534370	NODEF	NOHIDE	lkmressys lkmressys nosys_args int
535