syscalls.master revision 1.17
1	$NetBSD: syscalls.master,v 1.17 1998/06/25 21:17:39 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
36#include "fs_lfs.h"
37#include "fs_nfs.h"
38
39#include <sys/param.h>
40#include <sys/systm.h>
41#include <sys/signal.h>
42#include <sys/mount.h>
43#include <sys/syscallargs.h>
44
45#include <compat/freebsd/freebsd_syscallargs.h>
46
47#include <machine/freebsd_machdep.h>
48
49; Reserved/unimplemented system calls in the range 0-150 inclusive
50; are reserved for use in future Berkeley releases.
51; Additional system calls implemented in vendor and other
52; redistributions should be placed in the reserved range at the end
53; of the current calls.
54
550	NOARGS		{ int sys_nosys(void); } syscall
561	NOARGS		{ int sys_exit(int rval); }
572	NOARGS		{ int sys_fork(void); }
583	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
594	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
605	STD		{ int freebsd_sys_open(char *path, int flags, \
61			    int mode); }
626	NOARGS		{ int sys_close(int fd); }
637	NOARGS		{ int sys_wait4(int pid, int *status, int options, \
64			    struct rusage *rusage); }
658	STD		{ int compat_43_freebsd_sys_creat(char *path, \
66			    int mode); } ocreat
679	STD		{ int freebsd_sys_link(char *path, char *link); }
6810	STD		{ int freebsd_sys_unlink(char *path); }
6911	OBSOL		execv
7012	STD		{ int freebsd_sys_chdir(char *path); }
7113	NOARGS		{ int sys_fchdir(int fd); }
7214	STD		{ int freebsd_sys_mknod(char *path, int mode, \
73			    int dev); }
7415	STD		{ int freebsd_sys_chmod(char *path, int mode); }
7516	STD		{ int freebsd_sys_chown(char *path, int uid, int gid); }
7617	NOARGS		{ int sys_obreak(char *nsize); } break
7718	NOARGS		{ int sys_getfsstat(struct statfs *buf, long bufsize, \
78			    int flags); }
7919	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
80			    int whence); } olseek
8120	NOARGS		{ pid_t sys_getpid(void); }
8221	STD		{ int freebsd_sys_mount(int type, char *path, \
83			    int flags, caddr_t data); }
8422	STD		{ int freebsd_sys_unmount(char *path, int flags); }
8523	NOARGS		{ int sys_setuid(uid_t uid); }
8624	NOARGS		{ uid_t sys_getuid(void); }
8725	NOARGS		{ uid_t sys_geteuid(void); }
8826	STD		{ int freebsd_sys_ptrace(int req, pid_t pid, \
89			    caddr_t addr, int data); }
9027	NOARGS		{ int sys_recvmsg(int s, struct msghdr *msg, \
91			    int flags); }
9228	NOARGS		{ int sys_sendmsg(int s, caddr_t msg, int flags); }
9329	NOARGS		{ int sys_recvfrom(int s, caddr_t buf, size_t len, \
94			    int flags, caddr_t from, int *fromlenaddr); }
9530	NOARGS		{ int sys_accept(int s, caddr_t name, int *anamelen); }
9631	NOARGS		{ int sys_getpeername(int fdes, caddr_t asa, \
97			    int *alen); }
9832	NOARGS		{ int sys_getsockname(int fdes, caddr_t asa, \
99			    int *alen); }
10033	STD		{ int freebsd_sys_access(char *path, int flags); }
10134	STD		{ int freebsd_sys_chflags(char *path, int flags); }
10235	NOARGS		{ int sys_fchflags(int fd, int flags); }
10336	NOARGS		{ int sys_sync(void); }
10437	NOARGS		{ int sys_kill(int pid, int signum); }
10538	STD		{ int compat_43_freebsd_sys_stat(char *path, \
106			    struct stat43 *ub); } stat43
10739	NOARGS		{ pid_t sys_getppid(void); }
10840	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
109			    struct stat43 *ub); } lstat43
11041	NOARGS		{ int sys_dup(u_int fd); }
11142	NOARGS		{ int sys_pipe(void); }
11243	NOARGS		{ gid_t sys_getegid(void); }
11344	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
114			    u_int offset, u_int scale); }
115#ifdef KTRACE
11645	NOARGS		{ int sys_ktrace(char *fname, int ops, int facs, \
117			    int pid); }
118#else
11945	UNIMPL		ktrace
120#endif
12146	NOARGS		{ int sys_sigaction(int signum, struct sigaction *nsa, \
122			    struct sigaction *osa); }
12347	NOARGS		{ gid_t sys_getgid(void); }
12448	NOARGS		{ int sys_sigprocmask(int how, sigset_t mask); }
12549	NOARGS		{ int sys___getlogin(char *namebuf, u_int namelen); }
12650	NOARGS		{ int sys_setlogin(char *namebuf); }
12751	NOARGS		{ int sys_acct(char *path); }
12852	NOARGS		{ int sys_sigpending(void); }
12953	NOARGS		{ int compat_13_sys_sigaltstack( \
130			    const struct sigaltstack13 *nss, \
131			    struct sigaltstack13 *oss); }
13254	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
133			    caddr_t data); }
13455	NOARGS		{ int sys_reboot(int opt); }
13556	STD		{ int freebsd_sys_revoke(char *path); }
13657	STD		{ int freebsd_sys_symlink(char *path, char *link); }
13758	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
138			    int count); }
13959	STD		{ int freebsd_sys_execve(char *path, char **argp, \
140			    char **envp); }
14160	NOARGS		{ int sys_umask(int newmask); }
14261	STD		{ int freebsd_sys_chroot(char *path); }
14362	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
144			    fstat43
14563	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
146			    int *size, int arg); } ogetkerninfo
14764	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
14865	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
149			    int flags); }
15066	NOARGS		{ int sys_vfork(void); }
15167	OBSOL		vread
15268	OBSOL		vwrite
15369	NOARGS		{ int sys_sbrk(int incr); }
15470	NOARGS		{ int sys_sstk(int incr); }
15571	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
156			    int prot, int flags, int fd, long pos); } ommap
15772	NOARGS		{ int sys_ovadvise(int anom); } vadvise
15873	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
15974	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
160			    int prot); }
16175	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
162			    int behav); }
16376	OBSOL		vhangup
16477	OBSOL		vlimit
16578	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
16679	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
16780	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
16881	NOARGS		{ int sys_getpgrp(void); }
16982	NOARGS		{ int sys_setpgid(int pid, int pgid); }
17083	NOARGS		{ int sys_setitimer(u_int which, \
171			    struct itimerval *itv, struct itimerval *oitv); }
17284	NOARGS		{ int compat_43_sys_wait(void); } owait
17385	NOARGS		{ int compat_12_sys_swapon(char *name); }
17486	NOARGS		{ int sys_getitimer(u_int which, \
175			    struct itimerval *itv); }
17687	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
177			    u_int len); } ogethostname
17888	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
179			    u_int len); } osethostname
18089	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
181			    ogetdtablesize
18290	NOARGS		{ int sys_dup2(u_int from, u_int to); }
18391	UNIMPL		getdopt
18492	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
18593	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
186			    fd_set *ex, struct timeval *tv); }
18794	UNIMPL		setdopt
18895	NOARGS		{ int sys_fsync(int fd); }
18996	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
19097	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
19198	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
19299	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
193			    int *anamelen); } oaccept
194100	NOARGS		{ int sys_getpriority(int which, int who); }
195101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
196			    int flags); } osend
197102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
198			    int flags); } orecv
199103	STD		{ int freebsd_sys_sigreturn( \
200			    struct freebsd_sigcontext *scp); }
201104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
202105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
203			    caddr_t val, int valsize); }
204106	NOARGS		{ int sys_listen(int s, int backlog); }
205107	OBSOL		vtimes
206108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
207			    struct sigvec *nsv, struct sigvec *osv); } osigvec
208109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
209110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
210111	NOARGS		{ int sys_sigsuspend(int mask); }
211112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
212			    struct sigstack *oss); } osigstack
213113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
214			    struct omsghdr *msg, int flags); } orecvmsg
215114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
216			    int flags); } osendmsg
217#ifdef TRACE
218115	NOARGS		{ int sys_vtrace(int request, int value); }
219#else
220115	OBSOL		vtrace
221#endif
222116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
223			    struct timezone *tzp); }
224117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
225118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
226			    caddr_t val, int *avalsize); }
227119	OBSOL		resuba
228120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
229			    u_int iovcnt); }
230121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
231			    u_int iovcnt); }
232122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
233			    struct timezone *tzp); }
234123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
235124	NOARGS		{ int sys_fchmod(int fd, int mode); }
236125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
237			    size_t len, int flags, caddr_t from, \
238			    int *fromlenaddr); } orecvfrom
239126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
240127	NOARGS		{ int sys_setregid(int rgid, int egid); }
241128	STD		{ int freebsd_sys_rename(char *from, char *to); }
242129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
243			    long length); } otruncate
244130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
245			    oftruncate
246131	NOARGS		{ int sys_flock(int fd, int how); }
247132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
248133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
249			    int flags, caddr_t to, int tolen); }
250134	NOARGS		{ int sys_shutdown(int s, int how); }
251135	NOARGS		{ int sys_socketpair(int domain, int type, \
252			    int protocol, int *rsv); }
253136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
254137	STD		{ int freebsd_sys_rmdir(char *path); }
255138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
256139	OBSOL		4.2 sigreturn
257140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
258			    struct timeval *olddelta); }
259141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
260			    int *alen); } ogetpeername
261142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
262143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
263			    osethostid
264144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
265			    struct orlimit *rlp); } ogetrlimit
266145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
267			    struct orlimit *rlp); } osetrlimit
268146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
269			    okillpg
270147	NOARGS		{ int sys_setsid(void); }
271148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
272			    caddr_t arg); }
273149	NOARGS		{ int compat_43_sys_quota(void); } oquota
274150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
275			    int *alen); } ogetsockname
276
277; Syscalls 151-180 inclusive are reserved for vendor-specific
278; system calls.  (This includes various calls added for compatibity
279; with other Unix variants.)
280; Some of these calls are now supported by BSD...
281151	UNIMPL
282152	UNIMPL
283153	UNIMPL
284154	UNIMPL
285#if defined(NFS) || defined(NFSSERVER)
286155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
287#else
288155	UNIMPL
289#endif
290156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
291			    u_int count, long *basep); } ogetdirentries
292157	STD		{ int freebsd_sys_statfs(char *path, \
293			    struct statfs *buf); }
294158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
295159	UNIMPL
296160	UNIMPL
297#ifdef NFS
298161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
299#else
300161	UNIMPL		getfh
301#endif
302162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
303			    int len); }
304163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
305			    int len); }
306164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
307165	NOARGS		{ int sys_sysarch(int op, char *parms); }
308166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
309			    struct freebsd_rtprio *rtp); }
310167	UNIMPL
311168	UNIMPL
312; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
313#if defined(SYSVSEM) && !defined(alpha)
314169	STD		{ int freebsd_sys_semsys(int which, int a2, int a3, \
315			    int a4, int a5); }
316#else
317169	UNIMPL		1.0 semsys
318#endif
319; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
320#if defined(SYSVMSG) && !defined(alpha)
321170	STD		{ int freebsd_sys_msgsys(int which, int a2, int a3, \
322			    int a4, int a5, int a6); }
323#else
324170	UNIMPL		1.0 msgsys
325#endif
326; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
327#if defined(SYSVSHM) && !defined(alpha)
328171	STD		{ int freebsd_sys_shmsys(int which, int a2, int a3, \
329			    int a4); }
330#else
331171	UNIMPL		1.0 shmsys
332#endif
333172	UNIMPL
334173	UNIMPL
335174	UNIMPL
336175	UNIMPL
337176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
338177	UNIMPL
339178	UNIMPL
340179	UNIMPL
341180	UNIMPL
342
343; Syscalls 180-199 are used by/reserved for BSD
344181	NOARGS		{ int sys_setgid(gid_t gid); }
345182	NOARGS		{ int sys_setegid(gid_t egid); }
346183	NOARGS		{ int sys_seteuid(uid_t euid); }
347#ifdef LFS
348184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
349			    struct block_info *blkiov, int blkcnt); }
350185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
351			    struct block_info *blkiov, int blkcnt); }
352186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
353187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
354#else
355184	UNIMPL
356185	UNIMPL
357186	UNIMPL
358187	UNIMPL
359#endif
360188	STD		{ int freebsd_sys_stat(char *path, \
361			    struct stat12 *ub); }
362189	NOARGS		{ int compat_12_sys_fstat(int fd, \
363			    struct stat12 *sb); }
364190	STD		{ int freebsd_sys_lstat(char *path, \
365			    struct stat12 *ub); }
366191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
367192	NOARGS		{ int sys_fpathconf(int fd, int name); }
368193	UNIMPL
369194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
370195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
371196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
372			    u_int count, long *basep); }
373197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
374			    int flags, int fd, long pad, off_t pos); }
375198	NOARGS		{ int sys_nosys(void); } __syscall
376199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
377			    int whence); }
378200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
379			    off_t length); }
380201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
381202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
382			    void *old, size_t *oldlenp, void *new, \
383			    size_t newlen); }
384203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
385204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
386#ifdef FREEBSD_BASED_ON_44LITE_R2
387205	STD		{ int freebsd_sys_undelete(char *path); }
388#else
389205	UNIMPL
390#endif
391206	UNIMPL
392207	UNIMPL
393208	UNIMPL
394209	UNIMPL
395;
396; Syscalls 210-219 are reserved for dynamically loaded syscalls
397;
398210	UNIMPL
399211	UNIMPL
400212	UNIMPL
401213	UNIMPL
402214	UNIMPL
403215	UNIMPL
404216	UNIMPL
405217	UNIMPL
406218	UNIMPL
407219	UNIMPL
408;
409; Syscalls 220-239 are reserved for syscalls imported from NetBSD
410;
411220	UNIMPL
412221	UNIMPL
413222	UNIMPL
414223	UNIMPL
415224	UNIMPL
416225	UNIMPL
417226	UNIMPL
418227	UNIMPL
419228	UNIMPL
420229	UNIMPL
421230	UNIMPL
422231	UNIMPL
423232	UNIMPL
424233	UNIMPL
425234	UNIMPL
426235	UNIMPL
427236	UNIMPL
428237	UNIMPL
429238	UNIMPL
430239	UNIMPL
431240	UNIMPL
432241	UNIMPL
433242	UNIMPL
434243	UNIMPL
435244	UNIMPL
436245	UNIMPL
437246	UNIMPL
438247	UNIMPL
439248	UNIMPL
440249	UNIMPL
441250	UNIMPL
442251	UNIMPL
443252	UNIMPL
444253	STD		{ int freebsd_sys_issetugid(void); }
445254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
446			    int gid); }
447