syscalls.master revision 1.18
1	$NetBSD: syscalls.master,v 1.18 1998/06/25 22:18:32 thorpej 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 sys_sigaction(int signum, struct sigaction *nsa, \
123			    struct sigaction *osa); }
12447	NOARGS		{ gid_t sys_getgid(void); }
12548	NOARGS		{ int sys_sigprocmask(int how, sigset_t mask); }
12649	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
12750	NOARGS		{ int sys_setlogin(char *namebuf); }
12851	NOARGS		{ int sys_acct(char *path); }
12952	NOARGS		{ int sys_sigpending(void); }
13053	NOARGS		{ int compat_13_sys_sigaltstack( \
131			    const struct sigaltstack13 *nss, \
132			    struct sigaltstack13 *oss); }
13354	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
134			    caddr_t data); }
13555	NOARGS		{ int sys_reboot(int opt); }
13656	STD		{ int freebsd_sys_revoke(char *path); }
13757	STD		{ int freebsd_sys_symlink(char *path, char *link); }
13858	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
139			    int count); }
14059	STD		{ int freebsd_sys_execve(char *path, char **argp, \
141			    char **envp); }
14260	NOARGS		{ int sys_umask(int newmask); }
14361	STD		{ int freebsd_sys_chroot(char *path); }
14462	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
145			    fstat43
14663	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
147			    int *size, int arg); } ogetkerninfo
14864	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
14965	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
150			    int flags); }
15166	NOARGS		{ int sys_vfork(void); }
15267	OBSOL		vread
15368	OBSOL		vwrite
15469	NOARGS		{ int sys_sbrk(int incr); }
15570	NOARGS		{ int sys_sstk(int incr); }
15671	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
157			    int prot, int flags, int fd, long pos); } ommap
15872	NOARGS		{ int sys_ovadvise(int anom); } vadvise
15973	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
16074	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
161			    int prot); }
16275	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
163			    int behav); }
16476	OBSOL		vhangup
16577	OBSOL		vlimit
16678	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
16779	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
16880	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
16981	NOARGS		{ int sys_getpgrp(void); }
17082	NOARGS		{ int sys_setpgid(int pid, int pgid); }
17183	NOARGS		{ int sys_setitimer(u_int which, \
172			    struct itimerval *itv, struct itimerval *oitv); }
17384	NOARGS		{ int compat_43_sys_wait(void); } owait
17485	NOARGS		{ int compat_12_sys_swapon(char *name); }
17586	NOARGS		{ int sys_getitimer(u_int which, \
176			    struct itimerval *itv); }
17787	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
178			    u_int len); } ogethostname
17988	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
180			    u_int len); } osethostname
18189	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
182			    ogetdtablesize
18390	NOARGS		{ int sys_dup2(u_int from, u_int to); }
18491	UNIMPL		getdopt
18592	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
18693	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
187			    fd_set *ex, struct timeval *tv); }
18894	UNIMPL		setdopt
18995	NOARGS		{ int sys_fsync(int fd); }
19096	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
19197	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
19298	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
19399	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
194			    int *anamelen); } oaccept
195100	NOARGS		{ int sys_getpriority(int which, int who); }
196101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
197			    int flags); } osend
198102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
199			    int flags); } orecv
200103	STD		{ int freebsd_sys_sigreturn( \
201			    struct freebsd_sigcontext *scp); }
202104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
203105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
204			    caddr_t val, int valsize); }
205106	NOARGS		{ int sys_listen(int s, int backlog); }
206107	OBSOL		vtimes
207108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
208			    struct sigvec *nsv, struct sigvec *osv); } osigvec
209109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
210110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
211111	NOARGS		{ int sys_sigsuspend(int mask); }
212112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
213			    struct sigstack *oss); } osigstack
214113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
215			    struct omsghdr *msg, int flags); } orecvmsg
216114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
217			    int flags); } osendmsg
218#ifdef TRACE
219115	NOARGS		{ int sys_vtrace(int request, int value); }
220#else
221115	OBSOL		vtrace
222#endif
223116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
224			    struct timezone *tzp); }
225117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
226118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
227			    caddr_t val, int *avalsize); }
228119	OBSOL		resuba
229120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
230			    u_int iovcnt); }
231121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
232			    u_int iovcnt); }
233122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
234			    struct timezone *tzp); }
235123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
236124	NOARGS		{ int sys_fchmod(int fd, int mode); }
237125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
238			    size_t len, int flags, caddr_t from, \
239			    int *fromlenaddr); } orecvfrom
240126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
241127	NOARGS		{ int sys_setregid(int rgid, int egid); }
242128	STD		{ int freebsd_sys_rename(char *from, char *to); }
243129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
244			    long length); } otruncate
245130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
246			    oftruncate
247131	NOARGS		{ int sys_flock(int fd, int how); }
248132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
249133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
250			    int flags, caddr_t to, int tolen); }
251134	NOARGS		{ int sys_shutdown(int s, int how); }
252135	NOARGS		{ int sys_socketpair(int domain, int type, \
253			    int protocol, int *rsv); }
254136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
255137	STD		{ int freebsd_sys_rmdir(char *path); }
256138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
257139	OBSOL		4.2 sigreturn
258140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
259			    struct timeval *olddelta); }
260141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
261			    int *alen); } ogetpeername
262142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
263143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
264			    osethostid
265144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
266			    struct orlimit *rlp); } ogetrlimit
267145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
268			    struct orlimit *rlp); } osetrlimit
269146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
270			    okillpg
271147	NOARGS		{ int sys_setsid(void); }
272148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
273			    caddr_t arg); }
274149	NOARGS		{ int compat_43_sys_quota(void); } oquota
275150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
276			    int *alen); } ogetsockname
277
278; Syscalls 151-180 inclusive are reserved for vendor-specific
279; system calls.  (This includes various calls added for compatibity
280; with other Unix variants.)
281; Some of these calls are now supported by BSD...
282151	UNIMPL
283152	UNIMPL
284153	UNIMPL
285154	UNIMPL
286#if defined(NFS) || defined(NFSSERVER)
287155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
288#else
289155	UNIMPL
290#endif
291156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
292			    u_int count, long *basep); } ogetdirentries
293157	STD		{ int freebsd_sys_statfs(char *path, \
294			    struct statfs *buf); }
295158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
296159	UNIMPL
297160	UNIMPL
298#ifdef NFS
299161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
300#else
301161	UNIMPL		getfh
302#endif
303162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
304			    int len); }
305163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
306			    int len); }
307164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
308165	NOARGS		{ int sys_sysarch(int op, char *parms); }
309166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
310			    struct freebsd_rtprio *rtp); }
311167	UNIMPL
312168	UNIMPL
313; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
314#if defined(SYSVSEM) && !defined(alpha)
315169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
316			    int a4, int a5); }
317#else
318169	UNIMPL		1.0 semsys
319#endif
320; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
321#if defined(SYSVMSG) && !defined(alpha)
322170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
323			    int a4, int a5, int a6); }
324#else
325170	UNIMPL		1.0 msgsys
326#endif
327; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
328#if defined(SYSVSHM) && !defined(alpha)
329171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
330			    int a4); }
331#else
332171	UNIMPL		1.0 shmsys
333#endif
334172	UNIMPL
335173	UNIMPL
336174	UNIMPL
337175	UNIMPL
338176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
339177	UNIMPL
340178	UNIMPL
341179	UNIMPL
342180	UNIMPL
343
344; Syscalls 180-199 are used by/reserved for BSD
345181	NOARGS		{ int sys_setgid(gid_t gid); }
346182	NOARGS		{ int sys_setegid(gid_t egid); }
347183	NOARGS		{ int sys_seteuid(uid_t euid); }
348#ifdef LFS
349184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
350			    struct block_info *blkiov, int blkcnt); }
351185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
352			    struct block_info *blkiov, int blkcnt); }
353186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
354187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
355#else
356184	UNIMPL
357185	UNIMPL
358186	UNIMPL
359187	UNIMPL
360#endif
361188	STD		{ int freebsd_sys_stat(char *path, \
362			    struct stat12 *ub); }
363189	NOARGS		{ int compat_12_sys_fstat(int fd, \
364			    struct stat12 *sb); }
365190	STD		{ int freebsd_sys_lstat(char *path, \
366			    struct stat12 *ub); }
367191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
368192	NOARGS		{ int sys_fpathconf(int fd, int name); }
369193	UNIMPL
370194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
371195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
372196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
373			    u_int count, long *basep); }
374197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
375			    int flags, int fd, long pad, off_t pos); }
376198	NOARGS		{ int sys_nosys(void); } __syscall
377199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
378			    int whence); }
379200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
380			    off_t length); }
381201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
382202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
383			    void *old, size_t *oldlenp, void *new, \
384			    size_t newlen); }
385203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
386204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
387#ifdef FREEBSD_BASED_ON_44LITE_R2
388205	STD		{ int freebsd_sys_undelete(char *path); }
389#else
390205	UNIMPL
391#endif
392206	UNIMPL
393207	UNIMPL
394208	UNIMPL
395209	UNIMPL
396;
397; Syscalls 210-219 are reserved for dynamically loaded syscalls
398;
399210	UNIMPL
400211	UNIMPL
401212	UNIMPL
402213	UNIMPL
403214	UNIMPL
404215	UNIMPL
405216	UNIMPL
406217	UNIMPL
407218	UNIMPL
408219	UNIMPL
409;
410; Syscalls 220-239 are reserved for syscalls imported from NetBSD
411;
412220	UNIMPL
413221	UNIMPL
414222	UNIMPL
415223	UNIMPL
416224	UNIMPL
417225	UNIMPL
418226	UNIMPL
419227	UNIMPL
420228	UNIMPL
421229	UNIMPL
422230	UNIMPL
423231	UNIMPL
424232	UNIMPL
425233	UNIMPL
426234	UNIMPL
427235	UNIMPL
428236	UNIMPL
429237	UNIMPL
430238	UNIMPL
431239	UNIMPL
432240	UNIMPL
433241	UNIMPL
434242	UNIMPL
435243	UNIMPL
436244	UNIMPL
437245	UNIMPL
438246	UNIMPL
439247	UNIMPL
440248	UNIMPL
441249	UNIMPL
442250	UNIMPL
443251	UNIMPL
444252	UNIMPL
445253	STD		{ int freebsd_sys_issetugid(void); }
446254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
447			    int gid); }
448