syscalls.master revision 17702
1	$Id: syscalls.master,v 1.27 1996/03/02 16:51:25 peter Exp $
2;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
3;
4; System call name/number master file.
5; Processed to created init_sysent.c, syscalls.c and syscall.h.
6
7; Columns: number type nargs namespc name alt{name,tag,rtyp}/comments
8;	number	system call number, must be in order
9;	type	one of STD, OBSOL, UNIMPL, COMPAT
10;	namespc one of POSIX, BSD, NOHIDE
11;	name	psuedo-prototype of syscall routine
12;		If one of the following alts is different, then all appear:
13;	altname	name of system call if different
14;	alttag	name of args struct tag if different from [o]`name'"_args"
15;	altrtyp	return type if not int (bogus - syscalls always return int)
16;		for UNIMPL/OBSOL, name continues with comments
17
18; types:
19;	STD	always included
20;	COMPAT	included on COMPAT #ifdef
21;	LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
22;	OBSOL	obsolete, not included in system, only specifies name
23;	UNIMPL	not implemented, placeholder only
24
25; #ifdef's, etc. may be included, and are copied to the output files.
26
27#include <sys/types.h>
28#include <sys/param.h>
29#include <sys/mount.h>
30#include <sys/sysent.h>
31#include <sys/sysproto.h>
32
33; Reserved/unimplemented system calls in the range 0-150 inclusive
34; are reserved for use in future Berkeley releases.
35; Additional system calls implemented in vendor and other
36; redistributions should be placed in the reserved range at the end
37; of the current calls.
38
390	STD	NOHIDE	{ int nosys(void); } syscall nosys_args int
401	STD	NOHIDE	{ void exit(int rval); } exit rexit_args void
412	STD	POSIX	{ int fork(void); }
423	STD	POSIX	{ int read(int fd, char *buf, u_int nbyte); }
434	STD	POSIX	{ int write(int fd, char *buf, u_int nbyte); }
445	STD	POSIX	{ int open(char *path, int flags, int mode); }
45; XXX should be		{ int open(const char *path, int flags, ...); }
46; but we're not ready for `const' or varargs.
47; XXX man page says `mode_t mode'.
486	STD	POSIX	{ int close(int fd); }
497	STD	BSD	{ int wait4(int pid, int *status, int options, \
50			    struct rusage *rusage); } wait4 wait_args int
518	COMPAT	BSD	{ int creat(char *path, int mode); }
529	STD	POSIX	{ int link(char *path, char *link); }
5310	STD	POSIX	{ int unlink(char *path); }
5411	OBSOL	NOHIDE	execv
5512	STD	POSIX	{ int chdir(char *path); }
5613	STD	BSD	{ int fchdir(int fd); }
5714	STD	POSIX	{ int mknod(char *path, int mode, int dev); }
5815	STD	POSIX	{ int chmod(char *path, int mode); }
5916	STD	POSIX	{ int chown(char *path, int uid, int gid); }
6017	STD	BSD	{ int obreak(char *nsize); } break obreak_args int
6118	STD	BSD	{ int getfsstat(struct statfs *buf, long bufsize, \
62			    int flags); }
6319	COMPAT	POSIX	{ long lseek(int fd, long offset, int whence); }
6420	STD	POSIX	{ pid_t getpid(void); }
6521	STD	BSD	{ int mount(int type, char *path, int flags, \
66			    caddr_t data); }
67; XXX 4.4lite2 uses `char *type' but we're not ready for that.
68; XXX `path' should have type `const char *' but we're not ready for that.
6922	STD	BSD	{ int unmount(char *path, int flags); }
7023	STD	POSIX	{ int setuid(uid_t uid); }
7124	STD	POSIX	{ uid_t getuid(void); }
7225	STD	POSIX	{ uid_t geteuid(void); }
7326	STD	BSD	{ int ptrace(int req, pid_t pid, caddr_t addr, \
74			    int data); }
7527	STD	BSD	{ int recvmsg(int s, struct msghdr *msg, int flags); }
7628	STD	BSD	{ int sendmsg(int s, caddr_t msg, int flags); }
7729	STD	BSD	{ int recvfrom(int s, caddr_t buf, size_t len, \
78			    int flags, caddr_t from, int *fromlenaddr); }
7930	STD	BSD	{ int accept(int s, caddr_t name, int *anamelen); }
8031	STD	BSD	{ int getpeername(int fdes, caddr_t asa, int *alen); }
8132	STD	BSD	{ int getsockname(int fdes, caddr_t asa, int *alen); }
8233	STD	POSIX	{ int access(char *path, int flags); }
8334	STD	BSD	{ int chflags(char *path, int flags); }
8435	STD	BSD	{ int fchflags(int fd, int flags); }
8536	STD	BSD	{ int sync(void); }
8637	STD	POSIX	{ int kill(int pid, int signum); }
8738	COMPAT	POSIX	{ int stat(char *path, struct ostat *ub); }
8839	STD	POSIX	{ pid_t getppid(void); }
8940	COMPAT	POSIX	{ int lstat(char *path, struct ostat *ub); }
9041	STD	POSIX	{ int dup(u_int fd); }
9142	STD	POSIX	{ int pipe(void); }
9243	STD	POSIX	{ gid_t getegid(void); }
9344	STD	BSD	{ int profil(caddr_t samples, u_int size, \
94			    u_int offset, u_int scale); }
9545	STD	BSD	{ int ktrace(char *fname, int ops, int facs, \
96			    int pid); }
9746	STD	POSIX	{ int sigaction(int signum, struct sigaction *nsa, \
98			    struct sigaction *osa); }
9947	STD	POSIX	{ gid_t getgid(void); }
10048	STD	POSIX	{ int sigprocmask(int how, sigset_t mask); }
10149	STD	BSD	{ int getlogin(char *namebuf, u_int namelen); }
10250	STD	BSD	{ int setlogin(char *namebuf); }
10351	STD	BSD	{ int acct(char *path); }
10452	STD	POSIX	{ int sigpending(void); }
10553	STD	BSD	{ int sigaltstack(struct sigaltstack *nss, \
106			    struct sigaltstack *oss); }
10754	STD	POSIX	{ int ioctl(int fd, u_long com, caddr_t data); }
10855	STD	BSD	{ int reboot(int opt); }
10956	STD	POSIX	{ int revoke(char *path); }
11057	STD	POSIX	{ int symlink(char *path, char *link); }
11158	STD	POSIX	{ int readlink(char *path, char *buf, int count); }
11259	STD	POSIX	{ int execve(char *fname, char **argv, char **envv); }
11360	STD	POSIX	{ int umask(int newmask); } umask umask_args mode_t
11461	STD	BSD	{ int chroot(char *path); }
11562	COMPAT	POSIX	{ int fstat(int fd, struct ostat *sb); }
11663	COMPAT	BSD	{ int getkerninfo(int op, char *where, int *size, \
117			    int arg); } getkerninfo getkerninfo_args int
11864	COMPAT	BSD	{ int getpagesize(void); } \
119			    getpagesize getpagesize_args int
12065	STD	BSD	{ int msync(caddr_t addr, size_t len, int flags); }
12166	STD	BSD	{ int vfork(void); }
12267	OBSOL	NOHIDE	vread
12368	OBSOL	NOHIDE	vwrite
12469	STD	BSD	{ int sbrk(int incr); }
12570	STD	BSD	{ int sstk(int incr); }
12671	COMPAT	BSD	{ int mmap(caddr_t addr, int len, int prot, \
127			    int flags, int fd, long pos); }
12872	STD	BSD	{ int ovadvise(int anom); } vadvise ovadvise_args int
12973	STD	BSD	{ int munmap(caddr_t addr, size_t len); }
13074	STD	BSD	{ int mprotect(caddr_t addr, size_t len, int prot); }
13175	STD	BSD	{ int madvise(caddr_t addr, size_t len, int behav); }
13276	OBSOL	NOHIDE	vhangup
13377	OBSOL	NOHIDE	vlimit
13478	STD	BSD	{ int mincore(caddr_t addr, size_t len, char *vec); }
13579	STD	POSIX	{ int getgroups(u_int gidsetsize, gid_t *gidset); }
13680	STD	POSIX	{ int setgroups(u_int gidsetsize, gid_t *gidset); }
13781	STD	POSIX	{ int getpgrp(void); }
13882	STD	POSIX	{ int setpgid(int pid, int pgid); }
13983	STD	BSD	{ int setitimer(u_int which, struct itimerval *itv, \
140			    struct itimerval *oitv); }
14184	COMPAT	BSD	{ int wait(void); }
14285	STD	BSD	{ int swapon(char *name); }
14386	STD	BSD	{ int getitimer(u_int which, struct itimerval *itv); }
14487	COMPAT	BSD	{ int gethostname(char *hostname, u_int len); } \
145			    gethostname gethostname_args int
14688	COMPAT	BSD	{ int sethostname(char *hostname, u_int len); } \
147			    sethostname sethostname_args int
14889	STD	BSD	{ int getdtablesize(void); }
14990	STD	POSIX	{ int dup2(u_int from, u_int to); }
15091	UNIMPL	BSD	getdopt
15192	STD	POSIX	{ int fcntl(int fd, int cmd, int arg); }
152; XXX should be		{ int fcntl(int fd, int cmd, ...); }
153; but we're not ready for varargs.
154; XXX man page says `int arg' too.
15593	STD	BSD	{ int select(int nd, fd_set *in, fd_set *ou, \
156			    fd_set *ex, struct timeval *tv); }
15794	UNIMPL	BSD	setdopt
15895	STD	POSIX	{ int fsync(int fd); }
15996	STD	BSD	{ int setpriority(int which, int who, int prio); }
16097	STD	BSD	{ int socket(int domain, int type, int protocol); }
16198	STD	BSD	{ int connect(int s, caddr_t name, int namelen); }
16299	CPT_NOA	BSD	{ int accept(int s, caddr_t name, int *anamelen); } \
163			    accept accept_args int
164100	STD	BSD	{ int getpriority(int which, int who); }
165101	COMPAT	BSD	{ int send(int s, caddr_t buf, int len, int flags); }
166102	COMPAT	BSD	{ int recv(int s, caddr_t buf, int len, int flags); }
167103	STD	BSD	{ int sigreturn(struct sigcontext *sigcntxp); }
168104	STD	BSD	{ int bind(int s, caddr_t name, int namelen); }
169105	STD	BSD	{ int setsockopt(int s, int level, int name, \
170			    caddr_t val, int valsize); }
171106	STD	BSD	{ int listen(int s, int backlog); }
172107	OBSOL	NOHIDE	vtimes
173108	COMPAT	BSD	{ int sigvec(int signum, struct sigvec *nsv, \
174			    struct sigvec *osv); }
175109	COMPAT	BSD	{ int sigblock(int mask); }
176110	COMPAT	BSD	{ int sigsetmask(int mask); }
177111	STD	POSIX	{ int sigsuspend(int mask); }
178112	COMPAT	BSD	{ int sigstack(struct sigstack *nss, \
179			    struct sigstack *oss); }
180113	COMPAT	BSD	{ int recvmsg(int s, struct omsghdr *msg, int flags); }
181114	COMPAT	BSD	{ int sendmsg(int s, caddr_t msg, int flags); }
182115	OBSOL	NOHIDE	vtrace
183116	STD	BSD	{ int gettimeofday(struct timeval *tp, \
184			    struct timezone *tzp); }
185117	STD	BSD	{ int getrusage(int who, struct rusage *rusage); }
186118	STD	BSD	{ int getsockopt(int s, int level, int name, \
187			    caddr_t val, int *avalsize); }
188119	UNIMPL	NOHIDE	resuba (BSD/OS 2.x)
189120	STD	BSD	{ int readv(int fd, struct iovec *iovp, u_int iovcnt); }
190121	STD	BSD	{ int writev(int fd, struct iovec *iovp, \
191			    u_int iovcnt); }
192122	STD	BSD	{ int settimeofday(struct timeval *tv, \
193			    struct timezone *tzp); }
194123	STD	BSD	{ int fchown(int fd, int uid, int gid); }
195124	STD	BSD	{ int fchmod(int fd, int mode); }
196125	CPT_NOA	BSD	{ int recvfrom(int s, caddr_t buf, size_t len, \
197			    int flags, caddr_t from, int *fromlenaddr); } \
198			    recvfrom recvfrom_args int
199126	STD	BSD	{ int setreuid(int ruid, int euid); }
200127	STD	BSD	{ int setregid(int rgid, int egid); }
201128	STD	POSIX	{ int rename(char *from, char *to); }
202129	COMPAT	BSD	{ int truncate(char *path, long length); }
203130	COMPAT	BSD	{ int ftruncate(int fd, long length); }
204131	STD	BSD	{ int flock(int fd, int how); }
205132	STD	POSIX	{ int mkfifo(char *path, int mode); }
206133	STD	BSD	{ int sendto(int s, caddr_t buf, size_t len, \
207			    int flags, caddr_t to, int tolen); }
208134	STD	BSD	{ int shutdown(int s, int how); }
209135	STD	BSD	{ int socketpair(int domain, int type, int protocol, \
210			    int *rsv); }
211136	STD	POSIX	{ int mkdir(char *path, int mode); }
212137	STD	POSIX	{ int rmdir(char *path); }
213138	STD	BSD	{ int utimes(char *path, struct timeval *tptr); }
214139	OBSOL	NOHIDE	4.2 sigreturn
215140	STD	BSD	{ int adjtime(struct timeval *delta, \
216			    struct timeval *olddelta); }
217141	COMPAT	BSD	{ int getpeername(int fdes, caddr_t asa, int *alen); }
218142	COMPAT	BSD	{ long gethostid(void); }
219143	COMPAT	BSD	{ int sethostid(long hostid); }
220144	COMPAT	BSD	{ int getrlimit(u_int which, struct ogetrlimit *rlp); }
221145	COMPAT	BSD	{ int setrlimit(u_int which, struct ogetrlimit *rlp); }
222146	COMPAT	BSD	{ int killpg(int pgid, int signum); }
223147	STD	POSIX	{ int setsid(void); }
224148	STD	BSD	{ int quotactl(char *path, int cmd, int uid, \
225			    caddr_t arg); }
226149	COMPAT	BSD	{ int quota(void); }
227150	CPT_NOA	BSD	{ int getsockname(int fdec, caddr_t asa, int *alen); }\
228			    getsockname getsockname_args int
229
230; Syscalls 151-180 inclusive are reserved for vendor-specific
231; system calls.  (This includes various calls added for compatibity
232; with other Unix variants.)
233; Some of these calls are now supported by BSD...
234151	UNIMPL	NOHIDE	sem_lock (BSD/OS 2.x)
235152	UNIMPL	NOHIDE	sem_wakeup (BSD/OS 2.x)
236153	UNIMPL	NOHIDE	asyncdaemon (BSD/OS 2.x)
237154	UNIMPL	NOHIDE	nosys
238#ifdef NFS
239155	STD	BSD	{ int nfssvc(int flag, caddr_t argp); }
240#else
241155	UNIMPL	BSD	nosys
242#endif
243156	COMPAT	BSD	{ int getdirentries(int fd, char *buf, u_int count, \
244			    long *basep); }
245157	STD	BSD	{ int statfs(char *path, struct statfs *buf); }
246158	STD	BSD	{ int fstatfs(int fd, struct statfs *buf); }
247159	UNIMPL	NOHIDE	nosys
248160	UNIMPL	NOHIDE	nosys
249#if defined(NFS) && !defined (NFS_NOSERVER)
250161	STD	BSD	{ int getfh(char *fname, fhandle_t *fhp); }
251#else
252161	UNIMPL	BSD	nosys
253#endif
254162	STD	BSD	{ int getdomainname(char *domainname, int len); }
255163	STD	BSD	{ int setdomainname(char *domainname, int len); }
256164	STD	BSD	{ int uname(struct utsname *name); }
257165	STD	BSD	{ int sysarch(int op, char *parms); }
258166	STD	BSD	{ int rtprio(int function, pid_t pid, \
259			    struct rtprio *rtp); }
260167	UNIMPL	NOHIDE	nosys
261168	UNIMPL	NOHIDE	nosys
262169	STD	BSD	{ int semsys(int which, int a2, int a3, int a4, \
263			    int a5); }
264; XXX should be		{ int semsys(int which, ...); }
265170	STD	BSD	{ int msgsys(int which, int a2, int a3, int a4, \
266			    int a5, int a6); }
267; XXX should be		{ int msgsys(int which, ...); }
268171	STD	BSD	{ int shmsys(int which, int a2, int a3, int a4); }
269; XXX should be		{ int shmsys(int which, ...); }
270172	UNIMPL	NOHIDE	nosys
271173	UNIMPL	NOHIDE	nosys
272174	UNIMPL	NOHIDE	nosys
273175	UNIMPL	NOHIDE	nosys
274176	STD	BSD	{ int ntp_adjtime(struct timex *tp); }
275177	UNIMPL	NOHIDE	sfork (BSD/OS 2.x)
276178	UNIMPL	NOHIDE	getdescriptor (BSD/OS 2.x)
277179	UNIMPL	NOHIDE	setdescriptor (BSD/OS 2.x)
278180	UNIMPL	NOHIDE	nosys
279
280; Syscalls 180-199 are used by/reserved for BSD
281181	STD	POSIX	{ int setgid(gid_t gid); }
282182	STD	BSD	{ int setegid(gid_t egid); }
283183	STD	BSD	{ int seteuid(uid_t euid); }
284#ifdef LFS
285184	STD	BSD	{ int lfs_bmapv(fsid_t *fsidp, \
286			    struct block_info *blkiov, int blkcnt); }
287185	STD	BSD	{ int lfs_markv(fsid_t *fsidp, \
288			    struct block_info *blkiov, int blkcnt); }
289186	STD	BSD	{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
290187	STD	BSD	{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
291#else
292184	UNIMPL	BSD	nosys
293185	UNIMPL	BSD	nosys
294186	UNIMPL	BSD	nosys
295187	UNIMPL	BSD	nosys
296#endif
297188	STD	POSIX	{ int stat(char *path, struct stat *ub); }
298189	STD	POSIX	{ int fstat(int fd, struct stat *sb); }
299190	STD	POSIX	{ int lstat(char *path, struct stat *ub); }
300191	STD	POSIX	{ int pathconf(char *path, int name); }
301192	STD	POSIX	{ int fpathconf(int fd, int name); }
302193	UNIMPL	NOHIDE	nosys
303194	STD	BSD	{ int getrlimit(u_int which, \
304			    struct orlimit *rlp); } \
305			    getrlimit __getrlimit_args int
306195	STD	BSD	{ int setrlimit(u_int which, \
307			    struct orlimit *rlp); } \
308			    setrlimit __setrlimit_args int
309196	STD	BSD	{ int getdirentries(int fd, char *buf, u_int count, \
310			    long *basep); }
311197	STD	BSD	{ caddr_t mmap(caddr_t addr, size_t len, int prot, \
312			    int flags, int fd, long pad, off_t pos); }
313198	STD	NOHIDE	{ int nosys(void); } __syscall __syscall_args int
314199	STD	POSIX	{ off_t lseek(int fd, int pad, off_t offset, \
315			    int whence); }
316200	STD	BSD	{ int truncate(char *path, int pad, off_t length); }
317201	STD	BSD	{ int ftruncate(int fd, int pad, off_t length); }
318202	STD	BSD	{ int __sysctl(int *name, u_int namelen, void *old, \
319			    size_t *oldlenp, void *new, size_t newlen); } \
320			    __sysctl sysctl_args int
321; properly, __sysctl should be a NOHIDE, but making an exception
322; here allows to avoid one in libc/sys/Makefile.inc.
323203	STD	BSD	{ int mlock(caddr_t addr, size_t len); }
324204	STD	BSD	{ int munlock(caddr_t addr, size_t len); }
325205	UNIMPL	NOHIDE	nosys
326206	UNIMPL	NOHIDE	nosys
327207	UNIMPL	NOHIDE	nosys
328208	UNIMPL	NOHIDE	nosys
329209	UNIMPL	NOHIDE	nosys
330
331;
332; The following are reserved for loadable syscalls
333;
334210	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
335211	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
336212	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
337213	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
338214	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
339215	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
340216	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
341217	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
342218	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
343219	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
344
345;
346; The following were introduced with NetBSD/4.4Lite-2
347;
348220	STD	BSD	{ int __semctl(int semid, int semnum, int cmd, \
349			    union semun *arg); }
350221	STD	BSD	{ int semget(key_t key, int nsems, int semflg); }
351222	STD	BSD	{ int semop(int semid, struct sembuf *sops, \
352			    u_int nsops); }
353223	STD	BSD	{ int semconfig(int flag); }
354224	STD	BSD	{ int msgctl(int msqid, int cmd, \
355			    struct msqid_ds *buf); }
356225	STD	BSD	{ int msgget(key_t key, int msgflg); }
357226	STD	BSD	{ int msgsnd(int msqid, void *msgp, size_t msgsz, \
358			    int msgflg); }
359227	STD	BSD	{ int msgrcv(int msqid, void *msgp, size_t msgsz, \
360			    long msgtyp, int msgflg); }
361228	STD	BSD	{ int shmat(int shmid, void *shmaddr, int shmflg); }
362229	STD	BSD	{ int shmctl(int shmid, int cmd, \
363			    struct shmid_ds *buf); }
364230	STD	BSD	{ int shmdt(void *shmaddr); }
365231	STD	BSD	{ int shmget(key_t key, int size, int shmflg); }
366;
367232	UNIMPL	NOHIDE	nosys
368233	UNIMPL	NOHIDE	nosys
369234	UNIMPL	NOHIDE	nosys
370235	UNIMPL	NOHIDE	nosys
371236	UNIMPL	NOHIDE	nosys
372237	UNIMPL	NOHIDE	nosys
373238	UNIMPL	NOHIDE	nosys
374239	UNIMPL	NOHIDE	nosys
375240	UNIMPL	NOHIDE	nosys
376241	UNIMPL	NOHIDE	nosys
377242	UNIMPL	NOHIDE	nosys
378243	UNIMPL	NOHIDE	nosys
379244	UNIMPL	NOHIDE	nosys
380245	UNIMPL	NOHIDE	nosys
381246	UNIMPL	NOHIDE	nosys
382247	UNIMPL	NOHIDE	nosys
383248	UNIMPL	NOHIDE	nosys
384249	UNIMPL	NOHIDE	nosys
385; syscall numbers initially used in OpenBSD
386250	STD	BSD	{ int minherit(caddr_t addr, size_t len, int inherit); }
387251	STD	BSD	{ int rfork(int flags); }
388