convert VOP_UNLOCK and vrele into vput's; add proc parameter to union_dircache
[unix-history] / usr / src / sys / kern / syscalls.master
CommitLineData
42f98b43 1 @(#)syscalls.master 8.6 (Berkeley) %G%
66109e76
CD
2; System call name/number "master" file.
3; (See syscalls.conf to see what it is processed into.)
4;
5; Fields: number type [type-dependent ...]
1c7df810 6; number system call number, must be in order
66109e76
CD
7; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
8; the compatibility options defined in syscalls.conf.
9;
1c7df810
MK
10; types:
11; STD always included
66109e76
CD
12; OBSOL obsolete, not included in system
13; UNIMPL unimplemented, not included in system
14; NODEF included, but don't define the syscall number
15; NOARGS included, but don't define the syscall args structure
16;
17; The compat options are defined in the syscalls.conf file, and the
18; compat option name is prefixed to the syscall name. Other than
19; that, they're like NODEF (for 'compat' options), or STD (for
20; 'libcompat' options).
21;
22; The type-dependent arguments are as follows:
23; For STD, NODEF, NOARGS, and compat syscalls:
24; { pseudo-proto } [alias]
25; For other syscalls:
26; [comment]
27;
1c7df810 28; #ifdef's, etc. may be included, and are copied to the output files.
66109e76
CD
29; #include's are copied to the syscall switch definition file only.
30
31#include <sys/param.h>
32#include <sys/systm.h>
33#include <sys/signal.h>
34#include <sys/mount.h>
35#include <sys/syscallargs.h>
1c7df810
MK
36
37; Reserved/unimplemented system calls in the range 0-150 inclusive
38; are reserved for use in future Berkeley releases.
39; Additional system calls implemented in vendor and other
40; redistributions should be placed in the reserved range at the end
41; of the current calls.
42
66109e76
CD
430 STD { int nosys(void); } syscall
441 STD { int exit(int rval); }
452 STD { int fork(void); }
463 STD { int read(int fd, char *buf, u_int nbyte); }
474 STD { int write(int fd, char *buf, u_int nbyte); }
485 STD { int open(char *path, int flags, int mode); }
496 STD { int close(int fd); }
507 STD { int wait4(int pid, int *status, int options, \
51 struct rusage *rusage); }
528 COMPAT_43 { int creat(char *path, int mode); }
539 STD { int link(char *path, char *link); }
5410 STD { int unlink(char *path); }
5511 OBSOL execv
5612 STD { int chdir(char *path); }
5713 STD { int fchdir(int fd); }
5814 STD { int mknod(char *path, int mode, int dev); }
5915 STD { int chmod(char *path, int mode); }
6016 STD { int chown(char *path, int uid, int gid); }
6117 STD { int obreak(char *nsize); } break
6218 STD { int getfsstat(struct statfs *buf, long bufsize, \
63 int flags); }
6419 COMPAT_43 { long lseek(int fd, long offset, int whence); }
6520 STD { pid_t getpid(void); }
42f98b43 6621 STD { int mount(char *type, char *path, int flags, \
66109e76
CD
67 caddr_t data); }
6822 STD { int unmount(char *path, int flags); }
6923 STD { int setuid(uid_t uid); }
7024 STD { uid_t getuid(void); }
7125 STD { uid_t geteuid(void); }
7226 STD { int ptrace(int req, pid_t pid, caddr_t addr, \
73 int data); }
7427 STD { int recvmsg(int s, struct msghdr *msg, int flags); }
7528 STD { int sendmsg(int s, caddr_t msg, int flags); }
7629 STD { int recvfrom(int s, caddr_t buf, size_t len, \
77 int flags, caddr_t from, int *fromlenaddr); }
7830 STD { int accept(int s, caddr_t name, int *anamelen); }
7931 STD { int getpeername(int fdes, caddr_t asa, int *alen); }
8032 STD { int getsockname(int fdes, caddr_t asa, int *alen); }
8133 STD { int access(char *path, int flags); }
8234 STD { int chflags(char *path, int flags); }
8335 STD { int fchflags(int fd, int flags); }
8436 STD { int sync(void); }
8537 STD { int kill(int pid, int signum); }
8638 COMPAT_43 { int stat(char *path, struct ostat *ub); }
8739 STD { pid_t getppid(void); }
8840 COMPAT_43 { int lstat(char *path, struct ostat *ub); }
8941 STD { int dup(u_int fd); }
9042 STD { int pipe(void); }
9143 STD { gid_t getegid(void); }
9244 STD { int profil(caddr_t samples, u_int size, \
93 u_int offset, u_int scale); }
1c7df810 94#ifdef KTRACE
66109e76
CD
9545 STD { int ktrace(char *fname, int ops, int facs, \
96 int pid); }
1c7df810 97#else
66109e76 9845 UNIMPL ktrace
1c7df810 99#endif
66109e76
CD
10046 STD { int sigaction(int signum, struct sigaction *nsa, \
101 struct sigaction *osa); }
10247 STD { gid_t getgid(void); }
10348 STD { int sigprocmask(int how, sigset_t mask); }
10449 STD { int getlogin(char *namebuf, u_int namelen); }
10550 STD { int setlogin(char *namebuf); }
10651 STD { int acct(char *path); }
10752 STD { int sigpending(void); }
10853 STD { int sigaltstack(struct sigaltstack *nss, \
109 struct sigaltstack *oss); }
11054 STD { int ioctl(int fd, u_long com, caddr_t data); }
11155 STD { int reboot(int opt); }
11256 STD { int revoke(char *path); }
11357 STD { int symlink(char *path, char *link); }
11458 STD { int readlink(char *path, char *buf, int count); }
11559 STD { int execve(char *path, char **argp, char **envp); }
11660 STD { int umask(int newmask); }
11761 STD { int chroot(char *path); }
11862 COMPAT_43 { int fstat(int fd, struct ostat *sb); }
11963 COMPAT_43 { int getkerninfo(int op, char *where, int *size, \
120 int arg); }
12164 COMPAT_43 { int getpagesize(void); }
12265 STD { int msync(caddr_t addr, int len); }
12366 STD { int vfork(void); }
12467 OBSOL vread
12568 OBSOL vwrite
12669 STD { int sbrk(int incr); }
12770 STD { int sstk(int incr); }
12871 COMPAT_43 { int mmap(caddr_t addr, int len, int prot, \
129 int flags, int fd, long pos); }
13072 STD { int ovadvise(int anom); } vadvise
13173 STD { int munmap(caddr_t addr, int len); }
13274 STD { int mprotect(caddr_t addr, int len, int prot); }
13375 STD { int madvise(caddr_t addr, int len, int behav); }
13476 OBSOL vhangup
13577 OBSOL vlimit
13678 STD { int mincore(caddr_t addr, int len, char *vec); }
13779 STD { int getgroups(u_int gidsetsize, gid_t *gidset); }
13880 STD { int setgroups(u_int gidsetsize, gid_t *gidset); }
13981 STD { int getpgrp(void); }
14082 STD { int setpgid(int pid, int pgid); }
14183 STD { int setitimer(u_int which, struct itimerval *itv, \
142 struct itimerval *oitv); }
14384 COMPAT_43 { int wait(void); }
14485 STD { int swapon(char *name); }
14586 STD { int getitimer(u_int which, struct itimerval *itv); }
14687 COMPAT_43 { int gethostname(char *hostname, u_int len); }
14788 COMPAT_43 { int sethostname(char *hostname, u_int len); }
14889 STD { int getdtablesize(void); }
14990 STD { int dup2(u_int from, u_int to); }
15091 UNIMPL getdopt
15192 STD { int fcntl(int fd, int cmd, void *arg); }
15293 STD { int select(u_int nd, fd_set *in, fd_set *ou, \
153 fd_set *ex, struct timeval *tv); }
15494 UNIMPL setdopt
15595 STD { int fsync(int fd); }
15696 STD { int setpriority(int which, int who, int prio); }
15797 STD { int socket(int domain, int type, int protocol); }
15898 STD { int connect(int s, caddr_t name, int namelen); }
15999 COMPAT_43 { int accept(int s, caddr_t name, int *anamelen); }
160100 STD { int getpriority(int which, int who); }
161101 COMPAT_43 { int send(int s, caddr_t buf, int len, int flags); }
162102 COMPAT_43 { int recv(int s, caddr_t buf, int len, int flags); }
163103 STD { int sigreturn(struct sigcontext *sigcntxp); }
164104 STD { int bind(int s, caddr_t name, int namelen); }
165105 STD { int setsockopt(int s, int level, int name, \
166 caddr_t val, int valsize); }
167106 STD { int listen(int s, int backlog); }
168107 OBSOL vtimes
169108 COMPAT_43 { int sigvec(int signum, struct sigvec *nsv, \
170 struct sigvec *osv); }
171109 COMPAT_43 { int sigblock(int mask); }
172110 COMPAT_43 { int sigsetmask(int mask); }
173111 STD { int sigsuspend(int mask); }
174112 COMPAT_43 { int sigstack(struct sigstack *nss, \
175 struct sigstack *oss); }
176113 COMPAT_43 { int recvmsg(int s, struct omsghdr *msg, int flags); }
177114 COMPAT_43 { int sendmsg(int s, caddr_t msg, int flags); }
1c7df810 178#ifdef TRACE
66109e76 179115 STD { int vtrace(int request, int value); }
1c7df810 180#else
66109e76 181115 OBSOL vtrace
1c7df810 182#endif
66109e76
CD
183116 STD { int gettimeofday(struct timeval *tp, \
184 struct timezone *tzp); }
185117 STD { int getrusage(int who, struct rusage *rusage); }
186118 STD { int getsockopt(int s, int level, int name, \
187 caddr_t val, int *avalsize); }
1c7df810 188#ifdef vax
66109e76 189119 STD { int resuba(int value); }
1c7df810 190#else
66109e76 191119 UNIMPL resuba
1c7df810 192#endif
66109e76
CD
193120 STD { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
194121 STD { int writev(int fd, struct iovec *iovp, \
195 u_int iovcnt); }
196122 STD { int settimeofday(struct timeval *tv, \
197 struct timezone *tzp); }
198123 STD { int fchown(int fd, int uid, int gid); }
199124 STD { int fchmod(int fd, int mode); }
200125 COMPAT_43 { int recvfrom(int s, caddr_t buf, size_t len, \
201 int flags, caddr_t from, int *fromlenaddr); }
202126 COMPAT_43 { int setreuid(int ruid, int euid); }
203127 COMPAT_43 { int setregid(int rgid, int egid); }
204128 STD { int rename(char *from, char *to); }
205129 COMPAT_43 { int truncate(char *path, long length); }
206130 COMPAT_43 { int ftruncate(int fd, long length); }
207131 STD { int flock(int fd, int how); }
208132 STD { int mkfifo(char *path, int mode); }
209133 STD { int sendto(int s, caddr_t buf, size_t len, \
210 int flags, caddr_t to, int tolen); }
211134 STD { int shutdown(int s, int how); }
212135 STD { int socketpair(int domain, int type, int protocol, \
213 int *rsv); }
214136 STD { int mkdir(char *path, int mode); }
215137 STD { int rmdir(char *path); }
216138 STD { int utimes(char *path, struct timeval *tptr); }
217139 OBSOL 4.2 sigreturn
218140 STD { int adjtime(struct timeval *delta, \
219 struct timeval *olddelta); }
220141 COMPAT_43 { int getpeername(int fdes, caddr_t asa, int *alen); }
221142 COMPAT_43 { int32_t gethostid(void); }
222143 COMPAT_43 { int sethostid(int32_t hostid); }
223144 COMPAT_43 { int getrlimit(u_int which, struct ogetrlimit *rlp); }
224145 COMPAT_43 { int setrlimit(u_int which, struct ogetrlimit *rlp); }
225146 COMPAT_43 { int killpg(int pgid, int signum); }
226147 STD { int setsid(void); }
227148 STD { int quotactl(char *path, int cmd, int uid, \
228 caddr_t arg); }
229149 COMPAT_43 { int quota(void); }
230150 COMPAT_43 { int getsockname(int fdec, caddr_t asa, int *alen); }
cc7d9ee1
KM
231
232; Syscalls 151-180 inclusive are reserved for vendor-specific
233; system calls. (This includes various calls added for compatibity
234; with other Unix variants.)
b241e504 235; Some of these calls are now supported by BSD...
66109e76
CD
236151 UNIMPL
237152 UNIMPL
238153 UNIMPL
239154 UNIMPL
cc7d9ee1 240#ifdef NFS
66109e76 241155 STD { int nfssvc(int flag, caddr_t argp); }
cc7d9ee1 242#else
66109e76 243155 UNIMPL nfssvc
cc7d9ee1 244#endif
66109e76
CD
245156 COMPAT_43 { int getdirentries(int fd, char *buf, u_int count, \
246 long *basep); }
247157 STD { int statfs(char *path, struct statfs *buf); }
248158 STD { int fstatfs(int fd, struct statfs *buf); }
249159 UNIMPL
250160 UNIMPL
cc7d9ee1 251#ifdef NFS
66109e76 252161 STD { int getfh(char *fname, fhandle_t *fhp); }
cc7d9ee1 253#else
66109e76 254161 UNIMPL getfh
cc7d9ee1 255#endif
66109e76
CD
256162 UNIMPL getdomainname
257163 UNIMPL setdomainname
258164 UNIMPL
259165 UNIMPL
260166 UNIMPL
261167 UNIMPL
262168 UNIMPL
263169 UNIMPL semsys
264170 UNIMPL msgsys
265; XXX more generally, never on machines where sizeof(void *) != sizeof(int)
266#if defined(SYSVSHM) && !defined(alpha)
267171 COMPAT_43 { int shmsys(int which, int a2, int a3, int a4); }
47b2b388 268#else
66109e76 269171 UNIMPL shmsys
47b2b388 270#endif
66109e76
CD
271172 UNIMPL
272173 UNIMPL
273174 UNIMPL
274175 UNIMPL
275176 UNIMPL
276177 UNIMPL
277178 UNIMPL
278179 UNIMPL
279180 UNIMPL
910ebf3e 280
66109e76
CD
281; Syscalls 180-209 are used by/reserved for BSD
282181 STD { int setgid(gid_t gid); }
283182 STD { int setegid(gid_t egid); }
284183 STD { int seteuid(uid_t euid); }
5306a47c 285#ifdef LFS
66109e76
CD
286184 STD { int lfs_bmapv(fsid_t *fsidp, \
287 struct block_info *blkiov, int blkcnt); }
288185 STD { int lfs_markv(fsid_t *fsidp, \
289 struct block_info *blkiov, int blkcnt); }
290186 STD { int lfs_segclean(fsid_t *fsidp, u_long segment); }
291187 STD { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); }
292#else
293184 UNIMPL lfs_bmapv
294185 UNIMPL lfs_markv
295186 UNIMPL lfs_segclean
296187 UNIMPL lfs_segwait
297#endif
298188 STD { int stat(char *path, struct stat *ub); }
299189 STD { int fstat(int fd, struct stat *sb); }
300190 STD { int lstat(char *path, struct stat *ub); }
301191 STD { int pathconf(char *path, int name); }
302192 STD { int fpathconf(int fd, int name); }
303193 UNIMPL
304194 STD { int getrlimit(u_int which, struct rlimit *rlp); }
305195 STD { int setrlimit(u_int which, struct rlimit *rlp); }
306196 STD { int getdirentries(int fd, char *buf, u_int count, \
307 long *basep); }
308197 STD { caddr_t mmap(caddr_t addr, size_t len, int prot, \
309 int flags, int fd, long pad, off_t pos); }
310198 STD { int nosys(void); } __syscall
311199 STD { off_t lseek(int fd, int pad, off_t offset, \
312 int whence); }
313200 STD { int truncate(char *path, int pad, off_t length); }
314201 STD { int ftruncate(int fd, int pad, off_t length); }
315202 STD { int __sysctl(int *name, u_int namelen, void *old, \
316 size_t *oldlenp, void *new, size_t newlen); }
317203 STD { int mlock(caddr_t addr, size_t len); }
318204 STD { int munlock(caddr_t addr, size_t len); }
319205 STD { int undelete(char *path); }
320206 UNIMPL
321207 UNIMPL
322208 UNIMPL
323209 UNIMPL
324; Syscalls 210-219 are used by/reserved for vendor-specific system calls
325210 UNIMPL
326211 UNIMPL
327212 UNIMPL
328213 UNIMPL
329214 UNIMPL
330215 UNIMPL
331216 UNIMPL
332217 UNIMPL
333218 UNIMPL
334219 UNIMPL
335; System calls 220-240 are reserved for use by BSD
336220 UNIMPL semctl
337221 UNIMPL semget
338222 UNIMPL semop
339223 UNIMPL semconfig
340224 UNIMPL msgctl
341225 UNIMPL msgget
342226 UNIMPL msgsnd
343227 UNIMPL msgrcv
344#if defined(SYSVSHM) && 0
345228 STD { int shmat(int shmid, void *shmaddr, int shmflg); }
346229 STD { int shmctl(int shmid, int cmd, \
347 struct shmid_ds *buf); }
348230 STD { int shmdt(void *shmaddr); }
349231 STD { int shmget(key_t key, int size, int shmflg); }
5306a47c 350#else
66109e76
CD
351228 UNIMPL shmat
352229 UNIMPL shmctl
353230 UNIMPL shmdt
354231 UNIMPL shmget
5306a47c 355#endif