syscalls.master revision 1.21
1	$NetBSD: syscalls.master,v 1.21 1998/12/10 17:03:19 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 "opt_ktrace.h"
35#include "opt_nfsserver.h"
36#include "opt_sysv.h"
37#include "opt_compat_43.h"
38
39#include "fs_lfs.h"
40#include "fs_nfs.h"
41
42#include <sys/param.h>
43#include <sys/systm.h>
44#include <sys/signal.h>
45#include <sys/mount.h>
46#include <sys/syscallargs.h>
47
48#include <compat/freebsd/freebsd_syscallargs.h>
49
50#include <machine/freebsd_machdep.h>
51
52; Reserved/unimplemented system calls in the range 0-150 inclusive
53; are reserved for use in future Berkeley releases.
54; Additional system calls implemented in vendor and other
55; redistributions should be placed in the reserved range at the end
56; of the current calls.
57
580	NOARGS		{ int sys_nosys(void); } syscall
591	NOARGS		{ int sys_exit(int rval); }
602	NOARGS		{ int sys_fork(void); }
613	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
624	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
635	STD		{ int freebsd_sys_open(char *path, int flags, \
64			    int mode); }
656	NOARGS		{ int sys_close(int fd); }
667	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
67			    struct rusage *rusage); }
688	STD		{ int compat_43_freebsd_sys_creat(char *path, \
69			    int mode); } ocreat
709	STD		{ int freebsd_sys_link(char *path, char *link); }
7110	STD		{ int freebsd_sys_unlink(char *path); }
7211	OBSOL		execv
7312	STD		{ int freebsd_sys_chdir(char *path); }
7413	NOARGS		{ int sys_fchdir(int fd); }
7514	STD		{ int freebsd_sys_mknod(char *path, int mode, \
76			    int dev); }
7715	STD		{ int freebsd_sys_chmod(char *path, int mode); }
7816	STD		{ int freebsd_sys_chown(char *path, int uid, int gid); }
7917	NOARGS		{ int sys_obreak(char *nsize); } break
8018	NOARGS		{ int sys_getfsstat(struct statfs *buf, long bufsize, \
81			    int flags); }
8219	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
83			    int whence); } olseek
8420	NOARGS		{ pid_t sys_getpid(void); }
8521	STD		{ int freebsd_sys_mount(int type, char *path, \
86			    int flags, caddr_t data); }
8722	STD		{ int freebsd_sys_unmount(char *path, int flags); }
8823	NOARGS		{ int sys_setuid(uid_t uid); }
8924	NOARGS		{ uid_t sys_getuid(void); }
9025	NOARGS		{ uid_t sys_geteuid(void); }
9126	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
92			    caddr_t addr, int data); }
9327	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
94			    int flags); }
9528	NOARGS		{ int sys_sendmsg(int s, caddr_t msg, int flags); }
9629	NOARGS		{ int sys_recvfrom(int s, caddr_t buf, size_t len, \
97			    int flags, caddr_t from, int *fromlenaddr); }
9830	NOARGS		{ int sys_accept(int s, caddr_t name, int *anamelen); }
9931	NOARGS		{ int sys_getpeername(int fdes, caddr_t asa, \
100			    int *alen); }
10132	NOARGS		{ int sys_getsockname(int fdes, caddr_t asa, \
102			    int *alen); }
10333	STD		{ int freebsd_sys_access(char *path, int flags); }
10434	STD		{ int freebsd_sys_chflags(char *path, int flags); }
10535	NOARGS		{ int sys_fchflags(int fd, int flags); }
10636	NOARGS		{ int sys_sync(void); }
10737	NOARGS		{ int sys_kill(int pid, int signum); }
10838	STD		{ int compat_43_freebsd_sys_stat(char *path, \
109			    struct stat43 *ub); } stat43
11039	NOARGS		{ pid_t sys_getppid(void); }
11140	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
112			    struct stat43 *ub); } lstat43
11341	NOARGS		{ int sys_dup(u_int fd); }
11442	NOARGS		{ int sys_pipe(void); }
11543	NOARGS		{ gid_t sys_getegid(void); }
11644	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
117			    u_int offset, u_int scale); }
118#ifdef KTRACE
11945	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
120			    int pid); }
121#else
12245	UNIMPL		ktrace
123#endif
12446	NOARGS		{ int compat_13_sys_sigaction(int signum, \
125			    const struct sigaction13 *nsa, \
126			    struct sigaction13 *osa); }
12747	NOARGS		{ gid_t sys_getgid(void); }
12848	NOARGS		{ int compat_13_sys_sigprocmask(int how, \
129			    int mask); }
13049	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
13150	NOARGS		{ int sys_setlogin(char *namebuf); }
13251	NOARGS		{ int sys_acct(char *path); }
13352	NOARGS		{ int compat_13_sys_sigpending(void); }
13453	NOARGS		{ int compat_13_sys_sigaltstack( \
135			    const struct sigaltstack13 *nss, \
136			    struct sigaltstack13 *oss); }
13754	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
138			    caddr_t data); }
13955	NOARGS		{ int sys_reboot(int opt); }
14056	STD		{ int freebsd_sys_revoke(char *path); }
14157	STD		{ int freebsd_sys_symlink(char *path, char *link); }
14258	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
143			    int count); }
14459	STD		{ int freebsd_sys_execve(char *path, char **argp, \
145			    char **envp); }
14660	NOARGS		{ int sys_umask(int newmask); }
14761	STD		{ int freebsd_sys_chroot(char *path); }
14862	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
149			    fstat43
15063	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
151			    int *size, int arg); } ogetkerninfo
15264	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
15365	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
154			    int flags); }
15566	NOARGS		{ int sys_vfork(void); }
15667	OBSOL		vread
15768	OBSOL		vwrite
15869	NOARGS		{ int sys_sbrk(int incr); }
15970	NOARGS		{ int sys_sstk(int incr); }
16071	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
161			    int prot, int flags, int fd, long pos); } ommap
16272	NOARGS		{ int sys_ovadvise(int anom); } vadvise
16373	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
16474	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
165			    int prot); }
16675	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
167			    int behav); }
16876	OBSOL		vhangup
16977	OBSOL		vlimit
17078	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
17179	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
17280	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
17381	NOARGS		{ int sys_getpgrp(void); }
17482	NOARGS		{ int sys_setpgid(int pid, int pgid); }
17583	NOARGS		{ int sys_setitimer(u_int which, \
176			    struct itimerval *itv, struct itimerval *oitv); }
17784	NOARGS		{ int compat_43_sys_wait(void); } owait
17885	NOARGS		{ int compat_12_sys_swapon(char *name); }
17986	NOARGS		{ int sys_getitimer(u_int which, \
180			    struct itimerval *itv); }
18187	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
182			    u_int len); } ogethostname
18388	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
184			    u_int len); } osethostname
18589	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
186			    ogetdtablesize
18790	NOARGS		{ int sys_dup2(u_int from, u_int to); }
18891	UNIMPL		getdopt
18992	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
19093	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
191			    fd_set *ex, struct timeval *tv); }
19294	UNIMPL		setdopt
19395	NOARGS		{ int sys_fsync(int fd); }
19496	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
19597	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
19698	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
19799	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
198			    int *anamelen); } oaccept
199100	NOARGS		{ int sys_getpriority(int which, int who); }
200101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
201			    int flags); } osend
202102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
203			    int flags); } orecv
204103	STD		{ int freebsd_sys_sigreturn( \
205			    struct freebsd_sigcontext *scp); }
206104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
207105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
208			    caddr_t val, int valsize); }
209106	NOARGS		{ int sys_listen(int s, int backlog); }
210107	OBSOL		vtimes
211108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
212			    struct sigvec *nsv, struct sigvec *osv); } osigvec
213109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
214110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
215111	NOARGS		{ int compat_13_sys_sigsuspend(int mask); }
216112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
217			    struct sigstack *oss); } osigstack
218113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
219			    struct omsghdr *msg, int flags); } orecvmsg
220114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
221			    int flags); } osendmsg
222#ifdef TRACE
223115	NOARGS		{ int sys_vtrace(int request, int value); }
224#else
225115	OBSOL		vtrace
226#endif
227116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
228			    struct timezone *tzp); }
229117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
230118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
231			    caddr_t val, int *avalsize); }
232119	OBSOL		resuba
233120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
234			    u_int iovcnt); }
235121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
236			    u_int iovcnt); }
237122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
238			    struct timezone *tzp); }
239123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
240124	NOARGS		{ int sys_fchmod(int fd, int mode); }
241125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
242			    size_t len, int flags, caddr_t from, \
243			    int *fromlenaddr); } orecvfrom
244126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
245127	NOARGS		{ int sys_setregid(int rgid, int egid); }
246128	STD		{ int freebsd_sys_rename(char *from, char *to); }
247129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
248			    long length); } otruncate
249130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
250			    oftruncate
251131	NOARGS		{ int sys_flock(int fd, int how); }
252132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
253133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
254			    int flags, caddr_t to, int tolen); }
255134	NOARGS		{ int sys_shutdown(int s, int how); }
256135	NOARGS		{ int sys_socketpair(int domain, int type, \
257			    int protocol, int *rsv); }
258136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
259137	STD		{ int freebsd_sys_rmdir(char *path); }
260138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
261139	OBSOL		4.2 sigreturn
262140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
263			    struct timeval *olddelta); }
264141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
265			    int *alen); } ogetpeername
266142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
267143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
268			    osethostid
269144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
270			    struct orlimit *rlp); } ogetrlimit
271145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
272			    struct orlimit *rlp); } osetrlimit
273146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
274			    okillpg
275147	NOARGS		{ int sys_setsid(void); }
276148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
277			    caddr_t arg); }
278149	NOARGS		{ int compat_43_sys_quota(void); } oquota
279150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
280			    int *alen); } ogetsockname
281
282; Syscalls 151-180 inclusive are reserved for vendor-specific
283; system calls.  (This includes various calls added for compatibity
284; with other Unix variants.)
285; Some of these calls are now supported by BSD...
286151	UNIMPL
287152	UNIMPL
288153	UNIMPL
289154	UNIMPL
290#if defined(NFS) || defined(NFSSERVER)
291155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
292#else
293155	UNIMPL
294#endif
295156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
296			    u_int count, long *basep); } ogetdirentries
297157	STD		{ int freebsd_sys_statfs(char *path, \
298			    struct statfs *buf); }
299158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
300159	UNIMPL
301160	UNIMPL
302#ifdef NFS
303161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
304#else
305161	UNIMPL		getfh
306#endif
307162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
308			    int len); }
309163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
310			    int len); }
311164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
312165	NOARGS		{ int sys_sysarch(int op, char *parms); }
313166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
314			    struct freebsd_rtprio *rtp); }
315167	UNIMPL
316168	UNIMPL
317; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
318#if defined(SYSVSEM) && !defined(alpha)
319169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
320			    int a4, int a5); }
321#else
322169	UNIMPL		1.0 semsys
323#endif
324; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
325#if defined(SYSVMSG) && !defined(alpha)
326170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
327			    int a4, int a5, int a6); }
328#else
329170	UNIMPL		1.0 msgsys
330#endif
331; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
332#if defined(SYSVSHM) && !defined(alpha)
333171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
334			    int a4); }
335#else
336171	UNIMPL		1.0 shmsys
337#endif
338172	UNIMPL
339173	UNIMPL
340174	UNIMPL
341175	UNIMPL
342176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
343177	UNIMPL
344178	UNIMPL
345179	UNIMPL
346180	UNIMPL
347
348; Syscalls 180-199 are used by/reserved for BSD
349181	NOARGS		{ int sys_setgid(gid_t gid); }
350182	NOARGS		{ int sys_setegid(gid_t egid); }
351183	NOARGS		{ int sys_seteuid(uid_t euid); }
352#ifdef LFS
353184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
354			    struct block_info *blkiov, int blkcnt); }
355185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
356			    struct block_info *blkiov, int blkcnt); }
357186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
358187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
359#else
360184	UNIMPL
361185	UNIMPL
362186	UNIMPL
363187	UNIMPL
364#endif
365188	STD		{ int freebsd_sys_stat(char *path, \
366			    struct stat12 *ub); }
367189	NOARGS		{ int compat_12_sys_fstat(int fd, \
368			    struct stat12 *sb); }
369190	STD		{ int freebsd_sys_lstat(char *path, \
370			    struct stat12 *ub); }
371191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
372192	NOARGS		{ int sys_fpathconf(int fd, int name); }
373193	UNIMPL
374194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
375195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
376196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
377			    u_int count, long *basep); }
378197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
379			    int flags, int fd, long pad, off_t pos); }
380198	NOARGS		{ int sys_nosys(void); } __syscall
381199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
382			    int whence); }
383200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
384			    off_t length); }
385201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
386202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
387			    void *old, size_t *oldlenp, void *new, \
388			    size_t newlen); }
389203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
390204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
391#ifdef FREEBSD_BASED_ON_44LITE_R2
392205	STD		{ int freebsd_sys_undelete(char *path); }
393#else
394205	UNIMPL
395#endif
396206	UNIMPL
397207	UNIMPL
398208	UNIMPL
399209	UNIMPL
400;
401; Syscalls 210-219 are reserved for dynamically loaded syscalls
402;
403210	UNIMPL
404211	UNIMPL
405212	UNIMPL
406213	UNIMPL
407214	UNIMPL
408215	UNIMPL
409216	UNIMPL
410217	UNIMPL
411218	UNIMPL
412219	UNIMPL
413;
414; Syscalls 220-239 are reserved for syscalls imported from NetBSD
415;
416220	UNIMPL
417221	UNIMPL
418222	UNIMPL
419223	UNIMPL
420224	UNIMPL
421225	UNIMPL
422226	UNIMPL
423227	UNIMPL
424228	UNIMPL
425229	UNIMPL
426230	UNIMPL
427231	UNIMPL
428232	UNIMPL
429233	UNIMPL
430234	UNIMPL
431235	UNIMPL
432236	UNIMPL
433237	UNIMPL
434238	UNIMPL
435239	UNIMPL
436240	UNIMPL
437241	UNIMPL
438242	UNIMPL
439243	UNIMPL
440244	UNIMPL
441245	UNIMPL
442246	UNIMPL
443247	UNIMPL
444248	UNIMPL
445249	UNIMPL
446250	UNIMPL
447251	UNIMPL
448252	UNIMPL
449253	STD		{ int freebsd_sys_issetugid(void); }
450254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
451			    int gid); }
452