BSD 4_3_Tahoe release
[unix-history] / usr / src / sys / sys / init_sysent.c
CommitLineData
95f51977
C
1/*
2 * Copyright (c) 1982, 1986 Regents of the University of California.
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 *
ca67e7b4 6 * @(#)init_sysent.c 7.3 (Berkeley) 7/10/87
95f51977 7 */
4b519ae7
C
8
9/*
10 * System call switch table.
11 */
12
95f51977
C
13#include "param.h"
14#include "systm.h"
4b519ae7
C
15
16int nosys();
17
18/* 1.1 processes and protection */
19int sethostid(),gethostid(),sethostname(),gethostname(),getpid();
20int fork(),rexit(),execv(),execve(),wait();
21int getuid(),setreuid(),getgid(),getgroups(),setregid(),setgroups();
22int getpgrp(),setpgrp();
23
24/* 1.2 memory management */
25int sbrk(),sstk();
ca67e7b4 26int getpagesize(),smmap(),msync(),munmap(),mprotect(),madvise(),mincore();
4b519ae7
C
27
28/* 1.3 signals */
95f51977 29int sigvec(),sigblock(),sigsetmask(),sigpause(),sigstack(),sigreturn();
4b519ae7
C
30int kill(), killpg();
31
32/* 1.4 timing and statistics */
33int gettimeofday(),settimeofday();
34int getitimer(),setitimer();
95f51977 35int adjtime();
4b519ae7
C
36
37/* 1.5 descriptors */
38int getdtablesize(),dup(),dup2(),close();
39int select(),getdopt(),setdopt(),fcntl(),flock();
40
41/* 1.6 resource controls */
42int getpriority(),setpriority(),getrusage(),getrlimit(),setrlimit();
43int setquota(),qquota();
44
45/* 1.7 system operation support */
46int umount(),smount(),swapon();
47int sync(),reboot(),sysacct();
48
49/* 2.1 generic operations */
50int read(),write(),readv(),writev(),ioctl();
51
52/* 2.2 file system */
53int chdir(),chroot();
54int mkdir(),rmdir();
55int creat(),open(),mknod(),unlink(),stat(),fstat(),lstat();
56int chown(),fchown(),chmod(),fchmod(),utimes();
57int link(),symlink(),readlink(),rename();
58int lseek(),truncate(),ftruncate(),saccess(),fsync();
59
60/* 2.3 communications */
61int socket(),bind(),listen(),accept(),connect();
62int socketpair(),sendto(),send(),recvfrom(),recv();
63int sendmsg(),recvmsg(),shutdown(),setsockopt(),getsockopt();
64int getsockname(),getpeername(),pipe();
65
66int umask(); /* XXX */
67
68/* 2.4 processes */
69int ptrace();
70
71/* 2.5 terminals */
72
73#ifdef COMPAT
74/* emulations for backwards compatibility */
75#define compat(n, name) n, o/**/name
76
77int owait(); /* now receive message on channel */
78int otime(); /* now use gettimeofday */
79int ostime(); /* now use settimeofday */
80int oalarm(); /* now use setitimer */
81int outime(); /* now use utimes */
82int opause(); /* now use sigpause */
83int onice(); /* now use setpriority,getpriority */
84int oftime(); /* now use gettimeofday */
85int osetpgrp(); /* ??? */
86int otimes(); /* now use getrusage */
87int ossig(); /* now use sigvec, etc */
88int ovlimit(); /* now use setrlimit,getrlimit */
89int ovtimes(); /* now use getrusage */
90int osetuid(); /* now use setreuid */
91int osetgid(); /* now use setregid */
92int ostat(); /* now use stat */
93int ofstat(); /* now use fstat */
94#else
95#define compat(n, name) 0, nosys
96#endif
97
98/* BEGIN JUNK */
99#ifdef vax
100int resuba();
101#ifdef TRACE
102int vtrace();
103#endif
104#endif
105int profil(); /* 'cuz sys calls are interruptible */
106int vhangup(); /* should just do in exit() */
107int vfork(); /* awaiting fork w/ copy on write */
108int obreak(); /* awaiting new sbrk */
109int ovadvise(); /* awaiting new madvise */
110/* END JUNK */
111
95f51977
C
112/*
113 * Reserved/unimplemented system calls in the range 0-150 inclusive
114 * are reserved for use in future Berkeley releases.
115 * Additional system calls implemented in vendor and other
116 * redistributions should be placed in the reserved range at the end
117 * of the current calls.
118 */
4b519ae7 119struct sysent sysent[] = {
95f51977 120 0, nosys, /* 0 = indir or out-of-range */
4b519ae7
C
121 1, rexit, /* 1 = exit */
122 0, fork, /* 2 = fork */
123 3, read, /* 3 = read */
124 3, write, /* 4 = write */
125 3, open, /* 5 = open */
126 1, close, /* 6 = close */
127 compat(0,wait), /* 7 = old wait */
128 2, creat, /* 8 = creat */
129 2, link, /* 9 = link */
130 1, unlink, /* 10 = unlink */
131 2, execv, /* 11 = execv */
132 1, chdir, /* 12 = chdir */
133 compat(0,time), /* 13 = old time */
134 3, mknod, /* 14 = mknod */
135 2, chmod, /* 15 = chmod */
136 3, chown, /* 16 = chown; now 3 args */
137 1, obreak, /* 17 = old break */
138 compat(2,stat), /* 18 = old stat */
139 3, lseek, /* 19 = lseek */
140 0, getpid, /* 20 = getpid */
141 3, smount, /* 21 = mount */
142 1, umount, /* 22 = umount */
143 compat(1,setuid), /* 23 = old setuid */
144 0, getuid, /* 24 = getuid */
145 compat(1,stime), /* 25 = old stime */
146 4, ptrace, /* 26 = ptrace */
147 compat(1,alarm), /* 27 = old alarm */
148 compat(2,fstat), /* 28 = old fstat */
149 compat(0,pause), /* 29 = opause */
150 compat(2,utime), /* 30 = old utime */
151 0, nosys, /* 31 = was stty */
152 0, nosys, /* 32 = was gtty */
153 2, saccess, /* 33 = access */
154 compat(1,nice), /* 34 = old nice */
155 compat(1,ftime), /* 35 = old ftime */
156 0, sync, /* 36 = sync */
157 2, kill, /* 37 = kill */
158 2, stat, /* 38 = stat */
159 compat(2,setpgrp), /* 39 = old setpgrp */
160 2, lstat, /* 40 = lstat */
161 2, dup, /* 41 = dup */
162 0, pipe, /* 42 = pipe */
163 compat(1,times), /* 43 = old times */
164 4, profil, /* 44 = profil */
165 0, nosys, /* 45 = nosys */
166 compat(1,setgid), /* 46 = old setgid */
167 0, getgid, /* 47 = getgid */
168 compat(2,ssig), /* 48 = old sig */
169 0, nosys, /* 49 = reserved for USG */
170 0, nosys, /* 50 = reserved for USG */
171 1, sysacct, /* 51 = turn acct off/on */
172 0, nosys, /* 52 = old set phys addr */
173 0, nosys, /* 53 = old lock in core */
174 3, ioctl, /* 54 = ioctl */
175 1, reboot, /* 55 = reboot */
176 0, nosys, /* 56 = old mpxchan */
177 2, symlink, /* 57 = symlink */
178 3, readlink, /* 58 = readlink */
179 3, execve, /* 59 = execve */
180 1, umask, /* 60 = umask */
181 1, chroot, /* 61 = chroot */
182 2, fstat, /* 62 = fstat */
95f51977 183 0, nosys, /* 63 = reserved */
ca67e7b4
C
184 0, getpagesize, /* 64 = getpagesize */
185 2, msync, /* 65 = msync */
4b519ae7
C
186 0, vfork, /* 66 = vfork */
187 0, read, /* 67 = old vread */
188 0, write, /* 68 = old vwrite */
189 1, sbrk, /* 69 = sbrk */
190 1, sstk, /* 70 = sstk */
191 6, smmap, /* 71 = mmap */
192 1, ovadvise, /* 72 = old vadvise */
193 2, munmap, /* 73 = munmap */
194 3, mprotect, /* 74 = mprotect */
195 3, madvise, /* 75 = madvise */
196 1, vhangup, /* 76 = vhangup */
197 compat(2,vlimit), /* 77 = old vlimit */
198 3, mincore, /* 78 = mincore */
199 2, getgroups, /* 79 = getgroups */
200 2, setgroups, /* 80 = setgroups */
201 1, getpgrp, /* 81 = getpgrp */
202 2, setpgrp, /* 82 = setpgrp */
203 3, setitimer, /* 83 = setitimer */
204 0, wait, /* 84 = wait */
205 1, swapon, /* 85 = swapon */
206 2, getitimer, /* 86 = getitimer */
207 2, gethostname, /* 87 = gethostname */
208 2, sethostname, /* 88 = sethostname */
209 0, getdtablesize, /* 89 = getdtablesize */
210 2, dup2, /* 90 = dup2 */
211 2, getdopt, /* 91 = getdopt */
212 3, fcntl, /* 92 = fcntl */
213 5, select, /* 93 = select */
214 2, setdopt, /* 94 = setdopt */
215 1, fsync, /* 95 = fsync */
216 3, setpriority, /* 96 = setpriority */
217 3, socket, /* 97 = socket */
218 3, connect, /* 98 = connect */
219 3, accept, /* 99 = accept */
220 2, getpriority, /* 100 = getpriority */
221 4, send, /* 101 = send */
222 4, recv, /* 102 = recv */
95f51977 223 1, sigreturn, /* 103 = sigreturn */
4b519ae7
C
224 3, bind, /* 104 = bind */
225 5, setsockopt, /* 105 = setsockopt */
226 2, listen, /* 106 = listen */
227 compat(2,vtimes), /* 107 = old vtimes */
228 3, sigvec, /* 108 = sigvec */
229 1, sigblock, /* 109 = sigblock */
230 1, sigsetmask, /* 110 = sigsetmask */
231 1, sigpause, /* 111 = sigpause */
232 2, sigstack, /* 112 = sigstack */
233 3, recvmsg, /* 113 = recvmsg */
234 3, sendmsg, /* 114 = sendmsg */
235#ifdef TRACE
236 2, vtrace, /* 115 = vtrace */
237#else
238 0, nosys, /* 115 = nosys */
239#endif
240 2, gettimeofday, /* 116 = gettimeofday */
241 2, getrusage, /* 117 = getrusage */
242 5, getsockopt, /* 118 = getsockopt */
243#ifdef vax
244 1, resuba, /* 119 = resuba */
245#else
246 0, nosys, /* 119 = nosys */
247#endif
248 3, readv, /* 120 = readv */
249 3, writev, /* 121 = writev */
250 2, settimeofday, /* 122 = settimeofday */
251 3, fchown, /* 123 = fchown */
252 2, fchmod, /* 124 = fchmod */
253 6, recvfrom, /* 125 = recvfrom */
254 2, setreuid, /* 126 = setreuid */
255 2, setregid, /* 127 = setregid */
256 2, rename, /* 128 = rename */
257 2, truncate, /* 129 = truncate */
258 2, ftruncate, /* 130 = ftruncate */
259 2, flock, /* 131 = flock */
260 0, nosys, /* 132 = nosys */
261 6, sendto, /* 133 = sendto */
262 2, shutdown, /* 134 = shutdown */
263 5, socketpair, /* 135 = socketpair */
264 2, mkdir, /* 136 = mkdir */
265 1, rmdir, /* 137 = rmdir */
266 2, utimes, /* 138 = utimes */
95f51977
C
267 0, nosys, /* 139 = internal (4.2 sigreturn) */
268 2, adjtime, /* 140 = adjtime */
4b519ae7 269 3, getpeername, /* 141 = getpeername */
95f51977
C
270 0, gethostid, /* 142 = gethostid */
271 1, sethostid, /* 143 = sethostid */
4b519ae7
C
272 2, getrlimit, /* 144 = getrlimit */
273 2, setrlimit, /* 145 = setrlimit */
274 2, killpg, /* 146 = killpg */
275 0, nosys, /* 147 = nosys */
276 2, setquota, /* 148 = quota */
277 4, qquota, /* 149 = qquota */
278 3, getsockname, /* 150 = getsockname */
95f51977
C
279 /*
280 * Syscalls 151-180 inclusive are reserved for vendor-specific
281 * system calls. (This includes various calls added for compatibity
282 * with other Unix variants.)
283 */
4b519ae7
C
284};
285int nsysent = sizeof (sysent) / sizeof (sysent[0]);