xref: /netbsd-src/sys/compat/freebsd/syscalls.master (revision c8da0e5fefd3800856b306200a18b2315c7fbb9f)
1	$NetBSD: syscalls.master,v 1.62 2009/01/13 22:27:43 pooka Exp $
2
3;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
4
5; NetBSD COMPAT_FREEBSD 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, NODEF, NOARGS, or one of
11;		the compatibility options defined in syscalls.conf.
12;
13; types:
14;	STD	always included
15;	OBSOL	obsolete, not included in system
16;	UNIMPL	unimplemented, not included in system
17;	NODEF	included, but don't define the syscall number
18;	NOARGS	included, but don't define the syscall args structure
19;
20; The compat options are defined in the syscalls.conf file, and the
21; compat option name is prefixed to the syscall name.  Other than
22; that, they're like NODEF (for 'compat' options), or STD (for
23; 'libcompat' options).
24;
25; The type-dependent arguments are as follows:
26; For STD, NODEF, NOARGS, and compat syscalls:
27;	{ pseudo-proto } [alias]
28; For other syscalls:
29;	[comment]
30;
31; #ifdef's, etc. may be included, and are copied to the output files.
32; #include's are copied to the syscall names and switch definition files only.
33
34#if defined(_KERNEL_OPT)
35#include "opt_ktrace.h"
36#include "opt_ntp.h"
37#include "opt_sysv.h"
38#include "opt_compat_43.h"
39#include "opt_posix.h"
40
41#include "fs_lfs.h"
42#endif
43
44#include <sys/param.h>
45#include <sys/systm.h>
46#include <sys/signal.h>
47#include <sys/mount.h>
48#include <sys/syscallargs.h>
49
50#include <compat/sys/signal.h>
51#include <compat/sys/time.h>
52
53#include <compat/freebsd/freebsd_syscallargs.h>
54
55#include <machine/freebsd_machdep.h>
56
57%%
58
59; Reserved/unimplemented system calls in the range 0-150 inclusive
60; are reserved for use in future Berkeley releases.
61; Additional system calls implemented in vendor and other
62; redistributions should be placed in the reserved range at the end
63; of the current calls.
64
650	NOARGS		{ int|sys||nosys(void); } syscall
661	NOARGS		{ int|sys||exit(int rval); }
672	NOARGS		{ int|sys||fork(void); }
683	NOARGS		{ int|sys||read(int fd, char *buf, u_int nbyte); }
694	NOARGS		{ int|sys||write(int fd, char *buf, u_int nbyte); }
705	NOARGS		{ int|sys||open(const char *path, int flags, int mode); }
716	NOARGS		{ int|sys||close(int fd); }
727	NOARGS		{ int|compat_50_sys||wait4(int pid, int *status, \
73			    int options, struct rusage50 *rusage); }
748	NOARGS		{ int|compat_43_sys||creat(const char *path, \
75			    int mode); } ocreat
769	NOARGS		{ int|sys||link(const char *path, const char *link); }
7710	NOARGS		{ int|sys||unlink(const char *path); }
7811	OBSOL		execv
7912	NOARGS		{ int|sys||chdir(const char *path); }
8013	NOARGS		{ int|sys||fchdir(int fd); }
8114	NOARGS		{ int|compat_50_sys||mknod(const char *path, int mode, int dev); }
8215	NOARGS		{ int|sys||chmod(const char *path, int mode); }
8316	NOARGS		{ int|sys||chown(const char *path, int uid, int gid); }
8417	NOARGS		{ int|sys||obreak(char *nsize); } break
8518	NOARGS		{ int|compat_20_sys||getfsstat(struct statfs12 *buf, \
86			    long bufsize, int flags); }
8719	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
88			    int whence); } olseek
8920	NOARGS		{ pid_t|sys||getpid_with_ppid(void); }
9021	STD		{ int|freebsd_sys||mount(int type, const char *path, \
91			    int flags, void *data); }
9222	NOARGS		{ int|sys||unmount(const char *path, int flags); }
9323	NOARGS		{ int|sys||setuid(uid_t uid); }
9424	NOARGS		{ uid_t|sys||getuid_with_euid(void); }
9525	NOARGS		{ uid_t|sys||geteuid(void); }
9626	STD		{ int|freebsd_sys||ptrace(int req, pid_t pid, \
97			    void *addr, int data); }
9827	NOARGS		{ int|sys||recvmsg(int s, struct msghdr *msg, \
99			    int flags); }
10028	NOARGS		{ int|sys||sendmsg(int s, void *msg, int flags); }
10129	NOARGS		{ int|sys||recvfrom(int s, void *buf, size_t len, \
102			    int flags, void *from, int *fromlenaddr); }
10330	NOARGS		{ int|sys||accept(int s, void *name, int *anamelen); }
10431	NOARGS		{ int|sys||getpeername(int fdes, void *asa, \
105			    int *alen); }
10632	NOARGS		{ int|sys||getsockname(int fdes, void *asa, \
107			    int *alen); }
10833	NOARGS		{ int|sys||access(const char *path, int flags); }
10934	NOARGS		{ int|sys||chflags(const char *path, int flags); }
11035	NOARGS		{ int|sys||fchflags(int fd, int flags); }
11136	NOARGS		{ int|sys||sync(void); }
11237	NOARGS		{ int|sys||kill(int pid, int signum); }
11338	NOARGS		{ int|compat_43_sys||stat(const char *path, \
114			    struct stat43 *ub); } stat43
11539	NOARGS		{ pid_t|sys||getppid(void); }
11640	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
117			    struct stat43 *ub); } lstat43
11841	NOARGS		{ int|sys||dup(u_int fd); }
11942	NOARGS		{ int|sys||pipe(void); }
12043	NOARGS		{ gid_t|sys||getegid(void); }
12144	NOARGS		{ int|sys||profil(void *samples, u_int size, \
122			    u_int offset, u_int scale); }
123#ifdef KTRACE
12445	NOARGS		{ int|sys||ktrace(char *fname, int ops, int facs, \
125			    int pid); }
126#else
12745	EXCL		ktrace
128#endif
12946	NOARGS		{ int|compat_13_sys||sigaction(int signum, \
130			    const struct sigaction13 *nsa, \
131			    struct sigaction13 *osa); }
13247	NOARGS		{ gid_t|sys||getgid_with_egid(void); }
13348	NOARGS		{ int|compat_13_sys||sigprocmask(int how, \
134			    int mask); }
13549	NOARGS		{ int|sys||__getlogin(char *namebuf, u_int namelen); }
13650	NOARGS		{ int|sys||__setlogin(char *namebuf); }
13751	NOARGS		{ int|sys||acct(char *path); }
13852	NOARGS		{ int|compat_13_sys||sigpending(void); }
13953	NOARGS		{ int|compat_13_sys||sigaltstack( \
140			    const struct sigaltstack13 *nss, \
141			    struct sigaltstack13 *oss); }
14254	STD		{ int|freebsd_sys||ioctl(int fd, u_long com, \
143			    void *data); }
14455	NOARGS		{ int|sys||reboot(int opt); } oreboot
14556	NOARGS		{ int|sys||revoke(const char *path); }
14657	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
14758	NOARGS		{ int|sys||readlink(const char *path, \
148			    char *buf, int count); }
14959	NOARGS		{ int|sys||execve(const char *path, \
150			    char **argp, char **envp); }
15160	NOARGS		{ int|sys||umask(int newmask); }
15261	NOARGS		{ int|sys||chroot(const char *path); }
15362	NOARGS		{ int|compat_43_sys||fstat(int fd, struct stat43 *sb); } \
154			    fstat43
15563	NOARGS		{ int|compat_43_sys||getkerninfo(int op, char *where, \
156			    int *size, int arg); } ogetkerninfo
15764	NOARGS		{ int|compat_43_sys||getpagesize(void); } ogetpagesize
15865	STD		{ int|freebsd_sys||msync(void *addr, size_t len, \
159			    int flags); }
16066	NOARGS		{ int|sys||vfork(void); }
16167	OBSOL		vread
16268	OBSOL		vwrite
16369	NOARGS		{ int|sys||sbrk(intptr_t incr); }
16470	NOARGS		{ int|sys||sstk(int incr); }
16571	NOARGS		{ int|compat_43_sys||mmap(void *addr, size_t len, \
166			    int prot, int flags, int fd, long pos); } ommap
16772	NOARGS		{ int|sys||ovadvise(int anom); } vadvise
16873	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
16974	NOARGS		{ int|sys||mprotect(void *addr, size_t len, \
170			    int prot); }
17175	NOARGS		{ int|sys||madvise(void *addr, size_t len, \
172			    int behav); }
17376	OBSOL		vhangup
17477	OBSOL		vlimit
17578	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
17679	NOARGS		{ int|sys||getgroups(u_int gidsetsize, gid_t *gidset); }
17780	NOARGS		{ int|sys||setgroups(u_int gidsetsize, gid_t *gidset); }
17881	NOARGS		{ int|sys||getpgrp(void); }
17982	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
18083	NOARGS		{ int|compat_50_sys||setitimer(u_int which, \
181			    struct itimerval50 *itv, struct itimerval50 *oitv); }
18284	NOARGS		{ int|compat_43_sys||wait(void); } owait
18385	NOARGS		{ int|compat_12_sys||swapon(char *name); }
18486	NOARGS		{ int|compat_50_sys||getitimer(u_int which, \
185			    struct itimerval50 *itv); }
18687	NOARGS		{ int|compat_43_sys||gethostname(char *hostname, \
187			    u_int len); } ogethostname
18888	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
189			    u_int len); } osethostname
19089	NOARGS		{ int|compat_43_sys||getdtablesize(void); } \
191			    ogetdtablesize
19290	NOARGS		{ int|sys||dup2(u_int from, u_int to); }
19391	UNIMPL		getdopt
19492	NOARGS		{ int|sys||fcntl(int fd, int cmd, void *arg); }
19593	NOARGS		{ int|compat_50_sys||select(u_int nd, fd_set *in, \
196			    fd_set *ou, fd_set *ex, struct timeval50 *tv); }
19794	UNIMPL		setdopt
19895	NOARGS		{ int|sys||fsync(int fd); }
19996	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
20097	NOARGS		{ int|compat_30_sys||socket(int domain, int type, int protocol); }
20198	NOARGS		{ int|sys||connect(int s, void *name, int namelen); }
20299	NOARGS		{ int|compat_43_sys||accept(int s, void *name, \
203			    int *anamelen); } oaccept
204100	NOARGS		{ int|sys||getpriority(int which, int who); }
205101	NOARGS		{ int|compat_43_sys||send(int s, void *buf, int len, \
206			    int flags); } osend
207102	NOARGS		{ int|compat_43_sys||recv(int s, void *buf, int len, \
208			    int flags); } orecv
209103	STD		{ int|freebsd_sys||sigreturn( \
210			    struct freebsd_sigcontext *scp); }
211104	NOARGS		{ int|sys||bind(int s, void *name, int namelen); }
212105	NOARGS		{ int|sys||setsockopt(int s, int level, int name, \
213			    void *val, int valsize); }
214106	NOARGS		{ int|sys||listen(int s, int backlog); }
215107	OBSOL		vtimes
216108	NOARGS		{ int|compat_43_sys||sigvec(int signum, \
217			    struct sigvec *nsv, struct sigvec *osv); } osigvec
218109	NOARGS		{ int|compat_43_sys||sigblock(int mask); } osigblock
219110	NOARGS		{ int|compat_43_sys||sigsetmask(int mask); } osigsetmask
220111	NOARGS		{ int|compat_13_sys||sigsuspend(int mask); }
221112	NOARGS		{ int|compat_43_sys||sigstack(struct sigstack *nss, \
222			    struct sigstack *oss); } osigstack
223113	NOARGS		{ int|compat_43_sys||recvmsg(int s, \
224			    struct omsghdr *msg, int flags); } orecvmsg
225114	NOARGS		{ int|compat_43_sys||sendmsg(int s, void *msg, \
226			    int flags); } osendmsg
227#ifdef TRACE
228115	NOARGS		{ int|sys||vtrace(int request, int value); }
229#else
230115	OBSOL		vtrace
231#endif
232116	NOARGS		{ int|compat_50_sys||gettimeofday(struct timeval50 *tp, \
233			    struct timezone *tzp); }
234117	NOARGS		{ int|compat_50_sys||getrusage(int who, \
235			    struct rusage50 *rusage); }
236118	NOARGS		{ int|sys||getsockopt(int s, int level, int name, \
237			    void *val, int *avalsize); }
238119	OBSOL		resuba
239120	NOARGS		{ int|sys||readv(int fd, struct iovec *iovp, \
240			    u_int iovcnt); }
241121	NOARGS		{ int|sys||writev(int fd, struct iovec *iovp, \
242			    u_int iovcnt); }
243122	NOARGS		{ int|compat_50_sys||settimeofday(struct timeval50 *tv, \
244			    struct timezone50 *tzp); }
245123	NOARGS		{ int|sys||fchown(int fd, int uid, int gid); }
246124	NOARGS		{ int|sys||fchmod(int fd, int mode); }
247125	NOARGS		{ int|compat_43_sys||recvfrom(int s, void *buf, \
248			    size_t len, int flags, void *from, \
249			    int *fromlenaddr); } orecvfrom
250126	NOARGS		{ int|sys||setreuid(int ruid, int euid); }
251127	NOARGS		{ int|sys||setregid(int rgid, int egid); }
252128	NOARGS		{ int|sys||rename(const char *from, const char *to); }
253129	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
254			    long length); } otruncate
255130	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); } \
256			    oftruncate
257131	NOARGS		{ int|sys||flock(int fd, int how); }
258132	NOARGS		{ int|sys||mkfifo(const char *path, int mode); }
259133	NOARGS		{ int|sys||sendto(int s, void *buf, size_t len, \
260			    int flags, void *to, int tolen); }
261134	NOARGS		{ int|sys||shutdown(int s, int how); }
262135	NOARGS		{ int|sys||socketpair(int domain, int type, \
263			    int protocol, int *rsv); }
264136	NOARGS		{ int|sys||mkdir(const char *path, int mode); }
265137	NOARGS		{ int|sys||rmdir(const char *path); }
266138	NOARGS		{ int|compat_50_sys||utimes(char *path, \
267			    struct timeval50 *tptr); }
268139	OBSOL		4.2 sigreturn
269140	NOARGS		{ int|compat_50_sys||adjtime(struct timeval50 *delta, \
270			    struct timeval50 *olddelta); }
271141	NOARGS		{ int|compat_43_sys||getpeername(int fdes, void *asa, \
272			    int *alen); } ogetpeername
273142	NOARGS		{ int32_t|compat_43_sys||gethostid(void); } ogethostid
274143	NOARGS		{ int|compat_43_sys||sethostid(int32_t hostid); } \
275			    osethostid
276144	NOARGS		{ int|compat_43_sys||getrlimit(u_int which, \
277			    struct orlimit *rlp); } ogetrlimit
278145	NOARGS		{ int|compat_43_sys||setrlimit(u_int which, \
279			    struct orlimit *rlp); } osetrlimit
280146	NOARGS		{ int|compat_43_sys||killpg(int pgid, int signum); } \
281			    okillpg
282147	NOARGS		{ int|sys||setsid(void); }
283148	NOARGS		{ int|sys||quotactl(char *path, int cmd, int uid, \
284			    void *arg); }
285149	NOARGS		{ int|compat_43_sys||quota(void); } oquota
286150	NOARGS		{ int|compat_43_sys||getsockname(int fdec, void *asa, \
287			    int *alen); } ogetsockname
288
289; Syscalls 151-180 inclusive are reserved for vendor-specific
290; system calls.  (This includes various calls added for compatibity
291; with other Unix variants.)
292; Some of these calls are now supported by BSD...
293151	UNIMPL		sem_lock
294152	UNIMPL		sem_wakeup
295153	UNIMPL		asyncdaemon
296154	UNIMPL
297155	UNIMPL		nfssvc
298156	NOARGS		{ int|compat_43_sys||getdirentries(int fd, char *buf, \
299			    u_int count, long *basep); } ogetdirentries
300157	NOARGS		{ int|compat_20_sys||statfs(const char *path, \
301			    struct statfs12 *buf); }
302158	NOARGS		{ int|compat_20_sys||fstatfs(int fd, \
303			    struct statfs12 *buf); }
304159	UNIMPL
305160	UNIMPL
306#ifdef NFS
307161	NOARGS		{ int|compat_30_sys||getfh(const char *fname, \
308			    struct compat_30_fhandle *fhp); }
309#else
310161	UNIMPL		getfh
311#endif
312162	NOARGS		{ int|compat_09_sys||getdomainname(char *domainname, \
313			    int len); }
314163	NOARGS		{ int|compat_09_sys||setdomainname(char *domainname, \
315			    int len); }
316164	NOARGS		{ int|compat_09_sys||uname(struct outsname *name); }
317165	NOARGS		{ int|sys||sysarch(int op, char *parms); }
318166	STD		{ int|freebsd_sys||rtprio(int function, pid_t pid, \
319			    struct freebsd_rtprio *rtp); }
320167	UNIMPL
321168	UNIMPL
322; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
323#if defined(SYSVSEM) && !defined(_LP64)
324169	STD		{ int|freebsd_sys||semsys(int which, int a2, int a3, \
325			    int a4, int a5); }
326#else
327169	UNIMPL		1.0 semsys
328#endif
329; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
330#if defined(SYSVMSG) && !defined(_LP64)
331170	STD		{ int|freebsd_sys||msgsys(int which, int a2, int a3, \
332			    int a4, int a5, int a6); }
333#else
334170	UNIMPL		1.0 msgsys
335#endif
336; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
337#if defined(SYSVSHM) && !defined(_LP64)
338171	STD		{ int|freebsd_sys||shmsys(int which, int a2, int a3, \
339			    int a4); }
340#else
341171	UNIMPL		1.0 shmsys
342#endif
343172	UNIMPL
344173	NOARGS		{ ssize_t|sys||pread(int fd, void *buf, \
345			    size_t nbyte, int pad, off_t offset); }
346174	NOARGS		{ ssize_t|sys||pwrite(int fd, const void *buf, \
347			    size_t nbyte, int pad, off_t offset); }
348175	UNIMPL
349#ifdef NTP
350176	STD		{ int|freebsd||ntp_adjtime(struct freebsd_timex *tp); }
351#else
352176     EXCL            ntp_adjtime
353#endif
354177	UNIMPL		sfork
355178	UNIMPL		getdescriptor
356179	UNIMPL		setdescriptor
357180	UNIMPL
358
359; Syscalls 180-199 are used by/reserved for BSD
360181	NOARGS		{ int|sys||setgid(gid_t gid); }
361182	NOARGS		{ int|sys||setegid(gid_t egid); }
362183	NOARGS		{ int|sys||seteuid(uid_t euid); }
363#ifdef LFS
364184	NOARGS		{ int|sys||lfs_bmapv(fsid_t *fsidp, \
365			    struct block_info *blkiov, int blkcnt); }
366185	NOARGS		{ int|sys||lfs_markv(fsid_t *fsidp, \
367			    struct block_info *blkiov, int blkcnt); }
368186	NOARGS		{ int|sys||lfs_segclean(fsid_t *fsidp, u_long segment); }
369187	NOARGS		{ int|compat_50_sys||lfs_segwait(fsid_t *fsidp, \
370			    struct timeval50 *tv); }
371#else
372184	UNIMPL
373185	UNIMPL
374186	UNIMPL
375187	UNIMPL
376#endif
377188	NOARGS		{ int|compat_12_sys||stat(const char *path, \
378			    struct stat12 *ub); }
379189	NOARGS		{ int|compat_12_sys||fstat(int fd, \
380			    struct stat12 *sb); }
381190	NOARGS		{ int|compat_12_sys||lstat(const char *path, \
382			    struct stat12 *ub); }
383191	NOARGS		{ int|sys||pathconf(const char *path, int name); }
384192	NOARGS		{ int|sys||fpathconf(int fd, int name); }
385193	UNIMPL
386194	NOARGS		{ int|sys||getrlimit(u_int which, struct rlimit *rlp); }
387195	NOARGS		{ int|sys||setrlimit(u_int which, struct rlimit *rlp); }
388196	NOARGS		{ int|compat_12_sys||getdirentries(int fd, char *buf, \
389			    u_int count, long *basep); }
390197	STD		{ void *|freebsd_sys||mmap(void *addr, size_t len, \
391			    int prot, int flags, int fd, long pad, off_t pos); }
392198	NOARGS		{ int|sys||nosys(void); } __syscall
393199	NOARGS		{ off_t|sys||lseek(int fd, int pad, off_t offset, \
394			    int whence); }
395200	NOARGS		{ int|sys||truncate(const char *path, int pad, \
396			    off_t length); }
397201	NOARGS		{ int|sys||ftruncate(int fd, int pad, off_t length); }
398202	STD		{ int|freebsd_sys||sysctl(int *name, u_int namelen, \
399			    void *old, size_t *oldlenp, void *new, \
400			    size_t newlen); }
401203	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
402204	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
403#ifdef FREEBSD_BASED_ON_44LITE_R2
404205	STD		{ int|freebsd_sys||undelete(char *path); }
405#else
406205	UNIMPL		undelete
407#endif
408206	NOARGS		{ int|compat_50_sys||futimes(int fd, \
409			    const struct timeval50 *tptr); }
410207	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
411#if 0
412208	NOARGS		{ int|sys||reboot(int opt, char *bootstr); }
413#else
414208	UNIMPL		newreboot
415#endif
416209	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
417			    int timeout); }
418;
419; Syscalls 210-219 are reserved for dynamically loaded syscalls
420;
421210	UNIMPL
422211	UNIMPL
423212	UNIMPL
424213	UNIMPL
425214	UNIMPL
426215	UNIMPL
427216	UNIMPL
428217	UNIMPL
429218	UNIMPL
430219	UNIMPL
431;
432; Syscalls 220-239 are reserved for syscalls imported from NetBSD
433;
434#ifdef SYSVSEM
435220	NOARGS		{ int|compat_14_sys||__semctl(int semid, int semnum, \
436			    int cmd, union __semun *arg); }
437221	NOARGS		{ int|sys||semget(key_t key, int nsems, int semflg); }
438222	NOARGS		{ int|sys||semop(int semid, struct sembuf *sops, \
439			    u_int nsops); }
440223	NOARGS		{ int|sys||semconfig(int flag); }
441#else
442220	UNIMPL		semctl
443221	UNIMPL		semget
444222	UNIMPL		semop
445223	UNIMPL		semconfig
446#endif
447#ifdef SYSVMSG
448224	NOARGS		{ int|compat_14_sys||msgctl(int msqid, int cmd, \
449			    struct msqid14_ds *buf); }
450225	NOARGS		{ int|sys||msgget(key_t key, int msgflg); }
451226	NOARGS		{ int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
452			    int msgflg); }
453227	NOARGS		{ int|sys||msgrcv(int msqid, void *msgp, size_t msgsz, \
454			    long msgtyp, int msgflg); }
455#else
456224	UNIMPL		msgctl
457225	UNIMPL		msgget
458226	UNIMPL		msgsnd
459227	UNIMPL		msgrcv
460#endif
461#ifdef SYSVSHM
462228	NOARGS		{ int|sys||shmat(int shmid, void *shmaddr, int shmflg); }
463229	NOARGS		{ int|compat_14_sys||shmctl(int shmid, int cmd, \
464			    struct shmid_ds14 *buf); }
465230	NOARGS		{ int|sys||shmdt(void *shmaddr); }
466231	NOARGS		{ int|sys||shmget(key_t key, int size, int shmflg); }
467#else
468228	UNIMPL		shmat
469229	UNIMPL		shmctl
470230	UNIMPL		shmdt
471231	UNIMPL		shmget
472#endif
473;
474; XXXX
475232	NOARGS		{ int|compat_50_sys||clock_gettime(clockid_t clock_id, \
476			    struct timespec50 *tp); }
477233	NOARGS		{ int|compat_50_sys||clock_settime(clockid_t clock_id, \
478			    const struct timespec50 *tp); }
479234	NOARGS		{ int|compat_50_sys||clock_getres(clockid_t clock_id, \
480			    struct timespec50 *tp); }
481235	UNIMPL		timer_create
482236	UNIMPL		timer_delete
483237	UNIMPL		timer_settime
484238	UNIMPL		timer_gettime
485239	UNIMPL		timer_getoverrun
486240	NOARGS		{ int|compat_50_sys||nanosleep( \
487			    const struct timespec50 *rqtp, \
488			    struct timespec50 *rmtp); }
489241	UNIMPL
490242	UNIMPL
491243	UNIMPL
492244	UNIMPL
493245	UNIMPL
494246	UNIMPL
495247	UNIMPL
496248	UNIMPL
497249	UNIMPL
498; syscall numbers initially used in OpenBSD
499250	NOARGS		{ int|sys||minherit(void *addr, size_t len, \
500			    int inherit); }
501251	STD		{ int|freebsd_sys||rfork(int flags); }
502252	UNIMPL		openbsd_poll
503253	NOARGS		{ int|sys||issetugid(void); }
504254	NOARGS		{ int|sys||lchown(const char *path, int uid, int gid); }
505255	UNIMPL
506256	UNIMPL
507257	UNIMPL
508258	UNIMPL
509259	UNIMPL
510260	UNIMPL
511261	UNIMPL
512262	UNIMPL
513263	UNIMPL
514264	UNIMPL
515265	UNIMPL
516266	UNIMPL
517267	UNIMPL
518268	UNIMPL
519269	UNIMPL
520270	UNIMPL
521271	UNIMPL
522272	NOARGS		{ int|compat_30_sys||getdents(int fd, char *buf, size_t count); }
523273	UNIMPL
524274	NOARGS		{ int|sys||lchmod(const char *path, mode_t mode); }
525275	NOARGS		{ int|sys||lchown(const char *path, uid_t uid, \
526			    gid_t gid); } netbsd_lchown
527276	NOARGS		{ int|compat_50_sys||lutimes(const char *path, \
528			    const struct timeval50 *tptr); }
529277	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
530278	NOARGS		{ int|compat_30_sys|13|stat(const char *path, struct stat13 *ub); }
531279	NOARGS		{ int|compat_30_sys|13|fstat(int fd, struct stat13 *sb); }
532280	NOARGS		{ int|compat_30_sys|13|lstat(const char *path, struct stat13 *ub);}
533281	UNIMPL
534282	UNIMPL
535283	UNIMPL
536284	UNIMPL
537285	UNIMPL
538286	UNIMPL
539287	UNIMPL
540288	UNIMPL
541289	UNIMPL
542290	UNIMPL
543291	UNIMPL
544292	UNIMPL
545293	UNIMPL
546294	UNIMPL
547295	UNIMPL
548296	UNIMPL
549297	NOARGS		{ int|compat_20_sys||fhstatfs(const struct	\
550			    compat_30_fhandle *fhp, \
551			    struct statfs12 *buf); }
552298	NOARGS		{ int|compat_30_sys||fhopen(const	\
553			    struct compat_30_fhandle *fhp, int flags); }
554299	NOARGS		{ int|compat_30_sys||fhstat(const 	\
555			    struct cocmpat_30_fhandlez *fhp, 	\
556			    struct stat13 *sb); }
557; syscall numbers for FreeBSD
558300	UNIMPL		modnext
559301	UNIMPL		modstat
560302	UNIMPL		modfnext
561303	UNIMPL		modfind
562304	UNIMPL		kldload
563305	UNIMPL		kldunload
564306	UNIMPL		kldfind
565307	UNIMPL		kldnext
566308	UNIMPL		kldstat
567309	UNIMPL		kldfirstmod
568310	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
569311	UNIMPL		setresuid
570312	UNIMPL		setresgid
571313	UNIMPL		signanosleep
572314	UNIMPL		aio_return
573315	UNIMPL		aio_suspend
574316	UNIMPL		aio_cancel
575317	UNIMPL		aio_error
576318	UNIMPL		aio_read
577319	UNIMPL		aio_write
578320	UNIMPL		lio_listio
579321	NOARGS		{ void|freebsd_sys||yield(void); }
580322	UNIMPL		thr_sleep
581323	UNIMPL		thr_wakeup
582324	NOARGS		{ int|sys||mlockall(int flags); }
583325	NOARGS		{ int|sys||munlockall(void); }
584326	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
585327	STD		{ int|freebsd_sys||sched_setparam(pid_t pid, \
586			    const struct freebsd_sched_param *sp); }
587328	STD		{ int|freebsd_sys||sched_getparam(pid_t pid, \
588			    struct freebsd_sched_param *sp); }
589329	STD		{ int|freebsd_sys||sched_setscheduler(pid_t pid, \
590			    int policy, const struct sched_param *sp); }
591330	STD		{ int|freebsd_sys||sched_getscheduler(pid_t pid); }
592331	STD		{ int|freebsd_sys||sched_yield(void); }
593332	STD		{ int|freebsd_sys||sched_get_priority_max(int policy); }
594333	STD		{ int|freebsd_sys||sched_get_priority_min(int policy); }
595334	UNIMPL		sched_rr_get_interval
596335	STD		{ int|freebsd_sys||utrace(void *addr, size_t len); }
597336	UNIMPL		sendfile
598337	UNIMPL		kldsym
599338	UNIMPL		jail
600339	UNIMPL		pioctl
601340	NOARGS		{ int|sys|14|sigprocmask(int how, \
602			    const sigset_t *set, \
603			    sigset_t *oset); }
604341	NOARGS		{ int|sys|14|sigsuspend(const sigset_t *set); }
605342	STD		{ int|freebsd_sys||sigaction4(int signum, \
606			    const struct freebsd_sigaction4 *nsa, \
607			    struct freebsd_sigaction4 *osa); }
608343	NOARGS		{ int|sys|14|sigpending(const sigset_t *set); }
609344	UNIMPL		4.0 sigreturn
610345	UNIMPL		sigtimedwait
611346	UNIMPL		sigwaitinfo
612347	UNIMPL		__acl_get_file
613348	UNIMPL		__acl_set_file
614349	UNIMPL		__acl_get_fd
615350	UNIMPL		__acl_set_fd
616351	UNIMPL		__acl_delete_file
617352	UNIMPL		__acl_delete_fd
618353	UNIMPL		__acl_aclcheck_file
619354	UNIMPL		__acl_aclcheck_fd
620355	UNIMPL		extattrctl
621356	UNIMPL		extattr_set_file
622357	UNIMPL		extattr_get_file
623358	UNIMPL		extattr_delete_file
624359	UNIMPL		aio_waitcomplete
625360	UNIMPL		getresuid
626361	UNIMPL		getresgid
627362	UNIMPL		kqueue
628363	UNIMPL		kevent
629364	UNIMPL		__cap_get_proc
630365	UNIMPL		__cap_set_proc
631366	UNIMPL		__cap_get_fd
632367	UNIMPL		__cap_get_file
633368	UNIMPL		__cap_set_fd
634369	UNIMPL		__cap_set_file
635370	UNIMPL		lkmressym
636371	UNIMPL		extattr_set_fd
637372	UNIMPL		extattr_get_fd
638373	UNIMPL		extattr_delete_fd
639374	UNIMPL		__setugid
640375	UNIMPL		nfsclnt
641376	UNIMPL		eaccess
642377	UNIMPL		afs_syscall
643378	UNIMPL		nmount
644379	UNIMPL		kse_exit
645380	UNIMPL		kse_wakeup
646381	UNIMPL		kse_create
647382	UNIMPL		kse_thr_interrupt
648383	UNIMPL		kse_release
649384	UNIMPL		__mac_get_proc
650385	UNIMPL		__mac_set_proc
651386	UNIMPL		__mac_get_fd
652387	UNIMPL		__mac_get_file
653388	UNIMPL		__mac_set_fd
654389	UNIMPL		__mac_set_file
655390	UNIMPL		kenv
656391	NOARGS		{ int|sys||lchflags(const char *path, u_long flags); }
657392	NOARGS		{ int|sys||uuidgen(struct uuid *store, int count); }
658393	UNIMPL		sendfile
659394	UNIMPL		mac_syscall
660395	UNIMPL		getfsstat
661396	UNIMPL		statfs
662397	UNIMPL		fsstatfs
663398	UNIMPL		fhstatfs
664399	UNIMPL		nosys
665#if defined(P1003_1B_SEMAPHORE) || !defined(_KERNEL)
666400	NOARGS		{ int|sys||_ksem_close(intptr_t id); }
667401	NOARGS		{ int|sys||_ksem_post(intptr_t id); }
668402	NOARGS		{ int|sys||_ksem_wait(intptr_t id); }
669403	NOARGS		{ int|sys||_ksem_trywait(intptr_t id); }
670404	UNIMPL		ksem_init
671405	UNIMPL		ksem_open
672406	NOARGS		{ int|sys||_ksem_unlink(const char *name); }
673407	NOARGS		{ int|sys||_ksem_getvalue(intptr_t id, \
674			    unsigned int *value); }
675408	NOARGS		{ int|sys||_ksem_destroy(intptr_t id); }
676#else
677400	EXCL		ksem_close
678401	EXCL		ksem_post
679402	EXCL		ksem_wait
680403	EXCL		ksem_trywait
681404	EXCL		ksem_init
682405	EXCL		ksem_open
683406	EXCL		ksem_unlink
684407	EXCL		ksem_getvalue
685408	EXCL		ksem_destroy
686#endif
687409	UNIMPL		__mac_get_pid
688410	UNIMPL		__mac_get_link
689411	UNIMPL		__mac_set_link
690412	UNIMPL		extattr_set_link
691413	UNIMPL		extattr_get_link
692414	UNIMPL		extattr_delete_link
693415	UNIMPL		__mac_execve
694416	UNIMPL		sigaction
695417	UNIMPL		sigreturn
696418	UNIMPL		__xstat
697419	UNIMPL		__xfstat
698420	UNIMPL		__xlstat
699421	UNIMPL		getcontext
700422	UNIMPL		setcontext
701423	UNIMPL		swapcontext
702424	UNIMPL		swapoff
703425	UNIMPL		__acl_get_link
704426	UNIMPL		__acl_set_link
705427	UNIMPL		__acl_delete_link
706428	UNIMPL		__acl_aclcheck_link
707429	UNIMPL		sigwait
708430	UNIMPL		thr_create
709431	UNIMPL		thr_exit
710432	UNIMPL		thr_self
711433	UNIMPL		thr_kill
712434	UNIMPL		_umtx_lock
713435	UNIMPL		_umtx_unlock
714436	UNIMPL		jail_attach
715437	UNIMPL		extattr_list_fd
716438	UNIMPL		extattr_list_file
717439	UNIMPL		extattr_list_link
718