syscalls.master revision 1.57
11.57Schristos	$NetBSD: syscalls.master,v 1.57 2007/03/04 06:01:15 christos Exp $
21.1Smycroft
31.1Smycroft;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
41.1Smycroft
51.1Smycroft; NetBSD COMPAT_FREEBSD system call name/number "master" file.
61.1Smycroft; (See syscalls.conf to see what it is processed into.)
71.1Smycroft;
81.1Smycroft; Fields: number type [type-dependent ...]
91.1Smycroft;	number	system call number, must be in order
101.1Smycroft;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
111.1Smycroft;		the compatibility options defined in syscalls.conf.
121.1Smycroft;
131.1Smycroft; types:
141.1Smycroft;	STD	always included
151.1Smycroft;	OBSOL	obsolete, not included in system
161.1Smycroft;	UNIMPL	unimplemented, not included in system
171.1Smycroft;	NODEF	included, but don't define the syscall number
181.1Smycroft;	NOARGS	included, but don't define the syscall args structure
191.1Smycroft;
201.1Smycroft; The compat options are defined in the syscalls.conf file, and the
211.1Smycroft; compat option name is prefixed to the syscall name.  Other than
221.1Smycroft; that, they're like NODEF (for 'compat' options), or STD (for
231.1Smycroft; 'libcompat' options).
241.1Smycroft;
251.1Smycroft; The type-dependent arguments are as follows:
261.1Smycroft; For STD, NODEF, NOARGS, and compat syscalls:
271.1Smycroft;	{ pseudo-proto } [alias]
281.1Smycroft; For other syscalls:
291.1Smycroft;	[comment]
301.1Smycroft;
311.1Smycroft; #ifdef's, etc. may be included, and are copied to the output files.
321.15Sthorpej; #include's are copied to the syscall names and switch definition files only.
331.17Sthorpej
341.35Smrg#if defined(_KERNEL_OPT)
351.17Sthorpej#include "opt_ktrace.h"
361.18Sthorpej#include "opt_nfsserver.h"
371.29Sbjh21#include "opt_ntp.h"
381.20Stron#include "opt_sysv.h"
391.21Schristos#include "opt_compat_43.h"
401.42Sjdolecek#include "opt_posix.h"
411.15Sthorpej
421.15Sthorpej#include "fs_lfs.h"
431.15Sthorpej#include "fs_nfs.h"
441.32Smycroft#endif
451.1Smycroft
461.1Smycroft#include <sys/param.h>
471.1Smycroft#include <sys/systm.h>
481.1Smycroft#include <sys/signal.h>
491.1Smycroft#include <sys/mount.h>
501.1Smycroft#include <sys/syscallargs.h>
511.1Smycroft
521.49Schristos#include <compat/sys/signal.h>
531.49Schristos
541.1Smycroft#include <compat/freebsd/freebsd_syscallargs.h>
551.1Smycroft
561.1Smycroft#include <machine/freebsd_machdep.h>
571.32Smycroft
581.32Smycroft%%
591.1Smycroft
601.1Smycroft; Reserved/unimplemented system calls in the range 0-150 inclusive
611.1Smycroft; are reserved for use in future Berkeley releases.
621.1Smycroft; Additional system calls implemented in vendor and other
631.1Smycroft; redistributions should be placed in the reserved range at the end
641.1Smycroft; of the current calls.
651.1Smycroft
661.1Smycroft0	NOARGS		{ int sys_nosys(void); } syscall
671.1Smycroft1	NOARGS		{ int sys_exit(int rval); }
681.1Smycroft2	NOARGS		{ int sys_fork(void); }
691.1Smycroft3	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
701.1Smycroft4	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
711.22Schristos5	STD		{ int freebsd_sys_open(const char *path, int flags, \
721.1Smycroft			    int mode); }
731.1Smycroft6	NOARGS		{ int sys_close(int fd); }
741.1Smycroft7	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
751.1Smycroft			    struct rusage *rusage); }
761.22Schristos8	STD		{ int compat_43_freebsd_sys_creat(const char *path, \
771.1Smycroft			    int mode); } ocreat
781.22Schristos9	STD		{ int freebsd_sys_link(const char *path, \
791.22Schristos			    const char *link); }
801.22Schristos10	STD		{ int freebsd_sys_unlink(const char *path); }
811.1Smycroft11	OBSOL		execv
821.22Schristos12	STD		{ int freebsd_sys_chdir(const char *path); }
831.1Smycroft13	NOARGS		{ int sys_fchdir(int fd); }
841.22Schristos14	STD		{ int freebsd_sys_mknod(const char *path, int mode, \
851.1Smycroft			    int dev); }
861.22Schristos15	STD		{ int freebsd_sys_chmod(const char *path, int mode); }
871.22Schristos16	STD		{ int freebsd_sys_chown(const char *path, int uid, \
881.22Schristos			    int gid); }
891.1Smycroft17	NOARGS		{ int sys_obreak(char *nsize); } break
901.44Schristos18	NOARGS		{ int compat_20_sys_getfsstat(struct statfs12 *buf, \
911.44Schristos			    long bufsize, int flags); }
921.1Smycroft19	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
931.1Smycroft			    int whence); } olseek
941.33Smycroft20	NOARGS		{ pid_t sys_getpid_with_ppid(void); }
951.22Schristos21	STD		{ int freebsd_sys_mount(int type, const char *path, \
961.57Schristos			    int flags, void *data); }
971.22Schristos22	STD		{ int freebsd_sys_unmount(const char *path, \
981.22Schristos			    int flags); }
991.1Smycroft23	NOARGS		{ int sys_setuid(uid_t uid); }
1001.33Smycroft24	NOARGS		{ uid_t sys_getuid_with_euid(void); }
1011.1Smycroft25	NOARGS		{ uid_t sys_geteuid(void); }
1021.1Smycroft26	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
1031.57Schristos			    void *addr, int data); }
1041.1Smycroft27	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
1051.1Smycroft			    int flags); }
1061.57Schristos28	NOARGS		{ int sys_sendmsg(int s, void *msg, int flags); }
1071.57Schristos29	NOARGS		{ int sys_recvfrom(int s, void *buf, size_t len, \
1081.57Schristos			    int flags, void *from, int *fromlenaddr); }
1091.57Schristos30	NOARGS		{ int sys_accept(int s, void *name, int *anamelen); }
1101.57Schristos31	NOARGS		{ int sys_getpeername(int fdes, void *asa, \
1111.1Smycroft			    int *alen); }
1121.57Schristos32	NOARGS		{ int sys_getsockname(int fdes, void *asa, \
1131.1Smycroft			    int *alen); }
1141.22Schristos33	STD		{ int freebsd_sys_access(const char *path, int flags); }
1151.22Schristos34	STD		{ int freebsd_sys_chflags(const char *path, \
1161.22Schristos			    int flags); }
1171.1Smycroft35	NOARGS		{ int sys_fchflags(int fd, int flags); }
1181.1Smycroft36	NOARGS		{ int sys_sync(void); }
1191.1Smycroft37	NOARGS		{ int sys_kill(int pid, int signum); }
1201.22Schristos38	STD		{ int compat_43_freebsd_sys_stat(const char *path, \
1211.11Schristos			    struct stat43 *ub); } stat43
1221.3Smycroft39	NOARGS		{ pid_t sys_getppid(void); }
1231.22Schristos40	STD		{ int compat_43_freebsd_sys_lstat(const char *path, \
1241.11Schristos			    struct stat43 *ub); } lstat43
1251.1Smycroft41	NOARGS		{ int sys_dup(u_int fd); }
1261.1Smycroft42	NOARGS		{ int sys_pipe(void); }
1271.1Smycroft43	NOARGS		{ gid_t sys_getegid(void); }
1281.57Schristos44	NOARGS		{ int sys_profil(void *samples, u_int size, \
1291.1Smycroft			    u_int offset, u_int scale); }
1301.1Smycroft#ifdef KTRACE
1311.1Smycroft45	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
1321.1Smycroft			    int pid); }
1331.1Smycroft#else
1341.34Sjdolecek45	EXCL		ktrace
1351.1Smycroft#endif
1361.19Smycroft46	NOARGS		{ int compat_13_sys_sigaction(int signum, \
1371.19Smycroft			    const struct sigaction13 *nsa, \
1381.19Smycroft			    struct sigaction13 *osa); }
1391.33Smycroft47	NOARGS		{ gid_t sys_getgid_with_egid(void); }
1401.19Smycroft48	NOARGS		{ int compat_13_sys_sigprocmask(int how, \
1411.19Smycroft			    int mask); }
1421.5Schristos49	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
1431.40Sthorpej50	NOARGS		{ int sys___setlogin(char *namebuf); }
1441.1Smycroft51	NOARGS		{ int sys_acct(char *path); }
1451.19Smycroft52	NOARGS		{ int compat_13_sys_sigpending(void); }
1461.13Sveego53	NOARGS		{ int compat_13_sys_sigaltstack( \
1471.13Sveego			    const struct sigaltstack13 *nss, \
1481.13Sveego			    struct sigaltstack13 *oss); }
1491.1Smycroft54	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
1501.57Schristos			    void *data); }
1511.22Schristos55	NOARGS		{ int sys_reboot(int opt); } oreboot
1521.22Schristos56	STD		{ int freebsd_sys_revoke(const char *path); }
1531.22Schristos57	STD		{ int freebsd_sys_symlink(const char *path, \
1541.22Schristos			    const char *link); }
1551.22Schristos58	STD		{ int freebsd_sys_readlink(const char *path, \
1561.22Schristos			    char *buf, int count); }
1571.22Schristos59	STD		{ int freebsd_sys_execve(const char *path, \
1581.22Schristos			    char **argp, char **envp); }
1591.1Smycroft60	NOARGS		{ int sys_umask(int newmask); }
1601.22Schristos61	STD		{ int freebsd_sys_chroot(const char *path); }
1611.11Schristos62	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
1621.11Schristos			    fstat43
1631.1Smycroft63	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
1641.1Smycroft			    int *size, int arg); } ogetkerninfo
1651.1Smycroft64	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
1661.57Schristos65	STD		{ int freebsd_sys_msync(void *addr, size_t len, \
1671.1Smycroft			    int flags); }
1681.1Smycroft66	NOARGS		{ int sys_vfork(void); }
1691.1Smycroft67	OBSOL		vread
1701.1Smycroft68	OBSOL		vwrite
1711.24Skleink69	NOARGS		{ int sys_sbrk(intptr_t incr); }
1721.1Smycroft70	NOARGS		{ int sys_sstk(int incr); }
1731.57Schristos71	NOARGS		{ int compat_43_sys_mmap(void *addr, size_t len, \
1741.1Smycroft			    int prot, int flags, int fd, long pos); } ommap
1751.1Smycroft72	NOARGS		{ int sys_ovadvise(int anom); } vadvise
1761.57Schristos73	NOARGS		{ int sys_munmap(void *addr, size_t len); }
1771.57Schristos74	NOARGS		{ int sys_mprotect(void *addr, size_t len, \
1781.1Smycroft			    int prot); }
1791.57Schristos75	NOARGS		{ int sys_madvise(void *addr, size_t len, \
1801.1Smycroft			    int behav); }
1811.1Smycroft76	OBSOL		vhangup
1821.1Smycroft77	OBSOL		vlimit
1831.57Schristos78	NOARGS		{ int sys_mincore(void *addr, size_t len, char *vec); }
1841.1Smycroft79	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
1851.1Smycroft80	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
1861.1Smycroft81	NOARGS		{ int sys_getpgrp(void); }
1871.1Smycroft82	NOARGS		{ int sys_setpgid(int pid, int pgid); }
1881.1Smycroft83	NOARGS		{ int sys_setitimer(u_int which, \
1891.1Smycroft			    struct itimerval *itv, struct itimerval *oitv); }
1901.1Smycroft84	NOARGS		{ int compat_43_sys_wait(void); } owait
1911.7Sthorpej85	NOARGS		{ int compat_12_sys_swapon(char *name); }
1921.1Smycroft86	NOARGS		{ int sys_getitimer(u_int which, \
1931.1Smycroft			    struct itimerval *itv); }
1941.1Smycroft87	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
1951.1Smycroft			    u_int len); } ogethostname
1961.1Smycroft88	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
1971.1Smycroft			    u_int len); } osethostname
1981.1Smycroft89	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
1991.1Smycroft			    ogetdtablesize
2001.1Smycroft90	NOARGS		{ int sys_dup2(u_int from, u_int to); }
2011.1Smycroft91	UNIMPL		getdopt
2021.1Smycroft92	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
2031.1Smycroft93	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
2041.1Smycroft			    fd_set *ex, struct timeval *tv); }
2051.1Smycroft94	UNIMPL		setdopt
2061.1Smycroft95	NOARGS		{ int sys_fsync(int fd); }
2071.1Smycroft96	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
2081.52Smrg97	NOARGS		{ int compat_30_sys_socket(int domain, int type, int protocol); }
2091.57Schristos98	NOARGS		{ int sys_connect(int s, void *name, int namelen); }
2101.57Schristos99	NOARGS		{ int compat_43_sys_accept(int s, void *name, \
2111.1Smycroft			    int *anamelen); } oaccept
2121.1Smycroft100	NOARGS		{ int sys_getpriority(int which, int who); }
2131.57Schristos101	NOARGS		{ int compat_43_sys_send(int s, void *buf, int len, \
2141.1Smycroft			    int flags); } osend
2151.57Schristos102	NOARGS		{ int compat_43_sys_recv(int s, void *buf, int len, \
2161.1Smycroft			    int flags); } orecv
2171.1Smycroft103	STD		{ int freebsd_sys_sigreturn( \
2181.1Smycroft			    struct freebsd_sigcontext *scp); }
2191.57Schristos104	NOARGS		{ int sys_bind(int s, void *name, int namelen); }
2201.1Smycroft105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
2211.57Schristos			    void *val, int valsize); }
2221.1Smycroft106	NOARGS		{ int sys_listen(int s, int backlog); }
2231.1Smycroft107	OBSOL		vtimes
2241.1Smycroft108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
2251.1Smycroft			    struct sigvec *nsv, struct sigvec *osv); } osigvec
2261.1Smycroft109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
2271.1Smycroft110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
2281.19Smycroft111	NOARGS		{ int compat_13_sys_sigsuspend(int mask); }
2291.1Smycroft112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
2301.1Smycroft			    struct sigstack *oss); } osigstack
2311.1Smycroft113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
2321.1Smycroft			    struct omsghdr *msg, int flags); } orecvmsg
2331.57Schristos114	NOARGS		{ int compat_43_sys_sendmsg(int s, void *msg, \
2341.1Smycroft			    int flags); } osendmsg
2351.1Smycroft#ifdef TRACE
2361.1Smycroft115	NOARGS		{ int sys_vtrace(int request, int value); }
2371.1Smycroft#else
2381.1Smycroft115	OBSOL		vtrace
2391.1Smycroft#endif
2401.1Smycroft116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
2411.1Smycroft			    struct timezone *tzp); }
2421.1Smycroft117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
2431.1Smycroft118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
2441.57Schristos			    void *val, int *avalsize); }
2451.1Smycroft119	OBSOL		resuba
2461.1Smycroft120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
2471.1Smycroft			    u_int iovcnt); }
2481.1Smycroft121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
2491.1Smycroft			    u_int iovcnt); }
2501.1Smycroft122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
2511.1Smycroft			    struct timezone *tzp); }
2521.1Smycroft123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
2531.1Smycroft124	NOARGS		{ int sys_fchmod(int fd, int mode); }
2541.57Schristos125	NOARGS		{ int compat_43_sys_recvfrom(int s, void *buf, \
2551.57Schristos			    size_t len, int flags, void *from, \
2561.1Smycroft			    int *fromlenaddr); } orecvfrom
2571.4Smycroft126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
2581.4Smycroft127	NOARGS		{ int sys_setregid(int rgid, int egid); }
2591.22Schristos128	STD		{ int freebsd_sys_rename(const char *from, \
2601.22Schristos			    const char *to); }
2611.22Schristos129	STD		{ int compat_43_freebsd_sys_truncate(const char *path, \
2621.1Smycroft			    long length); } otruncate
2631.2Smycroft130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
2641.2Smycroft			    oftruncate
2651.2Smycroft131	NOARGS		{ int sys_flock(int fd, int how); }
2661.22Schristos132	STD		{ int freebsd_sys_mkfifo(const char *path, int mode); }
2671.57Schristos133	NOARGS		{ int sys_sendto(int s, void *buf, size_t len, \
2681.57Schristos			    int flags, void *to, int tolen); }
2691.1Smycroft134	NOARGS		{ int sys_shutdown(int s, int how); }
2701.1Smycroft135	NOARGS		{ int sys_socketpair(int domain, int type, \
2711.1Smycroft			    int protocol, int *rsv); }
2721.22Schristos136	STD		{ int freebsd_sys_mkdir(const char *path, int mode); }
2731.22Schristos137	STD		{ int freebsd_sys_rmdir(const char *path); }
2741.1Smycroft138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
2751.1Smycroft139	OBSOL		4.2 sigreturn
2761.1Smycroft140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
2771.1Smycroft			    struct timeval *olddelta); }
2781.57Schristos141	NOARGS		{ int compat_43_sys_getpeername(int fdes, void *asa, \
2791.1Smycroft			    int *alen); } ogetpeername
2801.1Smycroft142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
2811.1Smycroft143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
2821.1Smycroft			    osethostid
2831.1Smycroft144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
2841.10Smycroft			    struct orlimit *rlp); } ogetrlimit
2851.1Smycroft145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
2861.10Smycroft			    struct orlimit *rlp); } osetrlimit
2871.1Smycroft146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
2881.1Smycroft			    okillpg
2891.1Smycroft147	NOARGS		{ int sys_setsid(void); }
2901.1Smycroft148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
2911.57Schristos			    void *arg); }
2921.1Smycroft149	NOARGS		{ int compat_43_sys_quota(void); } oquota
2931.57Schristos150	NOARGS		{ int compat_43_sys_getsockname(int fdec, void *asa, \
2941.1Smycroft			    int *alen); } ogetsockname
2951.1Smycroft
2961.1Smycroft; Syscalls 151-180 inclusive are reserved for vendor-specific
2971.1Smycroft; system calls.  (This includes various calls added for compatibity
2981.1Smycroft; with other Unix variants.)
2991.1Smycroft; Some of these calls are now supported by BSD...
3001.27Stv151	UNIMPL		sem_lock
3011.27Stv152	UNIMPL		sem_wakeup
3021.27Stv153	UNIMPL		asyncdaemon
3031.1Smycroft154	UNIMPL
3041.6Sthorpej#if defined(NFS) || defined(NFSSERVER)
3051.57Schristos155	NOARGS		{ int sys_nfssvc(int flag, void *argp); }
3061.1Smycroft#else
3071.27Stv155	UNIMPL		nfssvc
3081.1Smycroft#endif
3091.1Smycroft156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
3101.1Smycroft			    u_int count, long *basep); } ogetdirentries
3111.22Schristos157	STD		{ int freebsd_sys_statfs(const char *path, \
3121.44Schristos			    struct statfs12 *buf); }
3131.44Schristos158	NOARGS		{ int compat_20_sys_fstatfs(int fd, \
3141.44Schristos			    struct statfs12 *buf); }
3151.1Smycroft159	UNIMPL
3161.1Smycroft160	UNIMPL
3171.6Sthorpej#ifdef NFS
3181.22Schristos161	STD		{ int freebsd_sys_getfh(const char *fname, \
3191.53Smartin			    struct compat_30_fhandle *fhp); }
3201.1Smycroft#else
3211.1Smycroft161	UNIMPL		getfh
3221.1Smycroft#endif
3231.1Smycroft162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
3241.1Smycroft			    int len); }
3251.1Smycroft163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
3261.1Smycroft			    int len); }
3271.1Smycroft164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
3281.1Smycroft165	NOARGS		{ int sys_sysarch(int op, char *parms); }
3291.1Smycroft166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
3301.1Smycroft			    struct freebsd_rtprio *rtp); }
3311.1Smycroft167	UNIMPL
3321.1Smycroft168	UNIMPL
3331.1Smycroft; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
3341.37Seeh#if defined(SYSVSEM) && !defined(_LP64)
3351.14Smycroft169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
3361.1Smycroft			    int a4, int a5); }
3371.1Smycroft#else
3381.1Smycroft169	UNIMPL		1.0 semsys
3391.1Smycroft#endif
3401.1Smycroft; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
3411.37Seeh#if defined(SYSVMSG) && !defined(_LP64)
3421.14Smycroft170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
3431.1Smycroft			    int a4, int a5, int a6); }
3441.1Smycroft#else
3451.1Smycroft170	UNIMPL		1.0 msgsys
3461.1Smycroft#endif
3471.1Smycroft; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
3481.37Seeh#if defined(SYSVSHM) && !defined(_LP64)
3491.14Smycroft171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
3501.1Smycroft			    int a4); }
3511.1Smycroft#else
3521.1Smycroft171	UNIMPL		1.0 shmsys
3531.1Smycroft#endif
3541.1Smycroft172	UNIMPL
3551.27Stv173	NOARGS		{ ssize_t sys_pread(int fd, void *buf, \
3561.27Stv			    size_t nbyte, int pad, off_t offset); }
3571.27Stv174	NOARGS		{ ssize_t sys_pwrite(int fd, const void *buf, \
3581.27Stv			    size_t nbyte, int pad, off_t offset); }
3591.1Smycroft175	UNIMPL
3601.30Sitojun#ifdef NTP
3611.1Smycroft176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
3621.29Sbjh21#else
3631.29Sbjh21176     EXCL            ntp_adjtime
3641.29Sbjh21#endif
3651.27Stv177	UNIMPL		sfork
3661.27Stv178	UNIMPL		getdescriptor
3671.27Stv179	UNIMPL		setdescriptor
3681.1Smycroft180	UNIMPL
3691.1Smycroft
3701.1Smycroft; Syscalls 180-199 are used by/reserved for BSD
3711.1Smycroft181	NOARGS		{ int sys_setgid(gid_t gid); }
3721.1Smycroft182	NOARGS		{ int sys_setegid(gid_t egid); }
3731.1Smycroft183	NOARGS		{ int sys_seteuid(uid_t euid); }
3741.1Smycroft#ifdef LFS
3751.23Sdrochner184	NOARGS		{ int sys_lfs_bmapv(fsid_t *fsidp, \
3761.1Smycroft			    struct block_info *blkiov, int blkcnt); }
3771.23Sdrochner185	NOARGS		{ int sys_lfs_markv(fsid_t *fsidp, \
3781.1Smycroft			    struct block_info *blkiov, int blkcnt); }
3791.23Sdrochner186	NOARGS		{ int sys_lfs_segclean(fsid_t *fsidp, u_long segment); }
3801.23Sdrochner187	NOARGS		{ int sys_lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
3811.1Smycroft#else
3821.1Smycroft184	UNIMPL
3831.1Smycroft185	UNIMPL
3841.1Smycroft186	UNIMPL
3851.1Smycroft187	UNIMPL
3861.1Smycroft#endif
3871.22Schristos188	STD		{ int freebsd_sys_stat(const char *path, \
3881.12Schristos			    struct stat12 *ub); }
3891.12Schristos189	NOARGS		{ int compat_12_sys_fstat(int fd, \
3901.12Schristos			    struct stat12 *sb); }
3911.22Schristos190	STD		{ int freebsd_sys_lstat(const char *path, \
3921.12Schristos			    struct stat12 *ub); }
3931.22Schristos191	STD		{ int freebsd_sys_pathconf(const char *path, \
3941.22Schristos			    int name); }
3951.1Smycroft192	NOARGS		{ int sys_fpathconf(int fd, int name); }
3961.1Smycroft193	UNIMPL
3971.1Smycroft194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
3981.1Smycroft195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
3991.8Sfvdl196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
4001.1Smycroft			    u_int count, long *basep); }
4011.57Schristos197	STD		{ void *freebsd_sys_mmap(void *addr, size_t len, \
4021.41Spooka			    int prot, int flags, int fd, long pad, off_t pos); }
4031.1Smycroft198	NOARGS		{ int sys_nosys(void); } __syscall
4041.1Smycroft199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
4051.1Smycroft			    int whence); }
4061.22Schristos200	STD		{ int freebsd_sys_truncate(const char *path, int pad, \
4071.1Smycroft			    off_t length); }
4081.1Smycroft201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
4091.47Sheas202	STD		{ int freebsd_sys_sysctl(int *name, u_int namelen, \
4101.1Smycroft			    void *old, size_t *oldlenp, void *new, \
4111.1Smycroft			    size_t newlen); }
4121.57Schristos203	NOARGS		{ int sys_mlock(void *addr, size_t len); }
4131.57Schristos204	NOARGS		{ int sys_munlock(void *addr, size_t len); }
4141.1Smycroft#ifdef FREEBSD_BASED_ON_44LITE_R2
4151.1Smycroft205	STD		{ int freebsd_sys_undelete(char *path); }
4161.1Smycroft#else
4171.27Stv205	UNIMPL		undelete
4181.1Smycroft#endif
4191.22Schristos206	NOARGS		{ int sys_futimes(int fd, const struct timeval *tptr); }
4201.22Schristos207	NOARGS		{ pid_t sys_getpgid(pid_t pid); }
4211.22Schristos#if 0
4221.22Schristos208	NOARGS		{ int sys_reboot(int opt, char *bootstr); }
4231.22Schristos#else
4241.22Schristos208	UNIMPL		newreboot
4251.22Schristos#endif
4261.22Schristos209	NOARGS		{ int sys_poll(struct pollfd *fds, u_int nfds, \
4271.22Schristos			    int timeout); }
4281.1Smycroft;
4291.1Smycroft; Syscalls 210-219 are reserved for dynamically loaded syscalls
4301.1Smycroft;
4311.1Smycroft210	UNIMPL
4321.1Smycroft211	UNIMPL
4331.1Smycroft212	UNIMPL
4341.1Smycroft213	UNIMPL
4351.1Smycroft214	UNIMPL
4361.1Smycroft215	UNIMPL
4371.1Smycroft216	UNIMPL
4381.1Smycroft217	UNIMPL
4391.1Smycroft218	UNIMPL
4401.1Smycroft219	UNIMPL
4411.9Senami;
4421.9Senami; Syscalls 220-239 are reserved for syscalls imported from NetBSD
4431.9Senami;
4441.22Schristos#ifdef SYSVSEM
4451.25Sthorpej220	NOARGS		{ int compat_14_sys___semctl(int semid, int semnum, \
4461.25Sthorpej			    int cmd, union __semun *arg); }
4471.22Schristos221	NOARGS		{ int sys_semget(key_t key, int nsems, int semflg); }
4481.22Schristos222	NOARGS		{ int sys_semop(int semid, struct sembuf *sops, \
4491.22Schristos			    u_int nsops); }
4501.22Schristos223	NOARGS		{ int sys_semconfig(int flag); }
4511.22Schristos#else
4521.22Schristos220	UNIMPL		semctl
4531.22Schristos221	UNIMPL		semget
4541.22Schristos222	UNIMPL		semop
4551.22Schristos223	UNIMPL		semconfig
4561.22Schristos#endif
4571.22Schristos#ifdef SYSVMSG
4581.25Sthorpej224	NOARGS		{ int compat_14_sys_msgctl(int msqid, int cmd, \
4591.25Sthorpej			    struct msqid14_ds *buf); }
4601.22Schristos225	NOARGS		{ int sys_msgget(key_t key, int msgflg); }
4611.22Schristos226	NOARGS		{ int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \
4621.22Schristos			    int msgflg); }
4631.22Schristos227	NOARGS		{ int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
4641.22Schristos			    long msgtyp, int msgflg); }
4651.22Schristos#else
4661.22Schristos224	UNIMPL		msgctl
4671.22Schristos225	UNIMPL		msgget
4681.22Schristos226	UNIMPL		msgsnd
4691.22Schristos227	UNIMPL		msgrcv
4701.22Schristos#endif
4711.22Schristos#ifdef SYSVSHM
4721.22Schristos228	NOARGS		{ int sys_shmat(int shmid, void *shmaddr, int shmflg); }
4731.25Sthorpej229	NOARGS		{ int compat_14_sys_shmctl(int shmid, int cmd, \
4741.25Sthorpej			    struct shmid_ds14 *buf); }
4751.22Schristos230	NOARGS		{ int sys_shmdt(void *shmaddr); }
4761.22Schristos231	NOARGS		{ int sys_shmget(key_t key, int size, int shmflg); }
4771.22Schristos#else
4781.22Schristos228	UNIMPL		shmat
4791.22Schristos229	UNIMPL		shmctl
4801.22Schristos230	UNIMPL		shmdt
4811.22Schristos231	UNIMPL		shmget
4821.22Schristos#endif
4831.22Schristos;
4841.22Schristos; XXXX
4851.22Schristos232	NOARGS		{ int sys_clock_gettime(clockid_t clock_id, \
4861.22Schristos			    struct timespec *tp); }
4871.22Schristos233	NOARGS		{ int sys_clock_settime(clockid_t clock_id, \
4881.22Schristos			    const struct timespec *tp); }
4891.22Schristos234	NOARGS		{ int sys_clock_getres(clockid_t clock_id, \
4901.22Schristos			    struct timespec *tp); }
4911.22Schristos235	UNIMPL		timer_create
4921.22Schristos236	UNIMPL		timer_delete
4931.22Schristos237	UNIMPL		timer_settime
4941.22Schristos238	UNIMPL		timer_gettime
4951.22Schristos239	UNIMPL		timer_getoverrun
4961.22Schristos240	NOARGS		{ int sys_nanosleep(const struct timespec *rqtp, \
4971.22Schristos			    struct timespec *rmtp); }
4981.9Senami241	UNIMPL
4991.9Senami242	UNIMPL
5001.9Senami243	UNIMPL
5011.9Senami244	UNIMPL
5021.9Senami245	UNIMPL
5031.9Senami246	UNIMPL
5041.9Senami247	UNIMPL
5051.9Senami248	UNIMPL
5061.9Senami249	UNIMPL
5071.22Schristos; syscall numbers initially used in OpenBSD
5081.36Sjdolecek250	NOARGS		{ int sys_minherit(void *addr, size_t len, \
5091.36Sjdolecek			    int inherit); }
5101.38Spooka251	STD		{ int freebsd_sys_rfork(int flags); }
5111.22Schristos252	UNIMPL		openbsd_poll
5121.26Sminoura253	NOARGS		{ int sys_issetugid(void); }
5131.22Schristos254	STD		{ int freebsd_sys_lchown(const char *path, int uid, \
5141.9Senami			    int gid); }
5151.22Schristos255	UNIMPL
5161.22Schristos256	UNIMPL
5171.22Schristos257	UNIMPL
5181.22Schristos258	UNIMPL
5191.22Schristos259	UNIMPL
5201.22Schristos260	UNIMPL
5211.22Schristos261	UNIMPL
5221.22Schristos262	UNIMPL
5231.22Schristos263	UNIMPL
5241.22Schristos264	UNIMPL
5251.22Schristos265	UNIMPL
5261.22Schristos266	UNIMPL
5271.22Schristos267	UNIMPL
5281.22Schristos268	UNIMPL
5291.22Schristos269	UNIMPL
5301.22Schristos270	UNIMPL
5311.22Schristos271	UNIMPL
5321.48Schristos272	NOARGS		{ int compat_30_sys_getdents(int fd, char *buf, size_t count); }
5331.22Schristos273	UNIMPL
5341.22Schristos274	NOARGS		{ int sys_lchmod(const char *path, mode_t mode); }
5351.22Schristos275	NOARGS		{ int sys_lchown(const char *path, uid_t uid, \
5361.22Schristos			    gid_t gid); } netbsd_lchown
5371.22Schristos276	NOARGS		{ int sys_lutimes(const char *path, \
5381.22Schristos			    const struct timeval *tptr); }
5391.22Schristos277	NOARGS		{ int sys___msync13(void *addr, size_t len, int flags); }
5401.51Schristos278	NOARGS		{ int compat_30_sys___stat13(const char *path, struct stat13 *ub); }
5411.51Schristos279	NOARGS		{ int compat_30_sys___fstat13(int fd, struct stat13 *sb); }
5421.51Schristos280	NOARGS		{ int compat_30_sys___lstat13(const char *path, struct stat13 *ub);}
5431.22Schristos281	UNIMPL
5441.22Schristos282	UNIMPL
5451.22Schristos283	UNIMPL
5461.22Schristos284	UNIMPL
5471.22Schristos285	UNIMPL
5481.22Schristos286	UNIMPL
5491.22Schristos287	UNIMPL
5501.22Schristos288	UNIMPL
5511.22Schristos289	UNIMPL
5521.22Schristos290	UNIMPL
5531.22Schristos291	UNIMPL
5541.22Schristos292	UNIMPL
5551.22Schristos293	UNIMPL
5561.22Schristos294	UNIMPL
5571.22Schristos295	UNIMPL
5581.22Schristos296	UNIMPL
5591.53Smartin297	NOARGS		{ int compat_20_sys_fhstatfs(const struct	\
5601.53Smartin			    compat_30_fhandle *fhp, \
5611.44Schristos			    struct statfs12 *buf); }
5621.53Smartin298	NOARGS		{ int compat_30_sys_fhopen(const	\
5631.53Smartin			    struct compat_30_fhandle *fhp, int flags); }
5641.53Smartin299	NOARGS		{ int compat_30_sys_fhstat(const 	\
5651.53Smartin			    struct cocmpat_30_fhandlez *fhp, 	\
5661.51Schristos			    struct stat13 *sb); }
5671.22Schristos; syscall numbers for FreeBSD
5681.22Schristos300	UNIMPL		modnext
5691.22Schristos301	UNIMPL		modstat
5701.22Schristos302	UNIMPL		modfnext
5711.22Schristos303	UNIMPL		modfind
5721.22Schristos304	UNIMPL		kldload
5731.22Schristos305	UNIMPL		kldunload
5741.22Schristos306	UNIMPL		kldfind
5751.22Schristos307	UNIMPL		kldnext
5761.22Schristos308	UNIMPL		kldstat
5771.22Schristos309	UNIMPL		kldfirstmod
5781.27Stv310	NOARGS		{ pid_t sys_getsid(pid_t pid); }
5791.22Schristos311	UNIMPL		setresuid
5801.22Schristos312	UNIMPL		setresgid
5811.22Schristos313	UNIMPL		signanosleep
5821.22Schristos314	UNIMPL		aio_return
5831.22Schristos315	UNIMPL		aio_suspend
5841.22Schristos316	UNIMPL		aio_cancel
5851.22Schristos317	UNIMPL		aio_error
5861.22Schristos318	UNIMPL		aio_read
5871.22Schristos319	UNIMPL		aio_write
5881.22Schristos320	UNIMPL		lio_listio
5891.39Sgmcgarry321	NOARGS		{ void freebsd_sys_yield(void); }
5901.22Schristos322	UNIMPL		thr_sleep
5911.22Schristos323	UNIMPL		thr_wakeup
5921.27Stv324	NOARGS		{ int sys_mlockall(int flags); }
5931.27Stv325	NOARGS		{ int sys_munlockall(void); }
5941.27Stv326	NOARGS		{ int sys___getcwd(char *bufp, size_t length); }
5951.39Sgmcgarry327	STD		{ int freebsd_sys_sched_setparam(pid_t pid, \
5961.39Sgmcgarry			    const struct freebsd_sched_param *sp); }
5971.39Sgmcgarry328	STD		{ int freebsd_sys_sched_getparam(pid_t pid, \
5981.39Sgmcgarry			    struct freebsd_sched_param *sp); }
5991.39Sgmcgarry329	STD		{ int freebsd_sys_sched_setscheduler(pid_t pid, \
6001.39Sgmcgarry			    int policy, const struct sched_param *sp); }
6011.39Sgmcgarry330	STD		{ int freebsd_sys_sched_getscheduler(pid_t pid); }
6021.39Sgmcgarry331	STD		{ int freebsd_sys_sched_yield(void); }
6031.39Sgmcgarry332	STD		{ int freebsd_sys_sched_get_priority_max(int policy); }
6041.39Sgmcgarry333	STD		{ int freebsd_sys_sched_get_priority_min(int policy); }
6051.22Schristos334	UNIMPL		sched_rr_get_interval
6061.34Sjdolecek335	STD		{ int freebsd_sys_utrace(void *addr, size_t len); }
6071.22Schristos336	UNIMPL		sendfile
6081.22Schristos337	UNIMPL		kldsym
6091.27Stv338	UNIMPL		jail
6101.27Stv339	UNIMPL		pioctl
6111.28Sonoe340	NOARGS		{ int sys___sigprocmask14(int how, \
6121.28Sonoe			    const sigset_t *set, \
6131.28Sonoe			    sigset_t *oset); }
6141.28Sonoe341	NOARGS		{ int sys___sigsuspend14(const sigset_t *set); }
6151.28Sonoe342	STD		{ int freebsd_sys_sigaction4(int signum, \
6161.28Sonoe			    const struct freebsd_sigaction4 *nsa, \
6171.28Sonoe			    struct freebsd_sigaction4 *osa); }
6181.28Sonoe343	NOARGS		{ int sys___sigpending14(const sigset_t *set); }
6191.27Stv344	UNIMPL		4.0 sigreturn
6201.27Stv345	UNIMPL		sigtimedwait
6211.27Stv346	UNIMPL		sigwaitinfo
6221.27Stv347	UNIMPL		__acl_get_file
6231.27Stv348	UNIMPL		__acl_set_file
6241.27Stv349	UNIMPL		__acl_get_fd
6251.27Stv350	UNIMPL		__acl_set_fd
6261.27Stv351	UNIMPL		__acl_delete_file
6271.27Stv352	UNIMPL		__acl_delete_fd
6281.27Stv353	UNIMPL		__acl_aclcheck_file
6291.27Stv354	UNIMPL		__acl_aclcheck_fd
6301.27Stv355	UNIMPL		extattrctl
6311.27Stv356	UNIMPL		extattr_set_file
6321.27Stv357	UNIMPL		extattr_get_file
6331.27Stv358	UNIMPL		extattr_delete_file
6341.27Stv359	UNIMPL		aio_waitcomplete
6351.27Stv360	UNIMPL		getresuid
6361.27Stv361	UNIMPL		getresgid
6371.27Stv362	UNIMPL		kqueue
6381.27Stv363	UNIMPL		kevent
6391.42Sjdolecek364	UNIMPL		__cap_get_proc
6401.42Sjdolecek365	UNIMPL		__cap_set_proc
6411.42Sjdolecek366	UNIMPL		__cap_get_fd
6421.42Sjdolecek367	UNIMPL		__cap_get_file
6431.42Sjdolecek368	UNIMPL		__cap_set_fd
6441.42Sjdolecek369	UNIMPL		__cap_set_file
6451.42Sjdolecek370	UNIMPL		lkmressym
6461.42Sjdolecek371	UNIMPL		extattr_set_fd
6471.42Sjdolecek372	UNIMPL		extattr_get_fd
6481.42Sjdolecek373	UNIMPL		extattr_delete_fd
6491.42Sjdolecek374	UNIMPL		__setugid
6501.42Sjdolecek375	UNIMPL		nfsclnt
6511.42Sjdolecek376	UNIMPL		eaccess
6521.42Sjdolecek377	UNIMPL		afs_syscall
6531.42Sjdolecek378	UNIMPL		nmount
6541.42Sjdolecek379	UNIMPL		kse_exit
6551.42Sjdolecek380	UNIMPL		kse_wakeup
6561.42Sjdolecek381	UNIMPL		kse_create
6571.42Sjdolecek382	UNIMPL		kse_thr_interrupt
6581.42Sjdolecek383	UNIMPL		kse_release
6591.42Sjdolecek384	UNIMPL		__mac_get_proc
6601.42Sjdolecek385	UNIMPL		__mac_set_proc
6611.42Sjdolecek386	UNIMPL		__mac_get_fd
6621.42Sjdolecek387	UNIMPL		__mac_get_file
6631.42Sjdolecek388	UNIMPL		__mac_set_fd
6641.42Sjdolecek389	UNIMPL		__mac_set_file
6651.42Sjdolecek390	UNIMPL		kenv
6661.42Sjdolecek391	NOARGS		{ int sys_lchflags(const char *path, u_long flags); }
6671.43Stsarna392	NOARGS		{ int sys_uuidgen(struct uuid *store, int count); }
6681.42Sjdolecek393	UNIMPL		sendfile
6691.42Sjdolecek394	UNIMPL		mac_syscall
6701.42Sjdolecek395	UNIMPL		getfsstat
6711.42Sjdolecek396	UNIMPL		statfs
6721.42Sjdolecek397	UNIMPL		fsstatfs
6731.42Sjdolecek398	UNIMPL		fhstatfs
6741.42Sjdolecek399	UNIMPL		nosys
6751.42Sjdolecek#if defined(P1003_1B_SEMAPHORE) || !defined(_KERNEL)
6761.42Sjdolecek400	NOARGS		{ int sys__ksem_close(semid_t id); }
6771.42Sjdolecek401	NOARGS		{ int sys__ksem_post(semid_t id); }
6781.42Sjdolecek402	NOARGS		{ int sys__ksem_wait(semid_t id); }
6791.42Sjdolecek403	NOARGS		{ int sys__ksem_trywait(semid_t id); }
6801.42Sjdolecek404	UNIMPL		ksem_init
6811.42Sjdolecek405	UNIMPL		ksem_open
6821.42Sjdolecek406	NOARGS		{ int sys__ksem_unlink(const char *name); }
6831.42Sjdolecek407	NOARGS		{ int sys__ksem_getvalue(semid_t id, \
6841.42Sjdolecek			    unsigned int *value); }
6851.42Sjdolecek408	NOARGS		{ int sys__ksem_destroy(semid_t id); }
6861.42Sjdolecek#else
6871.42Sjdolecek400	EXCL		ksem_close
6881.42Sjdolecek401	EXCL		ksem_post
6891.42Sjdolecek402	EXCL		ksem_wait
6901.42Sjdolecek403	EXCL		ksem_trywait
6911.42Sjdolecek404	EXCL		ksem_init
6921.42Sjdolecek405	EXCL		ksem_open
6931.42Sjdolecek406	EXCL		ksem_unlink
6941.42Sjdolecek407	EXCL		ksem_getvalue
6951.42Sjdolecek408	EXCL		ksem_destroy
6961.42Sjdolecek#endif
6971.42Sjdolecek409	UNIMPL		__mac_get_pid
6981.42Sjdolecek410	UNIMPL		__mac_get_link
6991.42Sjdolecek411	UNIMPL		__mac_set_link
7001.42Sjdolecek412	UNIMPL		extattr_set_link
7011.42Sjdolecek413	UNIMPL		extattr_get_link
7021.42Sjdolecek414	UNIMPL		extattr_delete_link
7031.42Sjdolecek415	UNIMPL		__mac_execve
7041.42Sjdolecek416	UNIMPL		sigaction
7051.42Sjdolecek417	UNIMPL		sigreturn
7061.42Sjdolecek418	UNIMPL		__xstat
7071.42Sjdolecek419	UNIMPL		__xfstat
7081.42Sjdolecek420	UNIMPL		__xlstat
7091.42Sjdolecek421	UNIMPL		getcontext
7101.42Sjdolecek422	UNIMPL		setcontext
7111.42Sjdolecek423	UNIMPL		swapcontext
7121.42Sjdolecek424	UNIMPL		swapoff
7131.42Sjdolecek425	UNIMPL		__acl_get_link
7141.42Sjdolecek426	UNIMPL		__acl_set_link
7151.42Sjdolecek427	UNIMPL		__acl_delete_link
7161.42Sjdolecek428	UNIMPL		__acl_aclcheck_link
7171.42Sjdolecek429	UNIMPL		sigwait
7181.42Sjdolecek430	UNIMPL		thr_create
7191.42Sjdolecek431	UNIMPL		thr_exit
7201.42Sjdolecek432	UNIMPL		thr_self
7211.42Sjdolecek433	UNIMPL		thr_kill
7221.42Sjdolecek434	UNIMPL		_umtx_lock
7231.42Sjdolecek435	UNIMPL		_umtx_unlock
7241.42Sjdolecek436	UNIMPL		jail_attach
7251.42Sjdolecek437	UNIMPL		extattr_list_fd
7261.42Sjdolecek438	UNIMPL		extattr_list_file
7271.42Sjdolecek439	UNIMPL		extattr_list_link
728