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