syscalls.master revision 1.20
1	$NetBSD: syscalls.master,v 1.20 1998/10/19 22:27:38 tron 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
38#include "fs_lfs.h"
39#include "fs_nfs.h"
40
41#include <sys/param.h>
42#include <sys/systm.h>
43#include <sys/signal.h>
44#include <sys/mount.h>
45#include <sys/syscallargs.h>
46
47#include <compat/freebsd/freebsd_syscallargs.h>
48
49#include <machine/freebsd_machdep.h>
50
51; Reserved/unimplemented system calls in the range 0-150 inclusive
52; are reserved for use in future Berkeley releases.
53; Additional system calls implemented in vendor and other
54; redistributions should be placed in the reserved range at the end
55; of the current calls.
56
570	NOARGS		{ int sys_nosys(void); } syscall
581	NOARGS		{ int sys_exit(int rval); }
592	NOARGS		{ int sys_fork(void); }
603	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
614	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
625	STD		{ int freebsd_sys_open(char *path, int flags, \
63			    int mode); }
646	NOARGS		{ int sys_close(int fd); }
657	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
66			    struct rusage *rusage); }
678	STD		{ int compat_43_freebsd_sys_creat(char *path, \
68			    int mode); } ocreat
699	STD		{ int freebsd_sys_link(char *path, char *link); }
7010	STD		{ int freebsd_sys_unlink(char *path); }
7111	OBSOL		execv
7212	STD		{ int freebsd_sys_chdir(char *path); }
7313	NOARGS		{ int sys_fchdir(int fd); }
7414	STD		{ int freebsd_sys_mknod(char *path, int mode, \
75			    int dev); }
7615	STD		{ int freebsd_sys_chmod(char *path, int mode); }
7716	STD		{ int freebsd_sys_chown(char *path, int uid, int gid); }
7817	NOARGS		{ int sys_obreak(char *nsize); } break
7918	NOARGS		{ int sys_getfsstat(struct statfs *buf, long bufsize, \
80			    int flags); }
8119	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
82			    int whence); } olseek
8320	NOARGS		{ pid_t sys_getpid(void); }
8421	STD		{ int freebsd_sys_mount(int type, char *path, \
85			    int flags, caddr_t data); }
8622	STD		{ int freebsd_sys_unmount(char *path, int flags); }
8723	NOARGS		{ int sys_setuid(uid_t uid); }
8824	NOARGS		{ uid_t sys_getuid(void); }
8925	NOARGS		{ uid_t sys_geteuid(void); }
9026	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
91			    caddr_t addr, int data); }
9227	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
93			    int flags); }
9428	NOARGS		{ int sys_sendmsg(int s, caddr_t msg, int flags); }
9529	NOARGS		{ int sys_recvfrom(int s, caddr_t buf, size_t len, \
96			    int flags, caddr_t from, int *fromlenaddr); }
9730	NOARGS		{ int sys_accept(int s, caddr_t name, int *anamelen); }
9831	NOARGS		{ int sys_getpeername(int fdes, caddr_t asa, \
99			    int *alen); }
10032	NOARGS		{ int sys_getsockname(int fdes, caddr_t asa, \
101			    int *alen); }
10233	STD		{ int freebsd_sys_access(char *path, int flags); }
10334	STD		{ int freebsd_sys_chflags(char *path, int flags); }
10435	NOARGS		{ int sys_fchflags(int fd, int flags); }
10536	NOARGS		{ int sys_sync(void); }
10637	NOARGS		{ int sys_kill(int pid, int signum); }
10738	STD		{ int compat_43_freebsd_sys_stat(char *path, \
108			    struct stat43 *ub); } stat43
10939	NOARGS		{ pid_t sys_getppid(void); }
11040	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
111			    struct stat43 *ub); } lstat43
11241	NOARGS		{ int sys_dup(u_int fd); }
11342	NOARGS		{ int sys_pipe(void); }
11443	NOARGS		{ gid_t sys_getegid(void); }
11544	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
116			    u_int offset, u_int scale); }
117#ifdef KTRACE
11845	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
119			    int pid); }
120#else
12145	UNIMPL		ktrace
122#endif
12346	NOARGS		{ int compat_13_sys_sigaction(int signum, \
124			    const struct sigaction13 *nsa, \
125			    struct sigaction13 *osa); }
12647	NOARGS		{ gid_t sys_getgid(void); }
12748	NOARGS		{ int compat_13_sys_sigprocmask(int how, \
128			    int mask); }
12949	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
13050	NOARGS		{ int sys_setlogin(char *namebuf); }
13151	NOARGS		{ int sys_acct(char *path); }
13252	NOARGS		{ int compat_13_sys_sigpending(void); }
13353	NOARGS		{ int compat_13_sys_sigaltstack( \
134			    const struct sigaltstack13 *nss, \
135			    struct sigaltstack13 *oss); }
13654	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
137			    caddr_t data); }
13855	NOARGS		{ int sys_reboot(int opt); }
13956	STD		{ int freebsd_sys_revoke(char *path); }
14057	STD		{ int freebsd_sys_symlink(char *path, char *link); }
14158	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
142			    int count); }
14359	STD		{ int freebsd_sys_execve(char *path, char **argp, \
144			    char **envp); }
14560	NOARGS		{ int sys_umask(int newmask); }
14661	STD		{ int freebsd_sys_chroot(char *path); }
14762	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
148			    fstat43
14963	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
150			    int *size, int arg); } ogetkerninfo
15164	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
15265	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
153			    int flags); }
15466	NOARGS		{ int sys_vfork(void); }
15567	OBSOL		vread
15668	OBSOL		vwrite
15769	NOARGS		{ int sys_sbrk(int incr); }
15870	NOARGS		{ int sys_sstk(int incr); }
15971	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
160			    int prot, int flags, int fd, long pos); } ommap
16172	NOARGS		{ int sys_ovadvise(int anom); } vadvise
16273	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
16374	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
164			    int prot); }
16575	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
166			    int behav); }
16776	OBSOL		vhangup
16877	OBSOL		vlimit
16978	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
17079	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
17180	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
17281	NOARGS		{ int sys_getpgrp(void); }
17382	NOARGS		{ int sys_setpgid(int pid, int pgid); }
17483	NOARGS		{ int sys_setitimer(u_int which, \
175			    struct itimerval *itv, struct itimerval *oitv); }
17684	NOARGS		{ int compat_43_sys_wait(void); } owait
17785	NOARGS		{ int compat_12_sys_swapon(char *name); }
17886	NOARGS		{ int sys_getitimer(u_int which, \
179			    struct itimerval *itv); }
18087	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
181			    u_int len); } ogethostname
18288	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
183			    u_int len); } osethostname
18489	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
185			    ogetdtablesize
18690	NOARGS		{ int sys_dup2(u_int from, u_int to); }
18791	UNIMPL		getdopt
18892	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
18993	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
190			    fd_set *ex, struct timeval *tv); }
19194	UNIMPL		setdopt
19295	NOARGS		{ int sys_fsync(int fd); }
19396	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
19497	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
19598	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
19699	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
197			    int *anamelen); } oaccept
198100	NOARGS		{ int sys_getpriority(int which, int who); }
199101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
200			    int flags); } osend
201102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
202			    int flags); } orecv
203103	STD		{ int freebsd_sys_sigreturn( \
204			    struct freebsd_sigcontext *scp); }
205104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
206105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
207			    caddr_t val, int valsize); }
208106	NOARGS		{ int sys_listen(int s, int backlog); }
209107	OBSOL		vtimes
210108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
211			    struct sigvec *nsv, struct sigvec *osv); } osigvec
212109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
213110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
214111	NOARGS		{ int compat_13_sys_sigsuspend(int mask); }
215112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
216			    struct sigstack *oss); } osigstack
217113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
218			    struct omsghdr *msg, int flags); } orecvmsg
219114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
220			    int flags); } osendmsg
221#ifdef TRACE
222115	NOARGS		{ int sys_vtrace(int request, int value); }
223#else
224115	OBSOL		vtrace
225#endif
226116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
227			    struct timezone *tzp); }
228117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
229118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
230			    caddr_t val, int *avalsize); }
231119	OBSOL		resuba
232120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
233			    u_int iovcnt); }
234121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
235			    u_int iovcnt); }
236122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
237			    struct timezone *tzp); }
238123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
239124	NOARGS		{ int sys_fchmod(int fd, int mode); }
240125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
241			    size_t len, int flags, caddr_t from, \
242			    int *fromlenaddr); } orecvfrom
243126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
244127	NOARGS		{ int sys_setregid(int rgid, int egid); }
245128	STD		{ int freebsd_sys_rename(char *from, char *to); }
246129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
247			    long length); } otruncate
248130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
249			    oftruncate
250131	NOARGS		{ int sys_flock(int fd, int how); }
251132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
252133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
253			    int flags, caddr_t to, int tolen); }
254134	NOARGS		{ int sys_shutdown(int s, int how); }
255135	NOARGS		{ int sys_socketpair(int domain, int type, \
256			    int protocol, int *rsv); }
257136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
258137	STD		{ int freebsd_sys_rmdir(char *path); }
259138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
260139	OBSOL		4.2 sigreturn
261140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
262			    struct timeval *olddelta); }
263141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
264			    int *alen); } ogetpeername
265142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
266143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
267			    osethostid
268144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
269			    struct orlimit *rlp); } ogetrlimit
270145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
271			    struct orlimit *rlp); } osetrlimit
272146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
273			    okillpg
274147	NOARGS		{ int sys_setsid(void); }
275148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
276			    caddr_t arg); }
277149	NOARGS		{ int compat_43_sys_quota(void); } oquota
278150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
279			    int *alen); } ogetsockname
280
281; Syscalls 151-180 inclusive are reserved for vendor-specific
282; system calls.  (This includes various calls added for compatibity
283; with other Unix variants.)
284; Some of these calls are now supported by BSD...
285151	UNIMPL
286152	UNIMPL
287153	UNIMPL
288154	UNIMPL
289#if defined(NFS) || defined(NFSSERVER)
290155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
291#else
292155	UNIMPL
293#endif
294156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
295			    u_int count, long *basep); } ogetdirentries
296157	STD		{ int freebsd_sys_statfs(char *path, \
297			    struct statfs *buf); }
298158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
299159	UNIMPL
300160	UNIMPL
301#ifdef NFS
302161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
303#else
304161	UNIMPL		getfh
305#endif
306162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
307			    int len); }
308163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
309			    int len); }
310164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
311165	NOARGS		{ int sys_sysarch(int op, char *parms); }
312166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
313			    struct freebsd_rtprio *rtp); }
314167	UNIMPL
315168	UNIMPL
316; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
317#if defined(SYSVSEM) && !defined(alpha)
318169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
319			    int a4, int a5); }
320#else
321169	UNIMPL		1.0 semsys
322#endif
323; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
324#if defined(SYSVMSG) && !defined(alpha)
325170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
326			    int a4, int a5, int a6); }
327#else
328170	UNIMPL		1.0 msgsys
329#endif
330; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
331#if defined(SYSVSHM) && !defined(alpha)
332171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
333			    int a4); }
334#else
335171	UNIMPL		1.0 shmsys
336#endif
337172	UNIMPL
338173	UNIMPL
339174	UNIMPL
340175	UNIMPL
341176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
342177	UNIMPL
343178	UNIMPL
344179	UNIMPL
345180	UNIMPL
346
347; Syscalls 180-199 are used by/reserved for BSD
348181	NOARGS		{ int sys_setgid(gid_t gid); }
349182	NOARGS		{ int sys_setegid(gid_t egid); }
350183	NOARGS		{ int sys_seteuid(uid_t euid); }
351#ifdef LFS
352184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
353			    struct block_info *blkiov, int blkcnt); }
354185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
355			    struct block_info *blkiov, int blkcnt); }
356186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
357187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
358#else
359184	UNIMPL
360185	UNIMPL
361186	UNIMPL
362187	UNIMPL
363#endif
364188	STD		{ int freebsd_sys_stat(char *path, \
365			    struct stat12 *ub); }
366189	NOARGS		{ int compat_12_sys_fstat(int fd, \
367			    struct stat12 *sb); }
368190	STD		{ int freebsd_sys_lstat(char *path, \
369			    struct stat12 *ub); }
370191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
371192	NOARGS		{ int sys_fpathconf(int fd, int name); }
372193	UNIMPL
373194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
374195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
375196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
376			    u_int count, long *basep); }
377197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
378			    int flags, int fd, long pad, off_t pos); }
379198	NOARGS		{ int sys_nosys(void); } __syscall
380199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
381			    int whence); }
382200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
383			    off_t length); }
384201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
385202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
386			    void *old, size_t *oldlenp, void *new, \
387			    size_t newlen); }
388203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
389204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
390#ifdef FREEBSD_BASED_ON_44LITE_R2
391205	STD		{ int freebsd_sys_undelete(char *path); }
392#else
393205	UNIMPL
394#endif
395206	UNIMPL
396207	UNIMPL
397208	UNIMPL
398209	UNIMPL
399;
400; Syscalls 210-219 are reserved for dynamically loaded syscalls
401;
402210	UNIMPL
403211	UNIMPL
404212	UNIMPL
405213	UNIMPL
406214	UNIMPL
407215	UNIMPL
408216	UNIMPL
409217	UNIMPL
410218	UNIMPL
411219	UNIMPL
412;
413; Syscalls 220-239 are reserved for syscalls imported from NetBSD
414;
415220	UNIMPL
416221	UNIMPL
417222	UNIMPL
418223	UNIMPL
419224	UNIMPL
420225	UNIMPL
421226	UNIMPL
422227	UNIMPL
423228	UNIMPL
424229	UNIMPL
425230	UNIMPL
426231	UNIMPL
427232	UNIMPL
428233	UNIMPL
429234	UNIMPL
430235	UNIMPL
431236	UNIMPL
432237	UNIMPL
433238	UNIMPL
434239	UNIMPL
435240	UNIMPL
436241	UNIMPL
437242	UNIMPL
438243	UNIMPL
439244	UNIMPL
440245	UNIMPL
441246	UNIMPL
442247	UNIMPL
443248	UNIMPL
444249	UNIMPL
445250	UNIMPL
446251	UNIMPL
447252	UNIMPL
448253	STD		{ int freebsd_sys_issetugid(void); }
449254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
450			    int gid); }
451