syscalls.master revision 1.16
1	$NetBSD: syscalls.master,v 1.16 1998/05/02 18:14:06 christos 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#include "fs_lfs.h"
35#include "fs_nfs.h"
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/signal.h>
40#include <sys/mount.h>
41#include <sys/syscallargs.h>
42
43#include <compat/freebsd/freebsd_syscallargs.h>
44
45#include <machine/freebsd_machdep.h>
46
47; Reserved/unimplemented system calls in the range 0-150 inclusive
48; are reserved for use in future Berkeley releases.
49; Additional system calls implemented in vendor and other
50; redistributions should be placed in the reserved range at the end
51; of the current calls.
52
530	NOARGS		{ int sys_nosys(void); } syscall
541	NOARGS		{ int sys_exit(int rval); }
552	NOARGS		{ int sys_fork(void); }
563	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
574	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
585	STD		{ int freebsd_sys_open(char *path, int flags, \
59			    int mode); }
606	NOARGS		{ int sys_close(int fd); }
617	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
62			    struct rusage *rusage); }
638	STD		{ int compat_43_freebsd_sys_creat(char *path, \
64			    int mode); } ocreat
659	STD		{ int freebsd_sys_link(char *path, char *link); }
6610	STD		{ int freebsd_sys_unlink(char *path); }
6711	OBSOL		execv
6812	STD		{ int freebsd_sys_chdir(char *path); }
6913	NOARGS		{ int sys_fchdir(int fd); }
7014	STD		{ int freebsd_sys_mknod(char *path, int mode, \
71			    int dev); }
7215	STD		{ int freebsd_sys_chmod(char *path, int mode); }
7316	STD		{ int freebsd_sys_chown(char *path, int uid, int gid); }
7417	NOARGS		{ int sys_obreak(char *nsize); } break
7518	NOARGS		{ int sys_getfsstat(struct statfs *buf, long bufsize, \
76			    int flags); }
7719	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
78			    int whence); } olseek
7920	NOARGS		{ pid_t sys_getpid(void); }
8021	STD		{ int freebsd_sys_mount(int type, char *path, \
81			    int flags, caddr_t data); }
8222	STD		{ int freebsd_sys_unmount(char *path, int flags); }
8323	NOARGS		{ int sys_setuid(uid_t uid); }
8424	NOARGS		{ uid_t sys_getuid(void); }
8525	NOARGS		{ uid_t sys_geteuid(void); }
8626	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
87			    caddr_t addr, int data); }
8827	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
89			    int flags); }
9028	NOARGS		{ int sys_sendmsg(int s, caddr_t msg, int flags); }
9129	NOARGS		{ int sys_recvfrom(int s, caddr_t buf, size_t len, \
92			    int flags, caddr_t from, int *fromlenaddr); }
9330	NOARGS		{ int sys_accept(int s, caddr_t name, int *anamelen); }
9431	NOARGS		{ int sys_getpeername(int fdes, caddr_t asa, \
95			    int *alen); }
9632	NOARGS		{ int sys_getsockname(int fdes, caddr_t asa, \
97			    int *alen); }
9833	STD		{ int freebsd_sys_access(char *path, int flags); }
9934	STD		{ int freebsd_sys_chflags(char *path, int flags); }
10035	NOARGS		{ int sys_fchflags(int fd, int flags); }
10136	NOARGS		{ int sys_sync(void); }
10237	NOARGS		{ int sys_kill(int pid, int signum); }
10338	STD		{ int compat_43_freebsd_sys_stat(char *path, \
104			    struct stat43 *ub); } stat43
10539	NOARGS		{ pid_t sys_getppid(void); }
10640	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
107			    struct stat43 *ub); } lstat43
10841	NOARGS		{ int sys_dup(u_int fd); }
10942	NOARGS		{ int sys_pipe(void); }
11043	NOARGS		{ gid_t sys_getegid(void); }
11144	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
112			    u_int offset, u_int scale); }
113#ifdef KTRACE
11445	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
115			    int pid); }
116#else
11745	UNIMPL		ktrace
118#endif
11946	NOARGS		{ int sys_sigaction(int signum, struct sigaction *nsa, \
120			    struct sigaction *osa); }
12147	NOARGS		{ gid_t sys_getgid(void); }
12248	NOARGS		{ int sys_sigprocmask(int how, sigset_t mask); }
12349	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
12450	NOARGS		{ int sys_setlogin(char *namebuf); }
12551	NOARGS		{ int sys_acct(char *path); }
12652	NOARGS		{ int sys_sigpending(void); }
12753	NOARGS		{ int compat_13_sys_sigaltstack( \
128			    const struct sigaltstack13 *nss, \
129			    struct sigaltstack13 *oss); }
13054	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
131			    caddr_t data); }
13255	NOARGS		{ int sys_reboot(int opt); }
13356	STD		{ int freebsd_sys_revoke(char *path); }
13457	STD		{ int freebsd_sys_symlink(char *path, char *link); }
13558	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
136			    int count); }
13759	STD		{ int freebsd_sys_execve(char *path, char **argp, \
138			    char **envp); }
13960	NOARGS		{ int sys_umask(int newmask); }
14061	STD		{ int freebsd_sys_chroot(char *path); }
14162	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
142			    fstat43
14363	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
144			    int *size, int arg); } ogetkerninfo
14564	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
14665	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
147			    int flags); }
14866	NOARGS		{ int sys_vfork(void); }
14967	OBSOL		vread
15068	OBSOL		vwrite
15169	NOARGS		{ int sys_sbrk(int incr); }
15270	NOARGS		{ int sys_sstk(int incr); }
15371	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
154			    int prot, int flags, int fd, long pos); } ommap
15572	NOARGS		{ int sys_ovadvise(int anom); } vadvise
15673	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
15774	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
158			    int prot); }
15975	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
160			    int behav); }
16176	OBSOL		vhangup
16277	OBSOL		vlimit
16378	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
16479	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
16580	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
16681	NOARGS		{ int sys_getpgrp(void); }
16782	NOARGS		{ int sys_setpgid(int pid, int pgid); }
16883	NOARGS		{ int sys_setitimer(u_int which, \
169			    struct itimerval *itv, struct itimerval *oitv); }
17084	NOARGS		{ int compat_43_sys_wait(void); } owait
17185	NOARGS		{ int compat_12_sys_swapon(char *name); }
17286	NOARGS		{ int sys_getitimer(u_int which, \
173			    struct itimerval *itv); }
17487	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
175			    u_int len); } ogethostname
17688	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
177			    u_int len); } osethostname
17889	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
179			    ogetdtablesize
18090	NOARGS		{ int sys_dup2(u_int from, u_int to); }
18191	UNIMPL		getdopt
18292	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
18393	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
184			    fd_set *ex, struct timeval *tv); }
18594	UNIMPL		setdopt
18695	NOARGS		{ int sys_fsync(int fd); }
18796	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
18897	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
18998	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
19099	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
191			    int *anamelen); } oaccept
192100	NOARGS		{ int sys_getpriority(int which, int who); }
193101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
194			    int flags); } osend
195102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
196			    int flags); } orecv
197103	STD		{ int freebsd_sys_sigreturn( \
198			    struct freebsd_sigcontext *scp); }
199104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
200105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
201			    caddr_t val, int valsize); }
202106	NOARGS		{ int sys_listen(int s, int backlog); }
203107	OBSOL		vtimes
204108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
205			    struct sigvec *nsv, struct sigvec *osv); } osigvec
206109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
207110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
208111	NOARGS		{ int sys_sigsuspend(int mask); }
209112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
210			    struct sigstack *oss); } osigstack
211113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
212			    struct omsghdr *msg, int flags); } orecvmsg
213114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
214			    int flags); } osendmsg
215#ifdef TRACE
216115	NOARGS		{ int sys_vtrace(int request, int value); }
217#else
218115	OBSOL		vtrace
219#endif
220116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
221			    struct timezone *tzp); }
222117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
223118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
224			    caddr_t val, int *avalsize); }
225119	OBSOL		resuba
226120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
227			    u_int iovcnt); }
228121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
229			    u_int iovcnt); }
230122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
231			    struct timezone *tzp); }
232123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
233124	NOARGS		{ int sys_fchmod(int fd, int mode); }
234125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
235			    size_t len, int flags, caddr_t from, \
236			    int *fromlenaddr); } orecvfrom
237126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
238127	NOARGS		{ int sys_setregid(int rgid, int egid); }
239128	STD		{ int freebsd_sys_rename(char *from, char *to); }
240129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
241			    long length); } otruncate
242130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
243			    oftruncate
244131	NOARGS		{ int sys_flock(int fd, int how); }
245132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
246133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
247			    int flags, caddr_t to, int tolen); }
248134	NOARGS		{ int sys_shutdown(int s, int how); }
249135	NOARGS		{ int sys_socketpair(int domain, int type, \
250			    int protocol, int *rsv); }
251136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
252137	STD		{ int freebsd_sys_rmdir(char *path); }
253138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
254139	OBSOL		4.2 sigreturn
255140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
256			    struct timeval *olddelta); }
257141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
258			    int *alen); } ogetpeername
259142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
260143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
261			    osethostid
262144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
263			    struct orlimit *rlp); } ogetrlimit
264145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
265			    struct orlimit *rlp); } osetrlimit
266146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
267			    okillpg
268147	NOARGS		{ int sys_setsid(void); }
269148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
270			    caddr_t arg); }
271149	NOARGS		{ int compat_43_sys_quota(void); } oquota
272150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
273			    int *alen); } ogetsockname
274
275; Syscalls 151-180 inclusive are reserved for vendor-specific
276; system calls.  (This includes various calls added for compatibity
277; with other Unix variants.)
278; Some of these calls are now supported by BSD...
279151	UNIMPL
280152	UNIMPL
281153	UNIMPL
282154	UNIMPL
283#if defined(NFS) || defined(NFSSERVER)
284155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
285#else
286155	UNIMPL
287#endif
288156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
289			    u_int count, long *basep); } ogetdirentries
290157	STD		{ int freebsd_sys_statfs(char *path, \
291			    struct statfs *buf); }
292158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
293159	UNIMPL
294160	UNIMPL
295#ifdef NFS
296161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
297#else
298161	UNIMPL		getfh
299#endif
300162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
301			    int len); }
302163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
303			    int len); }
304164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
305165	NOARGS		{ int sys_sysarch(int op, char *parms); }
306166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
307			    struct freebsd_rtprio *rtp); }
308167	UNIMPL
309168	UNIMPL
310; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
311#if defined(SYSVSEM) && !defined(alpha)
312169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
313			    int a4, int a5); }
314#else
315169	UNIMPL		1.0 semsys
316#endif
317; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
318#if defined(SYSVMSG) && !defined(alpha)
319170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
320			    int a4, int a5, int a6); }
321#else
322170	UNIMPL		1.0 msgsys
323#endif
324; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
325#if defined(SYSVSHM) && !defined(alpha)
326171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
327			    int a4); }
328#else
329171	UNIMPL		1.0 shmsys
330#endif
331172	UNIMPL
332173	UNIMPL
333174	UNIMPL
334175	UNIMPL
335176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
336177	UNIMPL
337178	UNIMPL
338179	UNIMPL
339180	UNIMPL
340
341; Syscalls 180-199 are used by/reserved for BSD
342181	NOARGS		{ int sys_setgid(gid_t gid); }
343182	NOARGS		{ int sys_setegid(gid_t egid); }
344183	NOARGS		{ int sys_seteuid(uid_t euid); }
345#ifdef LFS
346184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
347			    struct block_info *blkiov, int blkcnt); }
348185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
349			    struct block_info *blkiov, int blkcnt); }
350186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
351187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
352#else
353184	UNIMPL
354185	UNIMPL
355186	UNIMPL
356187	UNIMPL
357#endif
358188	STD		{ int freebsd_sys_stat(char *path, \
359			    struct stat12 *ub); }
360189	NOARGS		{ int compat_12_sys_fstat(int fd, \
361			    struct stat12 *sb); }
362190	STD		{ int freebsd_sys_lstat(char *path, \
363			    struct stat12 *ub); }
364191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
365192	NOARGS		{ int sys_fpathconf(int fd, int name); }
366193	UNIMPL
367194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
368195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
369196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
370			    u_int count, long *basep); }
371197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
372			    int flags, int fd, long pad, off_t pos); }
373198	NOARGS		{ int sys_nosys(void); } __syscall
374199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
375			    int whence); }
376200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
377			    off_t length); }
378201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
379202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
380			    void *old, size_t *oldlenp, void *new, \
381			    size_t newlen); }
382203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
383204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
384#ifdef FREEBSD_BASED_ON_44LITE_R2
385205	STD		{ int freebsd_sys_undelete(char *path); }
386#else
387205	UNIMPL
388#endif
389206	UNIMPL
390207	UNIMPL
391208	UNIMPL
392209	UNIMPL
393;
394; Syscalls 210-219 are reserved for dynamically loaded syscalls
395;
396210	UNIMPL
397211	UNIMPL
398212	UNIMPL
399213	UNIMPL
400214	UNIMPL
401215	UNIMPL
402216	UNIMPL
403217	UNIMPL
404218	UNIMPL
405219	UNIMPL
406;
407; Syscalls 220-239 are reserved for syscalls imported from NetBSD
408;
409220	UNIMPL
410221	UNIMPL
411222	UNIMPL
412223	UNIMPL
413224	UNIMPL
414225	UNIMPL
415226	UNIMPL
416227	UNIMPL
417228	UNIMPL
418229	UNIMPL
419230	UNIMPL
420231	UNIMPL
421232	UNIMPL
422233	UNIMPL
423234	UNIMPL
424235	UNIMPL
425236	UNIMPL
426237	UNIMPL
427238	UNIMPL
428239	UNIMPL
429240	UNIMPL
430241	UNIMPL
431242	UNIMPL
432243	UNIMPL
433244	UNIMPL
434245	UNIMPL
435246	UNIMPL
436247	UNIMPL
437248	UNIMPL
438249	UNIMPL
439250	UNIMPL
440251	UNIMPL
441252	UNIMPL
442253	STD		{ int freebsd_sys_issetugid(void); }
443254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
444			    int gid); }
445