syscalls.master revision 1.13
1	$NetBSD: syscalls.master,v 1.13 1997/11/30 18:06:39 veego 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 stat43 *ub); } stat43
10239	NOARGS		{ pid_t sys_getppid(void); }
10340	STD		{ int compat_43_freebsd_sys_lstat(char *path, \
104			    struct stat43 *ub); } lstat43
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 compat_13_sys_sigaltstack( \
125			    const struct sigaltstack13 *nss, \
126			    struct sigaltstack13 *oss); }
12754	STD		{ int freebsd_sys_ioctl(int fd, u_long com, \
128			    caddr_t data); }
12955	NOARGS		{ int sys_reboot(int opt); }
13056	STD		{ int freebsd_sys_revoke(char *path); }
13157	STD		{ int freebsd_sys_symlink(char *path, char *link); }
13258	STD		{ int freebsd_sys_readlink(char *path, char *buf, \
133			    int count); }
13459	STD		{ int freebsd_sys_execve(char *path, char **argp, \
135			    char **envp); }
13660	NOARGS		{ int sys_umask(int newmask); }
13761	STD		{ int freebsd_sys_chroot(char *path); }
13862	NOARGS		{ int compat_43_sys_fstat(int fd, struct stat43 *sb); } \
139			    fstat43
14063	NOARGS		{ int compat_43_sys_getkerninfo(int op, char *where, \
141			    int *size, int arg); } ogetkerninfo
14264	NOARGS		{ int compat_43_sys_getpagesize(void); } ogetpagesize
14365	STD		{ int freebsd_sys_msync(caddr_t addr, size_t len, \
144			    int flags); }
14566	NOARGS		{ int sys_vfork(void); }
14667	OBSOL		vread
14768	OBSOL		vwrite
14869	NOARGS		{ int sys_sbrk(int incr); }
14970	NOARGS		{ int sys_sstk(int incr); }
15071	NOARGS		{ int compat_43_sys_mmap(caddr_t addr, size_t len, \
151			    int prot, int flags, int fd, long pos); } ommap
15272	NOARGS		{ int sys_ovadvise(int anom); } vadvise
15373	NOARGS		{ int sys_munmap(caddr_t addr, size_t len); }
15474	NOARGS		{ int sys_mprotect(caddr_t addr, size_t len, \
155			    int prot); }
15675	NOARGS		{ int sys_madvise(caddr_t addr, size_t len, \
157			    int behav); }
15876	OBSOL		vhangup
15977	OBSOL		vlimit
16078	NOARGS		{ int sys_mincore(caddr_t addr, size_t len, char *vec); }
16179	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
16280	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
16381	NOARGS		{ int sys_getpgrp(void); }
16482	NOARGS		{ int sys_setpgid(int pid, int pgid); }
16583	NOARGS		{ int sys_setitimer(u_int which, \
166			    struct itimerval *itv, struct itimerval *oitv); }
16784	NOARGS		{ int compat_43_sys_wait(void); } owait
16885	NOARGS		{ int compat_12_sys_swapon(char *name); }
16986	NOARGS		{ int sys_getitimer(u_int which, \
170			    struct itimerval *itv); }
17187	NOARGS		{ int compat_43_sys_gethostname(char *hostname, \
172			    u_int len); } ogethostname
17388	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
174			    u_int len); } osethostname
17589	NOARGS		{ int compat_43_sys_getdtablesize(void); } \
176			    ogetdtablesize
17790	NOARGS		{ int sys_dup2(u_int from, u_int to); }
17891	UNIMPL		getdopt
17992	NOARGS		{ int sys_fcntl(int fd, int cmd, void *arg); }
18093	NOARGS		{ int sys_select(u_int nd, fd_set *in, fd_set *ou, \
181			    fd_set *ex, struct timeval *tv); }
18294	UNIMPL		setdopt
18395	NOARGS		{ int sys_fsync(int fd); }
18496	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
18597	NOARGS		{ int sys_socket(int domain, int type, int protocol); }
18698	NOARGS		{ int sys_connect(int s, caddr_t name, int namelen); }
18799	NOARGS		{ int compat_43_sys_accept(int s, caddr_t name, \
188			    int *anamelen); } oaccept
189100	NOARGS		{ int sys_getpriority(int which, int who); }
190101	NOARGS		{ int compat_43_sys_send(int s, caddr_t buf, int len, \
191			    int flags); } osend
192102	NOARGS		{ int compat_43_sys_recv(int s, caddr_t buf, int len, \
193			    int flags); } orecv
194103	STD		{ int freebsd_sys_sigreturn( \
195			    struct freebsd_sigcontext *scp); }
196104	NOARGS		{ int sys_bind(int s, caddr_t name, int namelen); }
197105	NOARGS		{ int sys_setsockopt(int s, int level, int name, \
198			    caddr_t val, int valsize); }
199106	NOARGS		{ int sys_listen(int s, int backlog); }
200107	OBSOL		vtimes
201108	NOARGS		{ int compat_43_sys_sigvec(int signum, \
202			    struct sigvec *nsv, struct sigvec *osv); } osigvec
203109	NOARGS		{ int compat_43_sys_sigblock(int mask); } osigblock
204110	NOARGS		{ int compat_43_sys_sigsetmask(int mask); } osigsetmask
205111	NOARGS		{ int sys_sigsuspend(int mask); }
206112	NOARGS		{ int compat_43_sys_sigstack(struct sigstack *nss, \
207			    struct sigstack *oss); } osigstack
208113	NOARGS		{ int compat_43_sys_recvmsg(int s, \
209			    struct omsghdr *msg, int flags); } orecvmsg
210114	NOARGS		{ int compat_43_sys_sendmsg(int s, caddr_t msg, \
211			    int flags); } osendmsg
212#ifdef TRACE
213115	NOARGS		{ int sys_vtrace(int request, int value); }
214#else
215115	OBSOL		vtrace
216#endif
217116	NOARGS		{ int sys_gettimeofday(struct timeval *tp, \
218			    struct timezone *tzp); }
219117	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
220118	NOARGS		{ int sys_getsockopt(int s, int level, int name, \
221			    caddr_t val, int *avalsize); }
222119	OBSOL		resuba
223120	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
224			    u_int iovcnt); }
225121	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
226			    u_int iovcnt); }
227122	NOARGS		{ int sys_settimeofday(struct timeval *tv, \
228			    struct timezone *tzp); }
229123	NOARGS		{ int sys_fchown(int fd, int uid, int gid); }
230124	NOARGS		{ int sys_fchmod(int fd, int mode); }
231125	NOARGS		{ int compat_43_sys_recvfrom(int s, caddr_t buf, \
232			    size_t len, int flags, caddr_t from, \
233			    int *fromlenaddr); } orecvfrom
234126	NOARGS		{ int sys_setreuid(int ruid, int euid); }
235127	NOARGS		{ int sys_setregid(int rgid, int egid); }
236128	STD		{ int freebsd_sys_rename(char *from, char *to); }
237129	STD		{ int compat_43_freebsd_sys_truncate(char *path, \
238			    long length); } otruncate
239130	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); } \
240			    oftruncate
241131	NOARGS		{ int sys_flock(int fd, int how); }
242132	STD		{ int freebsd_sys_mkfifo(char *path, int mode); }
243133	NOARGS		{ int sys_sendto(int s, caddr_t buf, size_t len, \
244			    int flags, caddr_t to, int tolen); }
245134	NOARGS		{ int sys_shutdown(int s, int how); }
246135	NOARGS		{ int sys_socketpair(int domain, int type, \
247			    int protocol, int *rsv); }
248136	STD		{ int freebsd_sys_mkdir(char *path, int mode); }
249137	STD		{ int freebsd_sys_rmdir(char *path); }
250138	NOARGS		{ int sys_utimes(char *path, struct timeval *tptr); }
251139	OBSOL		4.2 sigreturn
252140	NOARGS		{ int sys_adjtime(struct timeval *delta, \
253			    struct timeval *olddelta); }
254141	NOARGS		{ int compat_43_sys_getpeername(int fdes, caddr_t asa, \
255			    int *alen); } ogetpeername
256142	NOARGS		{ int32_t compat_43_sys_gethostid(void); } ogethostid
257143	NOARGS		{ int compat_43_sys_sethostid(int32_t hostid); } \
258			    osethostid
259144	NOARGS		{ int compat_43_sys_getrlimit(u_int which, \
260			    struct orlimit *rlp); } ogetrlimit
261145	NOARGS		{ int compat_43_sys_setrlimit(u_int which, \
262			    struct orlimit *rlp); } osetrlimit
263146	NOARGS		{ int compat_43_sys_killpg(int pgid, int signum); } \
264			    okillpg
265147	NOARGS		{ int sys_setsid(void); }
266148	NOARGS		{ int sys_quotactl(char *path, int cmd, int uid, \
267			    caddr_t arg); }
268149	NOARGS		{ int compat_43_sys_quota(void); } oquota
269150	NOARGS		{ int compat_43_sys_getsockname(int fdec, caddr_t asa, \
270			    int *alen); } ogetsockname
271
272; Syscalls 151-180 inclusive are reserved for vendor-specific
273; system calls.  (This includes various calls added for compatibity
274; with other Unix variants.)
275; Some of these calls are now supported by BSD...
276151	UNIMPL
277152	UNIMPL
278153	UNIMPL
279154	UNIMPL
280#if defined(NFS) || defined(NFSSERVER)
281155	NOARGS		{ int sys_nfssvc(int flag, caddr_t argp); }
282#else
283155	UNIMPL
284#endif
285156	NOARGS		{ int compat_43_sys_getdirentries(int fd, char *buf, \
286			    u_int count, long *basep); } ogetdirentries
287157	STD		{ int freebsd_sys_statfs(char *path, \
288			    struct statfs *buf); }
289158	NOARGS		{ int sys_fstatfs(int fd, struct statfs *buf); }
290159	UNIMPL
291160	UNIMPL
292#ifdef NFS
293161	STD		{ int freebsd_sys_getfh(char *fname, fhandle_t *fhp); }
294#else
295161	UNIMPL		getfh
296#endif
297162	NOARGS		{ int compat_09_sys_getdomainname(char *domainname, \
298			    int len); }
299163	NOARGS		{ int compat_09_sys_setdomainname(char *domainname, \
300			    int len); }
301164	NOARGS		{ int compat_09_sys_uname(struct outsname *name); }
302165	NOARGS		{ int sys_sysarch(int op, char *parms); }
303166	STD		{ int freebsd_sys_rtprio(int function, pid_t pid, \
304			    struct freebsd_rtprio *rtp); }
305167	UNIMPL
306168	UNIMPL
307; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
308#if defined(SYSVSEM) && !defined(alpha)
309169	NOARGS		{ int compat_10_sys_semsys(int which, int a2, int a3, \
310			    int a4, int a5); }
311#else
312169	UNIMPL		1.0 semsys
313#endif
314; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
315#if defined(SYSVMSG) && !defined(alpha)
316170	NOARGS		{ int compat_10_sys_msgsys(int which, int a2, int a3, \
317			    int a4, int a5, int a6); }
318#else
319170	UNIMPL		1.0 msgsys
320#endif
321; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
322#if defined(SYSVSHM) && !defined(alpha)
323171	NOARGS		{ int compat_10_sys_shmsys(int which, int a2, int a3, \
324			    int a4); }
325#else
326171	UNIMPL		1.0 shmsys
327#endif
328172	UNIMPL
329173	UNIMPL
330174	UNIMPL
331175	UNIMPL
332176	STD		{ int freebsd_ntp_adjtime(struct freebsd_timex *tp); }
333177	UNIMPL
334178	UNIMPL
335179	UNIMPL
336180	UNIMPL
337
338; Syscalls 180-199 are used by/reserved for BSD
339181	NOARGS		{ int sys_setgid(gid_t gid); }
340182	NOARGS		{ int sys_setegid(gid_t egid); }
341183	NOARGS		{ int sys_seteuid(uid_t euid); }
342#ifdef LFS
343184	NOARGS		{ int lfs_bmapv(fsid_t *fsidp, \
344			    struct block_info *blkiov, int blkcnt); }
345185	NOARGS		{ int lfs_markv(fsid_t *fsidp, \
346			    struct block_info *blkiov, int blkcnt); }
347186	NOARGS		{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
348187	NOARGS		{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
349#else
350184	UNIMPL
351185	UNIMPL
352186	UNIMPL
353187	UNIMPL
354#endif
355188	STD		{ int freebsd_sys_stat(char *path, \
356			    struct stat12 *ub); }
357189	NOARGS		{ int compat_12_sys_fstat(int fd, \
358			    struct stat12 *sb); }
359190	STD		{ int freebsd_sys_lstat(char *path, \
360			    struct stat12 *ub); }
361191	STD		{ int freebsd_sys_pathconf(char *path, int name); }
362192	NOARGS		{ int sys_fpathconf(int fd, int name); }
363193	UNIMPL
364194	NOARGS		{ int sys_getrlimit(u_int which, struct rlimit *rlp); }
365195	NOARGS		{ int sys_setrlimit(u_int which, struct rlimit *rlp); }
366196	NOARGS		{ int compat_12_sys_getdirentries(int fd, char *buf, \
367			    u_int count, long *basep); }
368197	NOARGS		{ caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \
369			    int flags, int fd, long pad, off_t pos); }
370198	NOARGS		{ int sys_nosys(void); } __syscall
371199	NOARGS		{ off_t sys_lseek(int fd, int pad, off_t offset, \
372			    int whence); }
373200	STD		{ int freebsd_sys_truncate(char *path, int pad, \
374			    off_t length); }
375201	NOARGS		{ int sys_ftruncate(int fd, int pad, off_t length); }
376202	NOARGS		{ int sys___sysctl(int *name, u_int namelen, \
377			    void *old, size_t *oldlenp, void *new, \
378			    size_t newlen); }
379203	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
380204	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
381#ifdef FREEBSD_BASED_ON_44LITE_R2
382205	STD		{ int freebsd_sys_undelete(char *path); }
383#else
384205	UNIMPL
385#endif
386206	UNIMPL
387207	UNIMPL
388208	UNIMPL
389209	UNIMPL
390;
391; Syscalls 210-219 are reserved for dynamically loaded syscalls
392;
393210	UNIMPL
394211	UNIMPL
395212	UNIMPL
396213	UNIMPL
397214	UNIMPL
398215	UNIMPL
399216	UNIMPL
400217	UNIMPL
401218	UNIMPL
402219	UNIMPL
403;
404; Syscalls 220-239 are reserved for syscalls imported from NetBSD
405;
406220	UNIMPL
407221	UNIMPL
408222	UNIMPL
409223	UNIMPL
410224	UNIMPL
411225	UNIMPL
412226	UNIMPL
413227	UNIMPL
414228	UNIMPL
415229	UNIMPL
416230	UNIMPL
417231	UNIMPL
418232	UNIMPL
419233	UNIMPL
420234	UNIMPL
421235	UNIMPL
422236	UNIMPL
423237	UNIMPL
424238	UNIMPL
425239	UNIMPL
426240	UNIMPL
427241	UNIMPL
428242	UNIMPL
429243	UNIMPL
430244	UNIMPL
431245	UNIMPL
432246	UNIMPL
433247	UNIMPL
434248	UNIMPL
435249	UNIMPL
436250	UNIMPL
437251	UNIMPL
438252	UNIMPL
439253	UNIMPL
440254	STD		{ int freebsd_sys_lchown(char *path, int uid, \
441			    int gid); }
442