syscalls.master revision 1.19
1	$NetBSD: syscalls.master,v 1.19 1998/09/11 12:50:08 mycroft 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
37#include "fs_lfs.h"
38#include "fs_nfs.h"
39
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/signal.h>
43#include <sys/mount.h>
44#include <sys/syscallargs.h>
45
46#include <compat/freebsd/freebsd_syscallargs.h>
47
48#include <machine/freebsd_machdep.h>
49
50; Reserved/unimplemented system calls in the range 0-150 inclusive
51; are reserved for use in future Berkeley releases.
52; Additional system calls implemented in vendor and other
53; redistributions should be placed in the reserved range at the end
54; of the current calls.
55
560	NOARGS		{ int sys_nosys(void); } syscall
571	NOARGS		{ int sys_exit(int rval); }
582	NOARGS		{ int sys_fork(void); }
593	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
604	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
615	STD		{ int freebsd_sys_open(char *path, int flags, \
62			    int mode); }
636	NOARGS		{ int sys_close(int fd); }
647	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
65			    struct rusage *rusage); }
668	STD		{ int compat_43_freebsd_sys_creat(char *path, \
67			    int mode); } ocreat
689	STD		{ int freebsd_sys_link(char *path, char *link); }
6910	STD		{ int freebsd_sys_unlink(char *path); }
7011	OBSOL		execv
7112	STD		{ int freebsd_sys_chdir(char *path); }
7213	NOARGS		{ int sys_fchdir(int fd); }
7314	STD		{ int freebsd_sys_mknod(char *path, int mode, \
74			    int dev); }
7515	STD		{ int freebsd_sys_chmod(char *path, int mode); }
7616	STD		{ int freebsd_sys_chown(char *path, int uid, int gid); }
7717	NOARGS		{ int sys_obreak(char *nsize); } break
7818	NOARGS		{ int sys_getfsstat(struct statfs *buf, long bufsize, \
79			    int flags); }
8019	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
81			    int whence); } olseek
8220	NOARGS		{ pid_t sys_getpid(void); }
8321	STD		{ int freebsd_sys_mount(int type, char *path, \
84			    int flags, caddr_t data); }
8522	STD		{ int freebsd_sys_unmount(char *path, int flags); }
8623	NOARGS		{ int sys_setuid(uid_t uid); }
8724	NOARGS		{ uid_t sys_getuid(void); }
8825	NOARGS		{ uid_t sys_geteuid(void); }
8926	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
90			    caddr_t addr, int data); }
9127	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
92			    int flags); }
9328	NOARGS		{ int sys_sendmsg(int s, caddr_t msg, int flags); }
9429	NOARGS		{ int sys_recvfrom(int s, caddr_t buf, size_t len, \
95			    int flags, caddr_t from, int *fromlenaddr); }
9630	NOARGS		{ int sys_accept(int s, caddr_t name, int *anamelen); }
9731	NOARGS		{ int sys_getpeername(int fdes, caddr_t asa, \
98			    int *alen); }
9932	NOARGS		{ int sys_getsockname(int fdes, caddr_t asa, \
100			    int *alen); }
10133	STD		{ int freebsd_sys_access(char *path, int flags); }
10234	STD		{ int freebsd_sys_chflags(char *path, int flags); }
10335	NOARGS		{ int sys_fchflags(int fd, int flags); }
10436	NOARGS		{ int sys_sync(void); }
10537	NOARGS		{ int sys_kill(int pid, int signum); }
10638	STD		{ int compat_43_freebsd_sys_stat(char *path, \
107			    struct stat43 *ub); } stat43
10839	NOARGS		{ pid_t sys_getppid(void); }
10940	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
110			    struct stat43 *ub); } lstat43
11141	NOARGS		{ int sys_dup(u_int fd); }
11242	NOARGS		{ int sys_pipe(void); }
11343	NOARGS		{ gid_t sys_getegid(void); }
11444	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
115			    u_int offset, u_int scale); }
116#ifdef KTRACE
11745	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
118			    int pid); }
119#else
12045	UNIMPL		ktrace
121#endif
12246	NOARGS		{ int compat_13_sys_sigaction(int signum, \
123			    const struct sigaction13 *nsa, \
124			    struct sigaction13 *osa); }
12547	NOARGS		{ gid_t sys_getgid(void); }
12648	NOARGS		{ int compat_13_sys_sigprocmask(int how, \
127			    int mask); }
12849	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
12950	NOARGS		{ int sys_setlogin(char *namebuf); }
13051	NOARGS		{ int sys_acct(char *path); }
13152	NOARGS		{ int compat_13_sys_sigpending(void); }
13253	NOARGS		{ int compat_13_sys_sigaltstack( \
133			    const struct sigaltstack13 *nss, \
134			    struct sigaltstack13 *oss); }
13554	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
136			    caddr_t data); }
13755	NOARGS		{ int sys_reboot(int opt); }
13856	STD		{ int freebsd_sys_revoke(char *path); }
13957	STD		{ int freebsd_sys_symlink(char *path, char *link); }
14058	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
141			    int count); }
14259	STD		{ int freebsd_sys_execve(char *path, char **argp, \
143			    char **envp); }
14460	NOARGS		{ int sys_umask(int newmask); }
14561	STD		{ int freebsd_sys_chroot(char *path); }
14662	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
147			    fstat43
14863	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
149			    int *size, int arg); } ogetkerninfo
15064	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
15165	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
152			    int flags); }
15366	NOARGS		{ int sys_vfork(void); }
15467	OBSOL		vread
15568	OBSOL		vwrite
15669	NOARGS		{ int sys_sbrk(int incr); }
15770	NOARGS		{ int sys_sstk(int incr); }
15871	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
159			    int prot, int flags, int fd, long pos); } ommap
16072	NOARGS		{ int sys_ovadvise(int anom); } vadvise
16173	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
16274	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
163			    int prot); }
16475	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
165			    int behav); }
16676	OBSOL		vhangup
16777	OBSOL		vlimit
16878	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
16979	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
17080	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
17181	NOARGS		{ int sys_getpgrp(void); }
17282	NOARGS		{ int sys_setpgid(int pid, int pgid); }
17383	NOARGS		{ int sys_setitimer(u_int which, \
174			    struct itimerval *itv, struct itimerval *oitv); }
17584	NOARGS		{ int compat_43_sys_wait(void); } owait
17685	NOARGS		{ int compat_12_sys_swapon(char *name); }
17786	NOARGS		{ int sys_getitimer(u_int which, \
178			    struct itimerval *itv); }
17987	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
180			    u_int len); } ogethostname
18188	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
182			    u_int len); } osethostname
18389	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
184			    ogetdtablesize
18590	NOARGS		{ int sys_dup2(u_int from, u_int to); }
18691	UNIMPL		getdopt
18792	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
18893	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
189			    fd_set *ex, struct timeval *tv); }
19094	UNIMPL		setdopt
19195	NOARGS		{ int sys_fsync(int fd); }
19296	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
19397	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
19498	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
19599	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
196			    int *anamelen); } oaccept
197100	NOARGS		{ int sys_getpriority(int which, int who); }
198101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
199			    int flags); } osend
200102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
201			    int flags); } orecv
202103	STD		{ int freebsd_sys_sigreturn( \
203			    struct freebsd_sigcontext *scp); }
204104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
205105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
206			    caddr_t val, int valsize); }
207106	NOARGS		{ int sys_listen(int s, int backlog); }
208107	OBSOL		vtimes
209108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
210			    struct sigvec *nsv, struct sigvec *osv); } osigvec
211109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
212110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
213111	NOARGS		{ int compat_13_sys_sigsuspend(int mask); }
214112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
215			    struct sigstack *oss); } osigstack
216113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
217			    struct omsghdr *msg, int flags); } orecvmsg
218114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
219			    int flags); } osendmsg
220#ifdef TRACE
221115	NOARGS		{ int sys_vtrace(int request, int value); }
222#else
223115	OBSOL		vtrace
224#endif
225116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
226			    struct timezone *tzp); }
227117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
228118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
229			    caddr_t val, int *avalsize); }
230119	OBSOL		resuba
231120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
232			    u_int iovcnt); }
233121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
234			    u_int iovcnt); }
235122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
236			    struct timezone *tzp); }
237123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
238124	NOARGS		{ int sys_fchmod(int fd, int mode); }
239125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
240			    size_t len, int flags, caddr_t from, \
241			    int *fromlenaddr); } orecvfrom
242126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
243127	NOARGS		{ int sys_setregid(int rgid, int egid); }
244128	STD		{ int freebsd_sys_rename(char *from, char *to); }
245129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
246			    long length); } otruncate
247130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
248			    oftruncate
249131	NOARGS		{ int sys_flock(int fd, int how); }
250132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
251133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
252			    int flags, caddr_t to, int tolen); }
253134	NOARGS		{ int sys_shutdown(int s, int how); }
254135	NOARGS		{ int sys_socketpair(int domain, int type, \
255			    int protocol, int *rsv); }
256136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
257137	STD		{ int freebsd_sys_rmdir(char *path); }
258138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
259139	OBSOL		4.2 sigreturn
260140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
261			    struct timeval *olddelta); }
262141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
263			    int *alen); } ogetpeername
264142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
265143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
266			    osethostid
267144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
268			    struct orlimit *rlp); } ogetrlimit
269145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
270			    struct orlimit *rlp); } osetrlimit
271146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
272			    okillpg
273147	NOARGS		{ int sys_setsid(void); }
274148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
275			    caddr_t arg); }
276149	NOARGS		{ int compat_43_sys_quota(void); } oquota
277150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
278			    int *alen); } ogetsockname
279
280; Syscalls 151-180 inclusive are reserved for vendor-specific
281; system calls.  (This includes various calls added for compatibity
282; with other Unix variants.)
283; Some of these calls are now supported by BSD...
284151	UNIMPL
285152	UNIMPL
286153	UNIMPL
287154	UNIMPL
288#if defined(NFS) || defined(NFSSERVER)
289155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
290#else
291155	UNIMPL
292#endif
293156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
294			    u_int count, long *basep); } ogetdirentries
295157	STD		{ int freebsd_sys_statfs(char *path, \
296			    struct statfs *buf); }
297158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
298159	UNIMPL
299160	UNIMPL
300#ifdef NFS
301161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
302#else
303161	UNIMPL		getfh
304#endif
305162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
306			    int len); }
307163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
308			    int len); }
309164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
310165	NOARGS		{ int sys_sysarch(int op, char *parms); }
311166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
312			    struct freebsd_rtprio *rtp); }
313167	UNIMPL
314168	UNIMPL
315; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
316#if defined(SYSVSEM) && !defined(alpha)
317169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
318			    int a4, int a5); }
319#else
320169	UNIMPL		1.0 semsys
321#endif
322; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
323#if defined(SYSVMSG) && !defined(alpha)
324170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
325			    int a4, int a5, int a6); }
326#else
327170	UNIMPL		1.0 msgsys
328#endif
329; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
330#if defined(SYSVSHM) && !defined(alpha)
331171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
332			    int a4); }
333#else
334171	UNIMPL		1.0 shmsys
335#endif
336172	UNIMPL
337173	UNIMPL
338174	UNIMPL
339175	UNIMPL
340176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
341177	UNIMPL
342178	UNIMPL
343179	UNIMPL
344180	UNIMPL
345
346; Syscalls 180-199 are used by/reserved for BSD
347181	NOARGS		{ int sys_setgid(gid_t gid); }
348182	NOARGS		{ int sys_setegid(gid_t egid); }
349183	NOARGS		{ int sys_seteuid(uid_t euid); }
350#ifdef LFS
351184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
352			    struct block_info *blkiov, int blkcnt); }
353185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
354			    struct block_info *blkiov, int blkcnt); }
355186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
356187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
357#else
358184	UNIMPL
359185	UNIMPL
360186	UNIMPL
361187	UNIMPL
362#endif
363188	STD		{ int freebsd_sys_stat(char *path, \
364			    struct stat12 *ub); }
365189	NOARGS		{ int compat_12_sys_fstat(int fd, \
366			    struct stat12 *sb); }
367190	STD		{ int freebsd_sys_lstat(char *path, \
368			    struct stat12 *ub); }
369191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
370192	NOARGS		{ int sys_fpathconf(int fd, int name); }
371193	UNIMPL
372194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
373195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
374196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
375			    u_int count, long *basep); }
376197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
377			    int flags, int fd, long pad, off_t pos); }
378198	NOARGS		{ int sys_nosys(void); } __syscall
379199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
380			    int whence); }
381200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
382			    off_t length); }
383201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
384202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
385			    void *old, size_t *oldlenp, void *new, \
386			    size_t newlen); }
387203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
388204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
389#ifdef FREEBSD_BASED_ON_44LITE_R2
390205	STD		{ int freebsd_sys_undelete(char *path); }
391#else
392205	UNIMPL
393#endif
394206	UNIMPL
395207	UNIMPL
396208	UNIMPL
397209	UNIMPL
398;
399; Syscalls 210-219 are reserved for dynamically loaded syscalls
400;
401210	UNIMPL
402211	UNIMPL
403212	UNIMPL
404213	UNIMPL
405214	UNIMPL
406215	UNIMPL
407216	UNIMPL
408217	UNIMPL
409218	UNIMPL
410219	UNIMPL
411;
412; Syscalls 220-239 are reserved for syscalls imported from NetBSD
413;
414220	UNIMPL
415221	UNIMPL
416222	UNIMPL
417223	UNIMPL
418224	UNIMPL
419225	UNIMPL
420226	UNIMPL
421227	UNIMPL
422228	UNIMPL
423229	UNIMPL
424230	UNIMPL
425231	UNIMPL
426232	UNIMPL
427233	UNIMPL
428234	UNIMPL
429235	UNIMPL
430236	UNIMPL
431237	UNIMPL
432238	UNIMPL
433239	UNIMPL
434240	UNIMPL
435241	UNIMPL
436242	UNIMPL
437243	UNIMPL
438244	UNIMPL
439245	UNIMPL
440246	UNIMPL
441247	UNIMPL
442248	UNIMPL
443249	UNIMPL
444250	UNIMPL
445251	UNIMPL
446252	UNIMPL
447253	STD		{ int freebsd_sys_issetugid(void); }
448254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
449			    int gid); }
450