]> git.saurik.com Git - apple/xnu.git/blob - bsd/kern/init_sysent.c
xnu-201.14.tar.gz
[apple/xnu.git] / bsd / kern / init_sysent.c
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();
336
337 int issetugid();
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 */
732 sysp(issetugid,0), /* 327 = issetugid */
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]);