syscalls.master revision 1.9
1	$NetBSD: syscalls.master,v 1.9 1997/10/10 01:55:33 enami 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 switch definition file only.
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/signal.h>
37#include <sys/mount.h>
38#include <sys/syscallargs.h>
39
40#include <compat/freebsd/freebsd_syscallargs.h>
41
42#include <machine/freebsd_machdep.h>
43
44; Reserved/unimplemented system calls in the range 0-150 inclusive
45; are reserved for use in future Berkeley releases.
46; Additional system calls implemented in vendor and other
47; redistributions should be placed in the reserved range at the end
48; of the current calls.
49
500	NOARGS		{ int sys_nosys(void); } syscall
511	NOARGS		{ int sys_exit(int rval); }
522	NOARGS		{ int sys_fork(void); }
533	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
544	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
555	STD		{ int freebsd_sys_open(char *path, int flags, \
56			    int mode); }
576	NOARGS		{ int sys_close(int fd); }
587	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
59			    struct rusage *rusage); }
608	STD		{ int compat_43_freebsd_sys_creat(char *path, \
61			    int mode); } ocreat
629	STD		{ int freebsd_sys_link(char *path, char *link); }
6310	STD		{ int freebsd_sys_unlink(char *path); }
6411	OBSOL		execv
6512	STD		{ int freebsd_sys_chdir(char *path); }
6613	NOARGS		{ int sys_fchdir(int fd); }
6714	STD		{ int freebsd_sys_mknod(char *path, int mode, \
68			    int dev); }
6915	STD		{ int freebsd_sys_chmod(char *path, int mode); }
7016	STD		{ int freebsd_sys_chown(char *path, int uid, int gid); }
7117	NOARGS		{ int sys_obreak(char *nsize); } break
7218	NOARGS		{ int sys_getfsstat(struct statfs *buf, long bufsize, \
73			    int flags); }
7419	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
75			    int whence); } olseek
7620	NOARGS		{ pid_t sys_getpid(void); }
7721	STD		{ int freebsd_sys_mount(int type, char *path, \
78			    int flags, caddr_t data); }
7922	STD		{ int freebsd_sys_unmount(char *path, int flags); }
8023	NOARGS		{ int sys_setuid(uid_t uid); }
8124	NOARGS		{ uid_t sys_getuid(void); }
8225	NOARGS		{ uid_t sys_geteuid(void); }
8326	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
84			    caddr_t addr, int data); }
8527	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
86			    int flags); }
8728	NOARGS		{ int sys_sendmsg(int s, caddr_t msg, int flags); }
8829	NOARGS		{ int sys_recvfrom(int s, caddr_t buf, size_t len, \
89			    int flags, caddr_t from, int *fromlenaddr); }
9030	NOARGS		{ int sys_accept(int s, caddr_t name, int *anamelen); }
9131	NOARGS		{ int sys_getpeername(int fdes, caddr_t asa, \
92			    int *alen); }
9332	NOARGS		{ int sys_getsockname(int fdes, caddr_t asa, \
94			    int *alen); }
9533	STD		{ int freebsd_sys_access(char *path, int flags); }
9634	STD		{ int freebsd_sys_chflags(char *path, int flags); }
9735	NOARGS		{ int sys_fchflags(int fd, int flags); }
9836	NOARGS		{ int sys_sync(void); }
9937	NOARGS		{ int sys_kill(int pid, int signum); }
10038	STD		{ int compat_43_freebsd_sys_stat(char *path, \
101			    struct ostat *ub); } ostat
10239	NOARGS		{ pid_t sys_getppid(void); }
10340	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
104			    struct ostat *ub); } olstat
10541	NOARGS		{ int sys_dup(u_int fd); }
10642	NOARGS		{ int sys_pipe(void); }
10743	NOARGS		{ gid_t sys_getegid(void); }
10844	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
109			    u_int offset, u_int scale); }
110#ifdef KTRACE
11145	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
112			    int pid); }
113#else
11445	UNIMPL		ktrace
115#endif
11646	NOARGS		{ int sys_sigaction(int signum, struct sigaction *nsa, \
117			    struct sigaction *osa); }
11847	NOARGS		{ gid_t sys_getgid(void); }
11948	NOARGS		{ int sys_sigprocmask(int how, sigset_t mask); }
12049	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
12150	NOARGS		{ int sys_setlogin(char *namebuf); }
12251	NOARGS		{ int sys_acct(char *path); }
12352	NOARGS		{ int sys_sigpending(void); }
12453	NOARGS		{ int sys_sigaltstack(struct sigaltstack *nss, \
125			    struct sigaltstack *oss); }
12654	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
127			    caddr_t data); }
12855	NOARGS		{ int sys_reboot(int opt); }
12956	STD		{ int freebsd_sys_revoke(char *path); }
13057	STD		{ int freebsd_sys_symlink(char *path, char *link); }
13158	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
132			    int count); }
13359	STD		{ int freebsd_sys_execve(char *path, char **argp, \
134			    char **envp); }
13560	NOARGS		{ int sys_umask(int newmask); }
13661	STD		{ int freebsd_sys_chroot(char *path); }
13762	NOARGS		{ int compat_43_sys_fstat(int fd, struct ostat *sb); } \
138			    ofstat
13963	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
140			    int *size, int arg); } ogetkerninfo
14164	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
14265	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
143			    int flags); }
14466	NOARGS		{ int sys_vfork(void); }
14567	OBSOL		vread
14668	OBSOL		vwrite
14769	NOARGS		{ int sys_sbrk(int incr); }
14870	NOARGS		{ int sys_sstk(int incr); }
14971	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
150			    int prot, int flags, int fd, long pos); } ommap
15172	NOARGS		{ int sys_ovadvise(int anom); } vadvise
15273	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
15374	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
154			    int prot); }
15575	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
156			    int behav); }
15776	OBSOL		vhangup
15877	OBSOL		vlimit
15978	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
16079	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
16180	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
16281	NOARGS		{ int sys_getpgrp(void); }
16382	NOARGS		{ int sys_setpgid(int pid, int pgid); }
16483	NOARGS		{ int sys_setitimer(u_int which, \
165			    struct itimerval *itv, struct itimerval *oitv); }
16684	NOARGS		{ int compat_43_sys_wait(void); } owait
16785	NOARGS		{ int compat_12_sys_swapon(char *name); }
16886	NOARGS		{ int sys_getitimer(u_int which, \
169			    struct itimerval *itv); }
17087	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
171			    u_int len); } ogethostname
17288	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
173			    u_int len); } osethostname
17489	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
175			    ogetdtablesize
17690	NOARGS		{ int sys_dup2(u_int from, u_int to); }
17791	UNIMPL		getdopt
17892	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
17993	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
180			    fd_set *ex, struct timeval *tv); }
18194	UNIMPL		setdopt
18295	NOARGS		{ int sys_fsync(int fd); }
18396	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
18497	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
18598	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
18699	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
187			    int *anamelen); } oaccept
188100	NOARGS		{ int sys_getpriority(int which, int who); }
189101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
190			    int flags); } osend
191102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
192			    int flags); } orecv
193103	STD		{ int freebsd_sys_sigreturn( \
194			    struct freebsd_sigcontext *scp); }
195104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
196105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
197			    caddr_t val, int valsize); }
198106	NOARGS		{ int sys_listen(int s, int backlog); }
199107	OBSOL		vtimes
200108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
201			    struct sigvec *nsv, struct sigvec *osv); } osigvec
202109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
203110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
204111	NOARGS		{ int sys_sigsuspend(int mask); }
205112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
206			    struct sigstack *oss); } osigstack
207113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
208			    struct omsghdr *msg, int flags); } orecvmsg
209114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
210			    int flags); } osendmsg
211#ifdef TRACE
212115	NOARGS		{ int sys_vtrace(int request, int value); }
213#else
214115	OBSOL		vtrace
215#endif
216116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
217			    struct timezone *tzp); }
218117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
219118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
220			    caddr_t val, int *avalsize); }
221119	OBSOL		resuba
222120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
223			    u_int iovcnt); }
224121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
225			    u_int iovcnt); }
226122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
227			    struct timezone *tzp); }
228123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
229124	NOARGS		{ int sys_fchmod(int fd, int mode); }
230125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
231			    size_t len, int flags, caddr_t from, \
232			    int *fromlenaddr); } orecvfrom
233126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
234127	NOARGS		{ int sys_setregid(int rgid, int egid); }
235128	STD		{ int freebsd_sys_rename(char *from, char *to); }
236129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
237			    long length); } otruncate
238130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
239			    oftruncate
240131	NOARGS		{ int sys_flock(int fd, int how); }
241132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
242133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
243			    int flags, caddr_t to, int tolen); }
244134	NOARGS		{ int sys_shutdown(int s, int how); }
245135	NOARGS		{ int sys_socketpair(int domain, int type, \
246			    int protocol, int *rsv); }
247136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
248137	STD		{ int freebsd_sys_rmdir(char *path); }
249138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
250139	OBSOL		4.2 sigreturn
251140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
252			    struct timeval *olddelta); }
253141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
254			    int *alen); } ogetpeername
255142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
256143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
257			    osethostid
258144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
259			    struct ogetrlimit *rlp); } ogetrlimit
260145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
261			    struct ogetrlimit *rlp); } osetrlimit
262146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
263			    okillpg
264147	NOARGS		{ int sys_setsid(void); }
265148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
266			    caddr_t arg); }
267149	NOARGS		{ int compat_43_sys_quota(void); } oquota
268150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
269			    int *alen); } ogetsockname
270
271; Syscalls 151-180 inclusive are reserved for vendor-specific
272; system calls.  (This includes various calls added for compatibity
273; with other Unix variants.)
274; Some of these calls are now supported by BSD...
275151	UNIMPL
276152	UNIMPL
277153	UNIMPL
278154	UNIMPL
279#if defined(NFS) || defined(NFSSERVER)
280155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
281#else
282155	UNIMPL
283#endif
284156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
285			    u_int count, long *basep); } ogetdirentries
286157	STD		{ int freebsd_sys_statfs(char *path, \
287			    struct statfs *buf); }
288158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
289159	UNIMPL
290160	UNIMPL
291#ifdef NFS
292161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
293#else
294161	UNIMPL		getfh
295#endif
296162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
297			    int len); }
298163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
299			    int len); }
300164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
301165	NOARGS		{ int sys_sysarch(int op, char *parms); }
302166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
303			    struct freebsd_rtprio *rtp); }
304167	UNIMPL
305168	UNIMPL
306; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
307#if defined(SYSVSEM) && !defined(alpha)
308169	NOARGS		{ int compat_10_sys_semsys(int which, int a2, int a3, \
309			    int a4, int a5); }
310#else
311169	UNIMPL		1.0 semsys
312#endif
313; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
314#if defined(SYSVMSG) && !defined(alpha)
315170	NOARGS		{ int compat_10_sys_msgsys(int which, int a2, int a3, \
316			    int a4, int a5, int a6); }
317#else
318170	UNIMPL		1.0 msgsys
319#endif
320; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
321#if defined(SYSVSHM) && !defined(alpha)
322171	NOARGS		{ int compat_10_sys_shmsys(int which, int a2, int a3, \
323			    int a4); }
324#else
325171	UNIMPL		1.0 shmsys
326#endif
327172	UNIMPL
328173	UNIMPL
329174	UNIMPL
330175	UNIMPL
331176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
332177	UNIMPL
333178	UNIMPL
334179	UNIMPL
335180	UNIMPL
336
337; Syscalls 180-199 are used by/reserved for BSD
338181	NOARGS		{ int sys_setgid(gid_t gid); }
339182	NOARGS		{ int sys_setegid(gid_t egid); }
340183	NOARGS		{ int sys_seteuid(uid_t euid); }
341#ifdef LFS
342184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
343			    struct block_info *blkiov, int blkcnt); }
344185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
345			    struct block_info *blkiov, int blkcnt); }
346186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
347187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
348#else
349184	UNIMPL
350185	UNIMPL
351186	UNIMPL
352187	UNIMPL
353#endif
354188	STD		{ int freebsd_sys_stat(char *path, struct stat *ub); }
355189	NOARGS		{ int sys_fstat(int fd, struct stat *sb); }
356190	STD		{ int freebsd_sys_lstat(char *path, struct stat *ub); }
357191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
358192	NOARGS		{ int sys_fpathconf(int fd, int name); }
359193	UNIMPL
360194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
361195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
362196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
363			    u_int count, long *basep); }
364197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
365			    int flags, int fd, long pad, off_t pos); }
366198	NOARGS		{ int sys_nosys(void); } __syscall
367199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
368			    int whence); }
369200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
370			    off_t length); }
371201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
372202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
373			    void *old, size_t *oldlenp, void *new, \
374			    size_t newlen); }
375203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
376204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
377#ifdef FREEBSD_BASED_ON_44LITE_R2
378205	STD		{ int freebsd_sys_undelete(char *path); }
379#else
380205	UNIMPL
381#endif
382206	UNIMPL
383207	UNIMPL
384208	UNIMPL
385209	UNIMPL
386;
387; Syscalls 210-219 are reserved for dynamically loaded syscalls
388;
389210	UNIMPL
390211	UNIMPL
391212	UNIMPL
392213	UNIMPL
393214	UNIMPL
394215	UNIMPL
395216	UNIMPL
396217	UNIMPL
397218	UNIMPL
398219	UNIMPL
399;
400; Syscalls 220-239 are reserved for syscalls imported from NetBSD
401;
402220	UNIMPL
403221	UNIMPL
404222	UNIMPL
405223	UNIMPL
406224	UNIMPL
407225	UNIMPL
408226	UNIMPL
409227	UNIMPL
410228	UNIMPL
411229	UNIMPL
412230	UNIMPL
413231	UNIMPL
414232	UNIMPL
415233	UNIMPL
416234	UNIMPL
417235	UNIMPL
418236	UNIMPL
419237	UNIMPL
420238	UNIMPL
421239	UNIMPL
422240	UNIMPL
423241	UNIMPL
424242	UNIMPL
425243	UNIMPL
426244	UNIMPL
427245	UNIMPL
428246	UNIMPL
429247	UNIMPL
430248	UNIMPL
431249	UNIMPL
432250	UNIMPL
433251	UNIMPL
434252	UNIMPL
435253	UNIMPL
436254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
437			    int gid); }
438