]>
Commit | Line | Data |
---|---|---|
1c79356b A |
1 | /* |
2 | * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. | |
3 | * | |
4 | * @APPLE_LICENSE_HEADER_START@ | |
5 | * | |
6 | * The contents of this file constitute Original Code as defined in and | |
7 | * are subject to the Apple Public Source License Version 1.1 (the | |
8 | * "License"). You may not use this file except in compliance with the | |
9 | * License. Please obtain a copy of the License at | |
10 | * http://www.apple.com/publicsource and read it before using this file. | |
11 | * | |
12 | * This Original Code and all software distributed under the License are | |
13 | * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
14 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
15 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
16 | * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the | |
17 | * License for the specific language governing rights and limitations | |
18 | * under the License. | |
19 | * | |
20 | * @APPLE_LICENSE_HEADER_END@ | |
21 | */ | |
22 | /* Copyright (c) 1995-1999 Apple Computer, Inc. All Rights Reserved */ | |
23 | /* | |
24 | * HISTORY | |
25 | * 12-Feb-00 Clark Warner (warner_c) at Apple | |
26 | * Added copyfile system call | |
27 | * 26-Jul-99 Earsh Nandkeshwar (earsh) at Apple | |
28 | * Changed getdirentryattr to getdirentriesattr | |
29 | * 22-Jan-98 Clark Warner (warner_c) at Apple | |
30 | * Created new system calls for supporting HFS/HFS Plus file system semantics | |
31 | * | |
32 | * 04-Jun-95 Mac Gillon (mgillon) at NeXT | |
33 | * Created new version based on NS3.3 and 4.4BSD | |
34 | * | |
35 | */ | |
36 | ||
37 | ||
38 | #include <sys/param.h> | |
39 | #include <sys/systm.h> | |
40 | #include <sys/signal.h> | |
41 | #include <sys/mount.h> | |
42 | ||
43 | /* serial or parallel system call */ | |
44 | #define syss(fn,no) {no, 0, KERNEL_FUNNEL, fn} | |
45 | #define sysp(fn,no) {no, 1, KERNEL_FUNNEL, fn} | |
46 | #define sysnets(fn,no) {no, 0, NETWORK_FUNNEL, fn} | |
47 | #define sysnetp(fn,no) {no, 1, NETWORK_FUNNEL, fn} | |
48 | /* | |
49 | * definitions | |
50 | */ | |
51 | int nosys(); | |
52 | int exit(); | |
53 | int fork(); | |
54 | int read(); | |
55 | int write(); | |
56 | int open(); | |
57 | int close(); | |
58 | int wait4(); | |
59 | int link(); | |
60 | int unlink(); | |
61 | int chdir(); | |
62 | int fchdir(); | |
63 | int mknod(); | |
64 | int chmod(); | |
65 | int chown(); | |
66 | int obreak(); | |
67 | int getfsstat(); | |
68 | #if COMPAT_GETFSSTAT | |
69 | int ogetfsstat(); | |
70 | #endif | |
71 | int getpid(); | |
72 | int mount(); | |
73 | int unmount(); | |
74 | int setuid(); | |
75 | int getuid(); | |
76 | int geteuid(); | |
77 | int ptrace(); | |
78 | int recvmsg(); | |
79 | int sendmsg(); | |
80 | int recvfrom(); | |
81 | int accept(); | |
82 | int getpeername(); | |
83 | int getsockname(); | |
84 | int access(); | |
85 | int chflags(); | |
86 | int fchflags(); | |
87 | int sync(); | |
88 | int kill(); | |
89 | int getppid(); | |
90 | int dup(); | |
91 | int pipe(); | |
92 | int getegid(); | |
93 | int profil(); | |
94 | int load_shared_file(); | |
95 | int reset_shared_file(); | |
96 | #if KTRACE | |
97 | int ktrace(); | |
98 | #else | |
99 | #endif | |
100 | int sigaction(); | |
101 | int getgid(); | |
102 | int sigprocmask(); | |
103 | int getlogin(); | |
104 | int setlogin(); | |
105 | int acct(); | |
106 | int sigpending(); | |
107 | int sigaltstack(); | |
108 | int ioctl(); | |
109 | int reboot(); | |
110 | int revoke(); | |
111 | int symlink(); | |
112 | int readlink(); | |
113 | int execve(); | |
114 | int umask(); | |
115 | int chroot(); | |
116 | int msync(); | |
117 | int vfork(); | |
118 | int sbrk(); | |
119 | int sstk(); | |
120 | int ovadvise(); | |
121 | int munmap(); | |
122 | int mprotect(); | |
123 | int madvise(); | |
124 | int mincore(); | |
125 | int getgroups(); | |
126 | int setgroups(); | |
127 | int getpgrp(); | |
128 | int setpgid(); | |
129 | int setitimer(); | |
130 | int swapon(); | |
131 | int getitimer(); | |
132 | int getdtablesize(); | |
133 | int dup2(); | |
134 | int fcntl(); | |
135 | int select(); | |
136 | int fsync(); | |
137 | int setpriority(); | |
138 | int socket(); | |
139 | int connect(); | |
140 | int getpriority(); | |
141 | int sigreturn(); | |
142 | int bind(); | |
143 | int setsockopt(); | |
144 | int listen(); | |
145 | int sigsuspend(); | |
146 | #if TRACE | |
147 | int vtrace(); | |
148 | #else | |
149 | #endif | |
150 | int gettimeofday(); | |
151 | int getrusage(); | |
152 | int getsockopt(); | |
153 | int readv(); | |
154 | int writev(); | |
155 | int settimeofday(); | |
156 | int fchown(); | |
157 | int fchmod(); | |
158 | int rename(); | |
159 | int flock(); | |
160 | int mkfifo(); | |
161 | int sendto(); | |
162 | int shutdown(); | |
163 | int socketpair(); | |
164 | int mkdir(); | |
165 | int rmdir(); | |
166 | int utimes(); | |
167 | int adjtime(); | |
168 | int setsid(); | |
169 | int quotactl(); | |
170 | int nfssvc(); | |
171 | int statfs(); | |
172 | int fstatfs(); | |
173 | int getfh(); | |
174 | int setgid(); | |
175 | int setegid(); | |
176 | int seteuid(); | |
177 | #if LFS | |
178 | int lfs_bmapv(); | |
179 | int lfs_markv(); | |
180 | int lfs_segclean(); | |
181 | int lfs_segwait(); | |
182 | #else | |
183 | #endif | |
184 | int stat(); | |
185 | int fstat(); | |
186 | int lstat(); | |
187 | int pathconf(); | |
188 | int fpathconf(); | |
189 | int getrlimit(); | |
190 | int setrlimit(); | |
191 | int getdirentries(); | |
192 | int mmap(); | |
193 | int nosys(); | |
194 | int lseek(); | |
195 | int truncate(); | |
196 | int ftruncate(); | |
197 | int __sysctl(); | |
198 | int undelete(); | |
199 | int setprivexec(); | |
200 | int add_profil(); | |
201 | #ifdef NOTEVER | |
202 | int table(); | |
203 | #endif /* NOTEVER */ | |
204 | ||
205 | int kdebug_trace(); | |
206 | ||
207 | int mlock(); | |
208 | int munlock(); | |
209 | int minherit(); | |
210 | int mlockall(); | |
211 | int munlockall(); | |
212 | #if COMPAT_43 | |
213 | #define compat(name,n) syss(__CONCAT(o,name),n) | |
214 | #define compatp(name,n) sysp(__CONCAT(o,name),n) | |
215 | #define comaptnet(name,n) sysnets(__CONCAT(o,name),n) | |
216 | #define comaptnetp(name,n) sysnetp(__CONCAT(o,name),n) | |
217 | ||
218 | int ocreat(); | |
219 | int olseek(); | |
220 | int ostat(); | |
221 | int olstat(); | |
222 | #if KTRACE | |
223 | #else | |
224 | #endif | |
225 | int ofstat(); | |
226 | int ogetkerninfo(); | |
227 | int osmmap(); | |
228 | int ogetpagesize(); | |
229 | int ommap(); | |
230 | int owait(); | |
231 | int ogethostname(); | |
232 | int osethostname(); | |
233 | int oaccept(); | |
234 | int osend(); | |
235 | int orecv(); | |
236 | int osigvec(); | |
237 | int osigblock(); | |
238 | int osigsetmask(); | |
239 | int osigstack(); | |
240 | int orecvmsg(); | |
241 | int osendmsg(); | |
242 | #if TRACE | |
243 | #else | |
244 | #endif | |
245 | int orecvfrom(); | |
246 | int osetreuid(); | |
247 | int osetregid(); | |
248 | int otruncate(); | |
249 | int oftruncate(); | |
250 | int ogetpeername(); | |
251 | int ogethostid(); | |
252 | int osethostid(); | |
253 | int ogetrlimit(); | |
254 | int osetrlimit(); | |
255 | int okillpg(); | |
256 | int oquota(); | |
257 | int ogetsockname(); | |
258 | int ogetdomainname(); | |
259 | int osetdomainname(); | |
260 | int owait3(); | |
261 | #if NFS | |
262 | #else | |
263 | #endif | |
264 | int ogetdirentries(); | |
265 | #if NFS | |
266 | #else | |
267 | #endif | |
268 | #if LFS | |
269 | #else | |
270 | #endif | |
271 | ||
272 | #if NETAT | |
273 | int ATsocket(); | |
274 | int ATgetmsg(); | |
275 | int ATputmsg(); | |
276 | int ATPsndreq(); | |
277 | int ATPsndrsp(); | |
278 | int ATPgetreq(); | |
279 | int ATPgetrsp(); | |
280 | #endif /* NETAT */ | |
281 | ||
282 | /* Calls for supporting HFS Semantics */ | |
283 | ||
284 | int mkcomplex(); | |
285 | int statv(); | |
286 | int lstatv(); | |
287 | int fstatv(); | |
288 | int getattrlist(); | |
289 | int setattrlist(); | |
290 | int getdirentriesattr(); | |
291 | int exchangedata(); | |
292 | int checkuseraccess(); | |
293 | int searchfs(); | |
294 | int delete(); | |
295 | int copyfile(); | |
296 | ||
297 | /* end of HFS calls */ | |
298 | ||
299 | #else /* COMPAT_43 */ | |
300 | #define compat(n, name) syss(nosys,0) | |
301 | #define compatp(n, name) sysp(nosys,0) | |
302 | #define comaptnet(n, name) sysnets(nosys,0) | |
303 | #define comaptnetp(n, name) sysnetp(nosys,0) | |
304 | #endif /* COMPAT_43 */ | |
305 | ||
306 | int watchevent(); | |
307 | int waitevent(); | |
308 | int modwatch(); | |
309 | int fsctl(); | |
310 | int semsys(); | |
311 | int msgsys(); | |
312 | int shmsys(); | |
313 | int semctl(); | |
314 | int semget(); | |
315 | int semop(); | |
316 | int semconfig(); | |
317 | int msgctl(); | |
318 | int msgget(); | |
319 | int msgsnd(); | |
320 | int msgrcv(); | |
321 | int shmat(); | |
322 | int shmctl(); | |
323 | int shmdt(); | |
324 | int shmget(); | |
325 | int shm_open(); | |
326 | int shm_unlink(); | |
327 | int sem_open(); | |
328 | int sem_close(); | |
329 | int sem_unlink(); | |
330 | int sem_wait(); | |
331 | int sem_trywait(); | |
332 | int sem_post(); | |
333 | int sem_getvalue(); | |
334 | int sem_init(); | |
335 | int sem_destroy(); | |
0b4e3aa0 A |
336 | |
337 | int issetugid(); | |
1c79356b A |
338 | /* |
339 | * System call switch table. | |
340 | */ | |
341 | ||
342 | ||
343 | struct sysent sysent[] = { | |
344 | syss(nosys,0), /* 0 = indir */ | |
345 | syss(exit,1), /* 1 = exit */ | |
346 | syss(fork,0), /* 2 = fork */ | |
347 | sysp(read,3), /* 3 = read */ | |
348 | sysp(write,3), /* 4 = write */ | |
349 | syss(open,3), /* 5 = open */ | |
350 | syss(close,1), /* 6 = close */ | |
351 | syss(wait4, 4), /* 7 = wait4 */ | |
352 | compat(creat,2), /* 8 = old creat */ | |
353 | syss(link,2), /* 9 = link */ | |
354 | syss(unlink,1), /* 10 = unlink */ | |
355 | syss(nosys, 0), /* 11 was obsolete execv */ | |
356 | syss(chdir,1), /* 12 = chdir */ | |
357 | syss(fchdir,1), /* 13 = fchdir */ | |
358 | syss(mknod,3), /* 14 = mknod */ | |
359 | syss(chmod,2), /* 15 = chmod */ | |
360 | syss(chown,3), /* 16 = chown; now 3 args */ | |
361 | syss(obreak,1), /* 17 = old break */ | |
362 | #if COMPAT_GETFSSTAT | |
363 | syss(ogetfsstat, 3), /* 18 = ogetfsstat */ | |
364 | #else | |
365 | syss(getfsstat, 3), /* 18 = getfsstat */ | |
366 | #endif | |
367 | compat(lseek,3), /* 19 = old lseek */ | |
368 | sysp(getpid,0), /* 20 = getpid */ | |
369 | syss(nosys, 0), /* 21 was obsolete mount */ | |
370 | syss(nosys, 0), /* 22 was obsolete umount */ | |
371 | syss(setuid,1), /* 23 = setuid */ | |
372 | sysp(getuid,0), /* 24 = getuid */ | |
373 | sysp(geteuid,0), /* 25 = geteuid */ | |
374 | syss(ptrace,4), /* 26 = ptrace */ | |
375 | sysnets(recvmsg,3), /* 27 = recvmsg */ | |
376 | sysnets(sendmsg,3), /* 28 = sendmsg */ | |
377 | sysnets(recvfrom,6), /* 29 = recvfrom */ | |
378 | sysnets(accept,3), /* 30 = accept */ | |
379 | sysnets(getpeername,3), /* 31 = getpeername */ | |
380 | sysnets(getsockname,3), /* 32 = getsockname */ | |
381 | syss(access,2), /* 33 = access */ | |
382 | syss(chflags,2), /* 34 = chflags */ | |
383 | syss(fchflags,2), /* 35 = fchflags */ | |
384 | syss(sync,0), /* 36 = sync */ | |
385 | syss(kill,2), /* 37 = kill */ | |
386 | compat(stat,2), /* 38 = old stat */ | |
387 | sysp(getppid,0), /* 39 = getppid */ | |
388 | compat(lstat,2), /* 40 = old lstat */ | |
389 | syss(dup,2), /* 41 = dup */ | |
390 | syss(pipe,0), /* 42 = pipe */ | |
391 | sysp(getegid,0), /* 43 = getegid */ | |
392 | syss(profil,4), /* 44 = profil */ | |
393 | #if KTRACE | |
394 | syss(ktrace,4), /* 45 = ktrace */ | |
395 | #else | |
396 | syss(nosys,0), /* 45 = nosys */ | |
397 | #endif | |
398 | syss(sigaction,3), /* 46 = sigaction */ | |
399 | sysp(getgid,0), /* 47 = getgid */ | |
400 | syss(sigprocmask,2), /* 48 = sigprocmask */ | |
401 | syss(getlogin,2), /* 49 = getlogin */ | |
402 | syss(setlogin,1), /* 50 = setlogin */ | |
403 | syss(acct,1), /* 51 = turn acct off/on */ | |
404 | syss(sigpending,0), /* 52 = sigpending */ | |
405 | syss(sigaltstack,2), /* 53 = sigaltstack */ | |
406 | syss(ioctl,3), /* 54 = ioctl */ | |
407 | syss(reboot,2), /* 55 = reboot */ | |
408 | syss(revoke,1), /* 56 = revoke */ | |
409 | syss(symlink,2), /* 57 = symlink */ | |
410 | syss(readlink,3), /* 58 = readlink */ | |
411 | syss(execve,3), /* 59 = execve */ | |
412 | syss(umask,1), /* 60 = umask */ | |
413 | syss(chroot,1), /* 61 = chroot */ | |
414 | compat(fstat,2), /* 62 = old fstat */ | |
415 | syss(nosys,0), /* 63 = used internally, reserved */ | |
416 | compat(getpagesize,0), /* 64 = old getpagesize */ | |
417 | syss(msync,3), /* 65 = msync */ | |
418 | syss(vfork,0), /* 66 = vfork */ | |
419 | syss(nosys,0), /* 67 was obsolete vread */ | |
420 | syss(nosys,0), /* 68 was obsolete vwrite */ | |
421 | syss(sbrk,1), /* 69 = sbrk */ | |
422 | syss(sstk,1), /* 70 = sstk */ | |
423 | compat(smmap,6), /* 71 = old mmap */ | |
424 | syss(ovadvise,1), /* 72 = old vadvise */ | |
425 | syss(munmap,2), /* 73 = munmap */ | |
426 | syss(mprotect,3), /* 74 = mprotect */ | |
427 | syss(madvise,3), /* 75 = madvise */ | |
428 | syss(nosys,0), /* 76 was obsolete vhangup */ | |
429 | syss(nosys,0), /* 77 was obsolete vlimit */ | |
430 | syss(mincore,3), /* 78 = mincore */ | |
431 | sysp(getgroups,2), /* 79 = getgroups */ | |
432 | sysp(setgroups,2), /* 80 = setgroups */ | |
433 | sysp(getpgrp,0), /* 81 = getpgrp */ | |
434 | sysp(setpgid,2), /* 82 = setpgid */ | |
435 | syss(setitimer,3), /* 83 = setitimer */ | |
436 | compat(wait,0), /* 84 = old wait */ | |
437 | syss(swapon,1), /* 85 = swapon */ | |
438 | syss(getitimer,2), /* 86 = getitimer */ | |
439 | compat(gethostname,2), /* 87 = old gethostname */ | |
440 | compat(sethostname,2), /* 88 = old sethostname */ | |
441 | sysp(getdtablesize, 0), /* 89 getdtablesize */ | |
442 | syss(dup2,2), /* 90 = dup2 */ | |
443 | syss(nosys,0), /* 91 was obsolete getdopt */ | |
444 | syss(fcntl,3), /* 92 = fcntl */ | |
445 | syss(select,5), /* 93 = select */ | |
446 | syss(nosys,0), /* 94 was obsolete setdopt */ | |
447 | syss(fsync,1), /* 95 = fsync */ | |
448 | sysp(setpriority,3), /* 96 = setpriority */ | |
449 | sysnets(socket,3), /* 97 = socket */ | |
450 | sysnets(connect,3), /* 98 = connect */ | |
451 | comaptnet(accept,3), /* 99 = accept */ | |
452 | sysp(getpriority,2), /* 100 = getpriority */ | |
453 | comaptnet(send,4), /* 101 = old send */ | |
454 | comaptnet(recv,4), /* 102 = old recv */ | |
455 | syss(sigreturn,1), /* 103 = sigreturn */ | |
456 | sysnets(bind,3), /* 104 = bind */ | |
457 | sysnets(setsockopt,5), /* 105 = setsockopt */ | |
458 | sysnets(listen,2), /* 106 = listen */ | |
459 | syss(nosys,0), /* 107 was vtimes */ | |
460 | compat(sigvec,3), /* 108 = sigvec */ | |
461 | compat(sigblock,1), /* 109 = sigblock */ | |
462 | compat(sigsetmask,1), /* 110 = sigsetmask */ | |
463 | syss(sigsuspend,1), /* 111 = sigpause */ | |
464 | compat(sigstack,2), /* 112 = sigstack */ | |
465 | comaptnet(recvmsg,3), /* 113 = recvmsg */ | |
466 | comaptnet(sendmsg,3), /* 114 = sendmsg */ | |
467 | syss(nosys,0), /* 115 = old vtrace */ | |
468 | syss(gettimeofday,2), /* 116 = gettimeofday */ | |
469 | sysp(getrusage,2), /* 117 = getrusage */ | |
470 | sysnets(getsockopt,5), /* 118 = getsockopt */ | |
471 | syss(nosys,0), /* 119 = old resuba */ | |
472 | sysp(readv,3), /* 120 = readv */ | |
473 | sysp(writev,3), /* 121 = writev */ | |
474 | syss(settimeofday,2), /* 122 = settimeofday */ | |
475 | syss(fchown,3), /* 123 = fchown */ | |
476 | syss(fchmod,2), /* 124 = fchmod */ | |
477 | comaptnet(recvfrom,6), /* 125 = recvfrom */ | |
478 | compat(setreuid,2), /* 126 = setreuid */ | |
479 | compat(setregid,2), /* 127 = setregid */ | |
480 | syss(rename,2), /* 128 = rename */ | |
481 | compat(truncate,2), /* 129 = old truncate */ | |
482 | compat(ftruncate,2), /* 130 = ftruncate */ | |
483 | syss(flock,2), /* 131 = flock */ | |
484 | syss(mkfifo,2), /* 132 = nosys */ | |
485 | sysnets(sendto,6), /* 133 = sendto */ | |
486 | sysnets(shutdown,2), /* 134 = shutdown */ | |
487 | sysnets(socketpair,5), /* 135 = socketpair */ | |
488 | syss(mkdir,2), /* 136 = mkdir */ | |
489 | syss(rmdir,1), /* 137 = rmdir */ | |
490 | syss(utimes,2), /* 138 = utimes */ | |
491 | syss(nosys,0), /* 139 = used internally */ | |
492 | syss(adjtime,2), /* 140 = adjtime */ | |
493 | comaptnet(getpeername,3),/* 141 = getpeername */ | |
494 | compat(gethostid,0), /* 142 = old gethostid */ | |
495 | sysp(nosys,0), /* 143 = old sethostid */ | |
496 | compat(getrlimit,2), /* 144 = old getrlimit */ | |
497 | compat(setrlimit,2), /* 145 = old setrlimit */ | |
498 | compat(killpg,2), /* 146 = old killpg */ | |
499 | syss(setsid,0), /* 147 = setsid */ | |
500 | syss(nosys,0), /* 148 was setquota */ | |
501 | syss(nosys,0), /* 149 was qquota */ | |
502 | comaptnet(getsockname,3),/* 150 = getsockname */ | |
503 | /* | |
504 | * Syscalls 151-183 inclusive are reserved for vendor-specific | |
505 | * system calls. (This includes various calls added for compatibity | |
506 | * with other Unix variants.) | |
507 | */ | |
508 | syss(nosys,0), /* 151 was m68k specific machparam */ | |
509 | sysp(setprivexec,1),/* 152 = setprivexec */ | |
510 | syss(nosys,0), /* 153 */ | |
511 | syss(nosys,0), /* 154 */ | |
512 | syss(nfssvc,2), /* 155 = nfs_svc */ | |
513 | compat(getdirentries,4), /* 156 = old getdirentries */ | |
514 | syss(statfs, 2), /* 157 = statfs */ | |
515 | syss(fstatfs, 2), /* 158 = fstatfs */ | |
516 | syss(unmount, 2), /* 159 = unmount */ | |
517 | syss(nosys,0), /* 160 was async_daemon */ | |
518 | syss(getfh,2), /* 161 = get file handle */ | |
519 | /*?????*/ | |
520 | compat(getdomainname,2), /* 162 = getdomainname */ | |
521 | compat(setdomainname,2), /* 163 = setdomainname */ | |
522 | syss(nosys,0), /* 164 */ | |
523 | #if QUOTA | |
524 | syss(quotactl, 4), /* 165 = quotactl */ | |
525 | #else QUOTA | |
526 | syss(nosys, 0), /* 165 = not configured */ | |
527 | #endif /* QUOTA */ | |
528 | syss(nosys,0), /* 166 was exportfs */ | |
529 | syss(mount, 4), /* 167 = mount */ | |
530 | syss(nosys,0), /* 168 was ustat */ | |
531 | syss(nosys,0), /* 169 = nosys */ | |
532 | syss(nosys,0), /* 170 was table */ | |
533 | compat(wait3,3), /* 171 = old wait3 */ | |
534 | syss(nosys,0), /* 172 was rpause */ | |
535 | syss(nosys,0), /* 173 = nosys */ | |
536 | syss(nosys,0), /* 174 was getdents */ | |
537 | syss(nosys,0), /* 175 was gc_control */ | |
538 | syss(add_profil,4), /* 176 = add_profil */ | |
539 | syss(nosys,0), /* 177 */ | |
540 | syss(nosys,0), /* 178 */ | |
541 | syss(nosys,0), /* 179 */ | |
542 | syss(kdebug_trace,0), /* 180 */ | |
543 | syss(setgid,1), /* 181 */ | |
544 | syss(setegid,1), /* 182 */ | |
545 | syss(seteuid,1), /* 183 */ | |
546 | #if LFS | |
547 | syss(lfs_bmapv,3), /* 184 = lfs_bmapv */ | |
548 | syss(lfs_markv,3), /* 185 = lfs_markv */ | |
549 | syss(lfs_segclean,2), /* 186 = lfs_segclean */ | |
550 | syss(lfs_segwait,2), /* 187 = lfs_segwait */ | |
551 | #else | |
552 | syss(nosys,0), /* 184 = nosys */ | |
553 | syss(nosys,0), /* 185 = nosys */ | |
554 | syss(nosys,0), /* 186 = nosys */ | |
555 | syss(nosys,0), /* 187 = nosys */ | |
556 | #endif | |
557 | syss(stat,2), /* 188 = stat */ | |
558 | syss(fstat,2), /* 189 = fstat */ | |
559 | syss(lstat,2), /* 190 = lstat */ | |
560 | syss(pathconf,2), /* 191 = pathconf */ | |
561 | syss(fpathconf,2), /* 192 = fpathconf */ | |
562 | #if COMPAT_GETFSSTAT | |
563 | syss(getfsstat,0), /* 193 = getfsstat */ | |
564 | #else | |
565 | syss(nosys,0), /* 193 is unused */ | |
566 | #endif | |
567 | syss(getrlimit,2), /* 194 = getrlimit */ | |
568 | syss(setrlimit,2), /* 195 = setrlimit */ | |
569 | syss(getdirentries,4), /* 196 = getdirentries */ | |
570 | #ifdef DOUBLE_ALIGN_PARAMS | |
571 | syss(mmap,8), /* 197 = mmap */ | |
572 | #else | |
573 | syss(mmap,7), /* 197 = mmap */ | |
574 | #endif | |
575 | syss(nosys,0), /* 198 = __syscall */ | |
576 | syss(lseek,5), /* 199 = lseek */ | |
577 | syss(truncate,4), /* 200 = truncate */ | |
578 | syss(ftruncate,4), /* 201 = ftruncate */ | |
579 | syss(__sysctl,6), /* 202 = __sysctl */ | |
580 | sysp(mlock, 2), /* 203 = mlock */ | |
581 | syss(munlock, 2), /* 204 = munlock */ | |
582 | #if NETAT | |
583 | syss(undelete,1), /* 205 = undelete */ | |
584 | sysnets(ATsocket,1), /* 206 = AppleTalk ATsocket */ | |
585 | sysnets(ATgetmsg,4), /* 207 = AppleTalk ATgetmsg*/ | |
586 | sysnets(ATputmsg,4), /* 208 = AppleTalk ATputmsg*/ | |
587 | sysnets(ATPsndreq,4), /* 209 = AppleTalk ATPsndreq*/ | |
588 | sysnets(ATPsndrsp,4), /* 210 = AppleTalk ATPsndrsp*/ | |
589 | sysnets(ATPgetreq,3), /* 211 = AppleTalk ATPgetreq*/ | |
590 | sysnets(ATPgetrsp,2), /* 212 = AppleTalk ATPgetrsp*/ | |
591 | syss(nosys,0), /* 213 = Reserved for AT expansion */ | |
592 | syss(nosys,0), /* 214 = Reserved for AT expansion */ | |
593 | syss(nosys,0), /* 215 = Reserved for AT expansion */ | |
594 | #else | |
595 | syss(undelete,1), /* 205 = undelete */ | |
596 | ||
597 | /* System calls 205 - 215 are reserved to allow HFS and AT to coexist */ | |
598 | /* CHW 1/22/98 */ | |
599 | ||
600 | syss(nosys,0), /* 206 = Reserved for AppleTalk */ | |
601 | syss(nosys,0), /* 207 = Reserved for AppleTalk */ | |
602 | syss(nosys,0), /* 208 = Reserved for AppleTalk */ | |
603 | syss(nosys,0), /* 209 = Reserved for AppleTalk */ | |
604 | syss(nosys,0), /* 210 = Reserved for AppleTalk */ | |
605 | syss(nosys,0), /* 211 = Reserved for AppleTalk */ | |
606 | syss(nosys,0), /* 212 = Reserved for AppleTalk */ | |
607 | syss(nosys,0), /* 213 = Reserved for AppleTalk */ | |
608 | syss(nosys,0), /* 214 = Reserved for AppleTalk */ | |
609 | syss(nosys,0), /* 215 = Reserved for AppleTalk */ | |
610 | #endif /* NETAT */ | |
611 | ||
612 | /* | |
613 | * System Calls 216 - 230 are reserved for calls to support HFS/HFS Plus | |
614 | * file system semantics. Currently, we only use 215-227. The rest is | |
615 | * for future expansion in anticipation of new MacOS APIs for HFS Plus. | |
616 | * These calls are not conditionalized becuase while they are specific | |
617 | * to HFS semantics, they are not specific to the HFS filesystem. | |
618 | * We expect all filesystems to recognize the call and report that it is | |
619 | * not supported or to actually implement it. | |
620 | */ | |
621 | syss(nosys,3), /* 216 = HFS make complex file call (multipel forks */ | |
622 | syss(nosys,2), /* 217 = HFS statv extended stat call for HFS */ | |
623 | syss(nosys,2), /* 218 = HFS lstatv extended lstat call for HFS */ | |
624 | syss(nosys,2), /* 219 = HFS fstatv extended fstat call for HFS */ | |
625 | syss(getattrlist,5), /* 220 = HFS getarrtlist get attribute list cal */ | |
626 | syss(setattrlist,5), /* 221 = HFS setattrlist set attribute list */ | |
627 | syss(getdirentriesattr,8), /* 222 = HFS getdirentriesattr get directory attributes */ | |
628 | syss(exchangedata,3), /* 223 = HFS exchangedata exchange file contents */ | |
629 | syss(checkuseraccess,6),/* 224 = HFS checkuseraccess check access to a file */ | |
630 | syss(searchfs,6), /* 225 = HFS searchfs to implement catalog searching */ | |
631 | syss(delete,1), /* 226 = private HFS delete (with Mac OS semantics) */ | |
632 | syss(copyfile,4), /* 227 = Copyfile for orignally for AFP */ | |
633 | syss(nosys,0), /* 228 */ | |
634 | syss(nosys,0), /* 229 */ | |
635 | syss(nosys,0), /* 230 */ | |
636 | sysnets(watchevent,2), /* 231 */ | |
637 | sysnets(waitevent,2), /* 232 */ | |
638 | sysnets(modwatch,2), /* 233 */ | |
639 | syss(nosys,0), /* 234 */ | |
640 | syss(nosys,0), /* 235 */ | |
641 | syss(nosys,0), /* 236 */ | |
642 | syss(nosys,0), /* 237 */ | |
643 | syss(nosys,0), /* 238 */ | |
644 | syss(nosys,0), /* 239 */ | |
645 | syss(nosys,0), /* 240 */ | |
646 | syss(nosys,0), /* 241 */ | |
647 | syss(fsctl,0), /* 242 */ | |
648 | syss(nosys,0), /* 243 */ | |
649 | syss(nosys,0), /* 244 */ | |
650 | syss(nosys,0), /* 245 */ | |
651 | syss(nosys,0), /* 246 */ | |
652 | syss(nosys,0), /* 247 */ | |
653 | syss(nosys,0), /* 248 */ | |
654 | syss(nosys,0), /* 249 */ | |
655 | syss(minherit,3), /* 250 */ | |
656 | syss(semsys,5), /* 251 = semsys */ | |
657 | syss(msgsys,6), /* 252 = msgsys */ | |
658 | syss(shmsys,4), /* 253 = shmsys */ | |
659 | syss(semctl,4), /* 254 = semctl */ | |
660 | syss(semget,3), /* 255 = semget */ | |
661 | syss(semop,3), /* 256 = semop */ | |
662 | syss(semconfig,1), /* 257 = semconfig */ | |
663 | syss(msgctl,3), /* 258 = msgctl */ | |
664 | syss(msgget,2), /* 259 = msgget */ | |
665 | syss(msgsnd,4), /* 260 = msgsnd */ | |
666 | syss(msgrcv,5), /* 261 = msgrcv */ | |
667 | syss(shmat,3), /* 262 = shmat */ | |
668 | syss(shmctl,3), /* 263 = shmctl */ | |
669 | syss(shmdt,1), /* 264 = shmdt */ | |
670 | syss(shmget,3), /* 265 = shmget */ | |
671 | syss(shm_open,3), /* 266 = shm_open */ | |
672 | syss(shm_unlink,1), /* 267 = shm_unlink */ | |
673 | syss(sem_open,4), /* 268 = sem_open */ | |
674 | syss(sem_close,1), /* 269 = sem_close */ | |
675 | syss(sem_unlink,1), /* 270 = sem_unlink */ | |
676 | syss(sem_wait,1), /* 271 = sem_wait */ | |
677 | syss(sem_trywait,1), /* 272 = sem_trywait */ | |
678 | syss(sem_post,1), /* 273 = sem_post */ | |
679 | syss(sem_getvalue,2), /* 274 = sem_getvalue */ | |
680 | syss(sem_init,3), /* 275 = sem_init */ | |
681 | syss(sem_destroy,1), /* 276 = sem_destroy */ | |
682 | syss(nosys,0), /* 277 */ | |
683 | syss(nosys,0), /* 278 */ | |
684 | syss(nosys,0), /* 279 */ | |
685 | syss(nosys,0), /* 280 */ | |
686 | syss(nosys,0), /* 281 */ | |
687 | syss(nosys,0), /* 282 */ | |
688 | syss(nosys,0), /* 283 */ | |
689 | syss(nosys,0), /* 284 */ | |
690 | syss(nosys,0), /* 285 */ | |
691 | syss(nosys,0), /* 286 */ | |
692 | syss(nosys,0), /* 287 */ | |
693 | syss(nosys,0), /* 288 */ | |
694 | syss(nosys,0), /* 289 */ | |
695 | syss(nosys,0), /* 290 */ | |
696 | syss(nosys,0), /* 291 */ | |
697 | syss(nosys,0), /* 292 */ | |
698 | syss(nosys,0), /* 293 */ | |
699 | syss(nosys,0), /* 294 */ | |
700 | syss(nosys,0), /* 295 */ | |
701 | syss(load_shared_file,7), /* 296 */ | |
702 | syss(reset_shared_file,3), /* 297 */ | |
703 | syss(nosys,0), /* 298 */ | |
704 | syss(nosys,0), /* 299 */ | |
705 | syss(nosys,0), /* 300 */ | |
706 | syss(nosys,0), /* 301 */ | |
707 | syss(nosys,0), /* 302 */ | |
708 | syss(nosys,0), /* 303 */ | |
709 | syss(nosys,0), /* 304 */ | |
710 | syss(nosys,0), /* 305 */ | |
711 | syss(nosys,0), /* 306 */ | |
712 | syss(nosys,0), /* 307 */ | |
713 | syss(nosys,0), /* 308 */ | |
714 | syss(nosys,0), /* 309 */ | |
715 | syss(nosys,0), /* 310 */ | |
716 | syss(nosys,0), /* 311 */ | |
717 | syss(nosys,0), /* 312 */ | |
718 | syss(nosys,0), /* 313 */ | |
719 | syss(nosys,0), /* 314 */ | |
720 | syss(nosys,0), /* 315 */ | |
721 | syss(nosys,0), /* 316 */ | |
722 | syss(nosys,0), /* 317 */ | |
723 | syss(nosys,0), /* 318 */ | |
724 | syss(nosys,0), /* 319 */ | |
725 | syss(nosys,0), /* 320 */ | |
726 | syss(nosys,0), /* 321 */ | |
727 | syss(nosys,0), /* 322 */ | |
728 | syss(nosys,0), /* 323 */ | |
729 | syss(mlockall,1), /* 324 */ | |
730 | syss(munlockall,1), /* 325 */ | |
731 | syss(nosys,0), /* 326 */ | |
0b4e3aa0 | 732 | sysp(issetugid,0), /* 327 = issetugid */ |
1c79356b A |
733 | syss(nosys,0), /* 328 */ |
734 | syss(nosys,0), /* 329 */ | |
735 | syss(nosys,0), /* 330 */ | |
736 | syss(nosys,0), /* 331 */ | |
737 | syss(nosys,0), /* 332 */ | |
738 | syss(nosys,0), /* 333 */ | |
739 | syss(nosys,0), /* 334 */ | |
740 | syss(nosys,0), /* 335 */ | |
741 | syss(nosys,0), /* 336 */ | |
742 | syss(nosys,0), /* 337 */ | |
743 | syss(nosys,0), /* 338 */ | |
744 | syss(nosys,0), /* 339 */ | |
745 | syss(nosys,0), /* 340 */ | |
746 | syss(nosys,0), /* 341 */ | |
747 | syss(nosys,0), /* 342 */ | |
748 | syss(nosys,0), /* 343 */ | |
749 | syss(nosys,0), /* 344 */ | |
750 | syss(nosys,0), /* 345 */ | |
751 | syss(nosys,0), /* 346 */ | |
752 | syss(nosys,0), /* 347 */ | |
753 | syss(nosys,0), /* 348 */ | |
754 | syss(nosys,0) /* 349 */ | |
755 | }; | |
756 | int nsysent = sizeof(sysent) / sizeof(sysent[0]); |