xref: /freebsd/sys/kern/syscalls.master (revision 8e6b01171e30297084bb0b4457c4183c2746aacc)
1	$Id: syscalls.master,v 1.17 1995/10/07 06:24:08 swallace 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); }
456	STD	POSIX	{ int close(int fd); }
467	STD	BSD	{ int wait4(int pid, int *status, int options, \
47			    struct rusage *rusage); } wait4 wait_args int
488	COMPAT	BSD	{ int creat(char *path, int mode); }
499	STD	POSIX	{ int link(char *path, char *link); }
5010	STD	POSIX	{ int unlink(char *path); }
5111	OBSOL	NOHIDE	execv
5212	STD	POSIX	{ int chdir(char *path); }
5313	STD	BSD	{ int fchdir(int fd); }
5414	STD	POSIX	{ int mknod(char *path, int mode, int dev); }
5515	STD	POSIX	{ int chmod(char *path, int mode); }
5616	STD	POSIX	{ int chown(char *path, int uid, int gid); }
5717	STD	BSD	{ int obreak(char *nsize); } break obreak_args int
5818	STD	BSD	{ int getfsstat(struct statfs *buf, long bufsize, \
59			    int flags); }
6019	COMPAT	POSIX	{ long lseek(int fd, long offset, int whence); }
6120	STD	POSIX	{ pid_t getpid(void); }
6221	STD	BSD	{ int mount(char *type, char *path, int flags, \
63			    caddr_t data); }
6422	STD	BSD	{ int unmount(char *path, int flags); }
6523	STD	POSIX	{ int setuid(uid_t uid); }
6624	STD	POSIX	{ uid_t getuid(void); }
6725	STD	POSIX	{ uid_t geteuid(void); }
6826	STD	BSD	{ int ptrace(int req, pid_t pid, caddr_t addr, \
69			    int data); }
7027	STD	BSD	{ int recvmsg(int s, struct msghdr *msg, int flags); }
7128	STD	BSD	{ int sendmsg(int s, caddr_t msg, int flags); }
7229	STD	BSD	{ int recvfrom(int s, caddr_t buf, size_t len, \
73			    int flags, caddr_t from, int *fromlenaddr); }
7430	STD	BSD	{ int accept(int s, caddr_t name, int *anamelen); }
7531	STD	BSD	{ int getpeername(int fdes, caddr_t asa, int *alen); }
7632	STD	BSD	{ int getsockname(int fdes, caddr_t asa, int *alen); }
7733	STD	POSIX	{ int access(char *path, int flags); }
7834	STD	BSD	{ int chflags(char *path, int flags); }
7935	STD	BSD	{ int fchflags(int fd, int flags); }
8036	STD	BSD	{ int sync(void); }
8137	STD	POSIX	{ int kill(int pid, int signum); }
8238	COMPAT	POSIX	{ int stat(char *path, struct ostat *ub); }
8339	STD	POSIX	{ pid_t getppid(void); }
8440	COMPAT	POSIX	{ int lstat(char *path, struct ostat *ub); }
8541	STD	POSIX	{ int dup(u_int fd); }
8642	STD	POSIX	{ int pipe(void); }
8743	STD	POSIX	{ gid_t getegid(void); }
8844	STD	BSD	{ int profil(caddr_t samples, u_int size, \
89			    u_int offset, u_int scale); }
90#ifdef KTRACE
9145	STD	BSD	{ int ktrace(char *fname, int ops, int facs, \
92			    int pid); }
93#else
9445	UNIMPL	BSD	ktrace
95#endif
9646	STD	POSIX	{ int sigaction(int signum, struct sigaction *nsa, \
97			    struct sigaction *osa); }
9847	STD	POSIX	{ gid_t getgid(void); }
9948	STD	POSIX	{ int sigprocmask(int how, sigset_t mask); }
10049	STD	BSD	{ int getlogin(char *namebuf, u_int namelen); }
10150	STD	BSD	{ int setlogin(char *namebuf); }
10251	STD	BSD	{ int acct(char *path); }
10352	STD	POSIX	{ int sigpending(void); }
10453	STD	BSD	{ int sigaltstack(struct sigaltstack *nss, \
105			    struct sigaltstack *oss); }
10654	STD	POSIX	{ int ioctl(int fd, u_long com, caddr_t data); }
10755	STD	BSD	{ int reboot(int opt); }
10856	STD	POSIX	{ int revoke(char *path); }
10957	STD	POSIX	{ int symlink(char *path, char *link); }
11058	STD	POSIX	{ int readlink(char *path, char *buf, int count); }
11159	STD	POSIX	{ int execve(char *fname, char **argv, char **envv); }
11260	STD	POSIX	{ int umask(int newmask); } umask umask_args mode_t
11361	STD	BSD	{ int chroot(char *path); }
11462	COMPAT	POSIX	{ int fstat(int fd, struct ostat *sb); }
11563	COMPAT	BSD	{ int getkerninfo(int op, char *where, int *size, \
116			    int arg); } getkerninfo getkerninfo_args int
11764	COMPAT	BSD	{ int getpagesize(void); } \
118			    getpagesize getpagesize_args int
11965	STD	BSD	{ int msync(caddr_t addr, size_t len, int flags); }
12066	NOARGS	BSD	{ int vfork(void); } vfork fork_args int
12167	OBSOL	NOHIDE	vread
12268	OBSOL	NOHIDE	vwrite
12369	STD	BSD	{ int sbrk(int incr); }
12470	STD	BSD	{ int sstk(int incr); }
12571	COMPAT	BSD	{ int mmap(caddr_t addr, size_t len, int prot, \
126			    int flags, int fd, long pos); }
12772	STD	BSD	{ int ovadvise(int anom); } vadvise ovadvise_args int
12873	STD	BSD	{ int munmap(caddr_t addr, size_t len); }
12974	STD	BSD	{ int mprotect(caddr_t addr, size_t len, int prot); }
13075	STD	BSD	{ int madvise(caddr_t addr, size_t len, int behav); }
13176	OBSOL	NOHIDE	vhangup
13277	OBSOL	NOHIDE	vlimit
13378	STD	BSD	{ int mincore(caddr_t addr, size_t len, char *vec); }
13479	STD	POSIX	{ int getgroups(u_int gidsetsize, gid_t *gidset); }
13580	STD	POSIX	{ int setgroups(u_int gidsetsize, gid_t *gidset); }
13681	STD	POSIX	{ int getpgrp(void); }
13782	STD	POSIX	{ int setpgid(int pid, int pgid); }
13883	STD	BSD	{ int setitimer(u_int which, struct itimerval *itv, \
139			    struct itimerval *oitv); }
14084	COMPAT	BSD	{ int wait(void); }
14185	STD	BSD	{ int swapon(char *name); }
14286	STD	BSD	{ int getitimer(u_int which, struct itimerval *itv); }
14387	COMPAT	BSD	{ int gethostname(char *hostname, u_int len); } \
144			    gethostname gethostname_args int
14588	COMPAT	BSD	{ int sethostname(char *hostname, u_int len); } \
146			    sethostname sethostname_args int
14789	STD	BSD	{ int getdtablesize(void); }
14890	STD	POSIX	{ int dup2(u_int from, u_int to); }
14991	UNIMPL	BSD	getdopt
15092	STD	POSIX	{ int fcntl(int fd, int cmd, void *arg); }
15193	STD	BSD	{ int select(u_int nd, fd_set *in, fd_set *ou, \
152			    fd_set *ex, struct timeval *tv); }
15394	UNIMPL	BSD	setdopt
15495	STD	POSIX	{ int fsync(int fd); }
15596	STD	BSD	{ int setpriority(int which, int who, int prio); }
15697	STD	BSD	{ int socket(int domain, int type, int protocol); }
15798	STD	BSD	{ int connect(int s, caddr_t name, int namelen); }
15899	CPT_NOA	BSD	{ int accept(int s, caddr_t name, int *anamelen); } \
159			    accept accept_args int
160100	STD	BSD	{ int getpriority(int which, int who); }
161101	COMPAT	BSD	{ int send(int s, caddr_t buf, int len, int flags); }
162102	COMPAT	BSD	{ int recv(int s, caddr_t buf, int len, int flags); }
163103	STD	BSD	{ int sigreturn(struct sigcontext *sigcntxp); }
164104	STD	BSD	{ int bind(int s, caddr_t name, int namelen); }
165105	STD	BSD	{ int setsockopt(int s, int level, int name, \
166			    caddr_t val, int valsize); }
167106	STD	BSD	{ int listen(int s, int backlog); }
168107	OBSOL	NOHIDE	vtimes
169108	COMPAT	BSD	{ int sigvec(int signum, struct sigvec *nsv, \
170			    struct sigvec *osv); }
171109	COMPAT	BSD	{ int sigblock(int mask); }
172110	COMPAT	BSD	{ int sigsetmask(int mask); }
173111	STD	POSIX	{ int sigsuspend(int mask); }
174112	COMPAT	BSD	{ int sigstack(struct sigstack *nss, \
175			    struct sigstack *oss); }
176113	COMPAT	BSD	{ int recvmsg(int s, struct omsghdr *msg, int flags); }
177114	COMPAT	BSD	{ int sendmsg(int s, caddr_t msg, int flags); }
178115	OBSOL	NOHIDE	vtrace
179116	STD	BSD	{ int gettimeofday(struct timeval *tp, \
180			    struct timezone *tzp); }
181117	STD	BSD	{ int getrusage(int who, struct rusage *rusage); }
182118	STD	BSD	{ int getsockopt(int s, int level, int name, \
183			    caddr_t val, int *avalsize); }
184119	UNIMPL	NOHIDE	nosys
185120	STD	BSD	{ int readv(int fd, struct iovec *iovp, u_int iovcnt); }
186121	STD	BSD	{ int writev(int fd, struct iovec *iovp, \
187			    u_int iovcnt); }
188122	STD	BSD	{ int settimeofday(struct timeval *tv, \
189			    struct timezone *tzp); }
190123	STD	BSD	{ int fchown(int fd, int uid, int gid); }
191124	STD	BSD	{ int fchmod(int fd, int mode); }
192125	CPT_NOA	BSD	{ int recvfrom(int s, caddr_t buf, size_t len, \
193			    int flags, caddr_t from, int *fromlenaddr); } \
194			    recvfrom recvfrom_args int
195126	STD	BSD	{ int setreuid(int ruid, int euid); }
196127	STD	BSD	{ int setregid(int rgid, int egid); }
197128	STD	POSIX	{ int rename(char *from, char *to); }
198129	COMPAT	BSD	{ int truncate(char *path, long length); }
199130	COMPAT	BSD	{ int ftruncate(int fd, long length); }
200131	STD	BSD	{ int flock(int fd, int how); }
201132	STD	POSIX	{ int mkfifo(char *path, int mode); }
202133	STD	BSD	{ int sendto(int s, caddr_t buf, size_t len, \
203			    int flags, caddr_t to, int tolen); }
204134	STD	BSD	{ int shutdown(int s, int how); }
205135	STD	BSD	{ int socketpair(int domain, int type, int protocol, \
206			    int *rsv); }
207136	STD	POSIX	{ int mkdir(char *path, int mode); }
208137	STD	POSIX	{ int rmdir(char *path); }
209138	STD	BSD	{ int utimes(char *path, struct timeval *tptr); }
210139	OBSOL	NOHIDE	4.2 sigreturn
211140	STD	BSD	{ int adjtime(struct timeval *delta, \
212			    struct timeval *olddelta); }
213141	COMPAT	BSD	{ int getpeername(int fdes, caddr_t asa, int *alen); }
214142	COMPAT	BSD	{ long gethostid(void); }
215143	COMPAT	BSD	{ int sethostid(long hostid); }
216144	COMPAT	BSD	{ int getrlimit(u_int which, struct ogetrlimit *rlp); }
217145	COMPAT	BSD	{ int setrlimit(u_int which, struct ogetrlimit *rlp); }
218146	COMPAT	BSD	{ int killpg(int pgid, int signum); }
219147	STD	POSIX	{ int setsid(void); }
220148	STD	BSD	{ int quotactl(char *path, int cmd, int uid, \
221			    caddr_t arg); }
222149	COMPAT	BSD	{ int quota(void); }
223150	CPT_NOA	BSD	{ int getsockname(int fdec, caddr_t asa, int *alen); }\
224			    getsockname getsockname_args int
225
226; Syscalls 151-180 inclusive are reserved for vendor-specific
227; system calls.  (This includes various calls added for compatibity
228; with other Unix variants.)
229; Some of these calls are now supported by BSD...
230151	UNIMPL	NOHIDE	nosys
231152	UNIMPL	NOHIDE	nosys
232153	UNIMPL	NOHIDE	nosys
233154	UNIMPL	NOHIDE	nosys
234#ifdef NFS
235155	STD	BSD	{ int nfssvc(int flag, caddr_t argp); }
236#else
237155	UNIMPL	BSD	nosys
238#endif
239156	COMPAT	BSD	{ int getdirentries(int fd, char *buf, u_int count, \
240			    long *basep); }
241157	STD	BSD	{ int statfs(char *path, struct statfs *buf); }
242158	STD	BSD	{ int fstatfs(int fd, struct statfs *buf); }
243159	UNIMPL	NOHIDE	nosys
244160	UNIMPL	NOHIDE	nosys
245#ifdef NFS
246161	STD	BSD	{ int getfh(char *fname, fhandle_t *fhp); }
247#else
248161	UNIMPL	BSD	nosys
249#endif
250162	STD	BSD	{ int getdomainname(char *domainname, int len); }
251163	STD	BSD	{ int setdomainname(char *domainname, int len); }
252164	STD	BSD	{ int uname(struct outsname *name); }
253165	STD	BSD	{ int sysarch(int op, char *parms); }
254166	STD	BSD	{ int rtprio(int function, pid_t pid, \
255			    struct rtprio *rtp); }
256167	UNIMPL	NOHIDE	nosys
257168	UNIMPL	NOHIDE	nosys
258#ifdef SYSVSEM
259169	STD	BSD	{ int semsys(int which, int a2, int a3, int a4, \
260			    int a5); }
261#else
262169	UNIMPL	NOHIDE	nosys
263#endif
264#ifdef SYSVMSG
265170	STD	BSD	{ int msgsys(int which, int a2, int a3, int a4, \
266			    int a5, int a6); }
267#else
268170	UNIMPL	NOHIDE nosys
269#endif
270#ifdef SYSVSHM
271171	STD	BSD	{ int shmsys(int which, int a2, int a3, int a4); }
272#else
273171	UNIMPL	BSD	nosys
274#endif
275172	UNIMPL	NOHIDE	nosys
276173	UNIMPL	NOHIDE	nosys
277174	UNIMPL	NOHIDE	nosys
278175	UNIMPL	NOHIDE	nosys
279176	STD	BSD	{ int ntp_adjtime(struct timex *tp); }
280177	UNIMPL	NOHIDE	nosys
281178	UNIMPL	NOHIDE	nosys
282179	UNIMPL	NOHIDE	nosys
283180	UNIMPL	NOHIDE	nosys
284
285; Syscalls 180-199 are used by/reserved for BSD
286181	STD	POSIX	{ int setgid(gid_t gid); }
287182	STD	BSD	{ int setegid(gid_t egid); }
288183	STD	BSD	{ int seteuid(uid_t euid); }
289#ifdef LFS
290184	STD	BSD	{ int lfs_bmapv(fsid_t *fsidp, \
291			    struct block_info *blkiov, int blkcnt); }
292185	STD	BSD	{ int lfs_markv(fsid_t *fsidp, \
293			    struct block_info *blkiov, int blkcnt); }
294186	STD	BSD	{ int lfs_segclean(fsid_t *fsidp, u_long segment); }
295187	STD	BSD	{ int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
296#else
297184	UNIMPL	BSD	nosys
298185	UNIMPL	BSD	nosys
299186	UNIMPL	BSD	nosys
300187	UNIMPL	BSD	nosys
301#endif
302188	STD	POSIX	{ int stat(char *path, struct stat *ub); }
303189	STD	POSIX	{ int fstat(int fd, struct stat *sb); }
304190	STD	POSIX	{ int lstat(char *path, struct stat *ub); }
305191	STD	POSIX	{ int pathconf(char *path, int name); }
306192	STD	POSIX	{ int fpathconf(int fd, int name); }
307193	UNIMPL	NOHIDE	nosys
308194	STD	BSD	{ int getrlimit(u_int which, \
309			    struct orlimit *rlp); } \
310			    getrlimit __getrlimit_args int
311195	STD	BSD	{ int setrlimit(u_int which, \
312			    struct orlimit *rlp); } \
313			    setrlimit __setrlimit_args int
314196	STD	BSD	{ int getdirentries(int fd, char *buf, u_int count, \
315			    long *basep); }
316197	STD	BSD	{ caddr_t mmap(caddr_t addr, size_t len, int prot, \
317			    int flags, int fd, long pad, off_t pos); }
318198	STD	NOHIDE	{ int nosys(void); } __syscall __syscall_args int
319199	STD	POSIX	{ off_t lseek(int fd, int pad, off_t offset, \
320			    int whence); }
321200	STD	BSD	{ int truncate(char *path, int pad, off_t length); }
322201	STD	BSD	{ int ftruncate(int fd, int pad, off_t length); }
323202	STD	BSD	{ int __sysctl(int *name, u_int namelen, void *old, \
324			    size_t *oldlenp, void *new, size_t newlen); } \
325			    __sysctl sysctl_args int
326; properly, __sysctl should be a NOHIDE, but making an exception
327; here allows to avoid one in libc/sys/Makefile.inc.
328203	STD	BSD	{ int mlock(caddr_t addr, size_t len); }
329204	STD	BSD	{ int munlock(caddr_t addr, size_t len); }
330205	UNIMPL	NOHIDE	nosys
331206	UNIMPL	NOHIDE	nosys
332207	UNIMPL	NOHIDE	nosys
333208	UNIMPL	NOHIDE	nosys
334209	UNIMPL	NOHIDE	nosys
335
336;
337; The following are reserved for loadable syscalls
338;
339210	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
340211	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
341212	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
342213	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
343214	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
344215	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
345216	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
346217	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
347218	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
348219	NODEF	NOHIDE	lkmnosys lkmnosys nosys_args int
349