1: #include "../h/param.h" 2: #include "../h/systm.h" 3: 4: /* 5: * This table is the switch used to transfer 6: * to the appropriate routine for processing a system call. 7: * Each row contains the number of arguments expected 8: * and a pointer to the routine. 9: */ 10: int alarm(); 11: int mpxchan(); 12: int chdir(); 13: int chmod(); 14: int chown(); 15: int chroot(); 16: int close(); 17: int creat(); 18: int dup(); 19: int exec(); 20: int exece(); 21: int fork(); 22: int fstat(); 23: int getgid(); 24: int getpid(); 25: int getuid(); 26: int gtime(); 27: int gtty(); 28: int ioctl(); 29: int kill(); 30: int link(); 31: int mknod(); 32: int nice(); 33: int nosys(); 34: int nullsys(); 35: int open(); 36: int pause(); 37: int pipe(); 38: int profil(); 39: int ptrace(); 40: int read(); 41: int rexit(); 42: int saccess(); 43: int sbreak(); 44: int seek(); 45: int setgid(); 46: int setuid(); 47: int smount(); 48: int ssig(); 49: int stat(); 50: int stime(); 51: int stty(); 52: int sumount(); 53: int ftime(); 54: int sync(); 55: int sysacct(); 56: int syslock(); 57: int sysphys(); 58: int times(); 59: int umask(); 60: int unlink(); 61: int utime(); 62: int wait(); 63: int write(); 64: 65: struct sysent sysent[64] = 66: { 67: 0, 0, nullsys, /* 0 = indir */ 68: 1, 1, rexit, /* 1 = exit */ 69: 0, 0, fork, /* 2 = fork */ 70: 3, 1, read, /* 3 = read */ 71: 3, 1, write, /* 4 = write */ 72: 2, 0, open, /* 5 = open */ 73: 1, 1, close, /* 6 = close */ 74: 0, 0, wait, /* 7 = wait */ 75: 2, 0, creat, /* 8 = creat */ 76: 2, 0, link, /* 9 = link */ 77: 1, 0, unlink, /* 10 = unlink */ 78: 2, 0, exec, /* 11 = exec */ 79: 1, 0, chdir, /* 12 = chdir */ 80: 0, 0, gtime, /* 13 = time */ 81: 3, 0, mknod, /* 14 = mknod */ 82: 2, 0, chmod, /* 15 = chmod */ 83: 3, 0, chown, /* 16 = chown; now 3 args */ 84: 1, 0, sbreak, /* 17 = break */ 85: 2, 0, stat, /* 18 = stat */ 86: 4, 1, seek, /* 19 = seek; now 3 args */ 87: 0, 0, getpid, /* 20 = getpid */ 88: 3, 0, smount, /* 21 = mount */ 89: 1, 0, sumount, /* 22 = umount */ 90: 1, 1, setuid, /* 23 = setuid */ 91: 0, 0, getuid, /* 24 = getuid */ 92: 2, 2, stime, /* 25 = stime */ 93: 4, 1, ptrace, /* 26 = ptrace */ 94: 1, 1, alarm, /* 27 = alarm */ 95: 2, 1, fstat, /* 28 = fstat */ 96: 0, 0, pause, /* 29 = pause */ 97: 2, 0, utime, /* 30 = utime */ 98: 2, 1, stty, /* 31 = stty */ 99: 2, 1, gtty, /* 32 = gtty */ 100: 2, 0, saccess, /* 33 = access */ 101: 1, 1, nice, /* 34 = nice */ 102: 1, 0, ftime, /* 35 = ftime; formerly sleep */ 103: 0, 0, sync, /* 36 = sync */ 104: 2, 1, kill, /* 37 = kill */ 105: 0, 0, nullsys, /* 38 = switch; inoperative */ 106: 0, 0, nullsys, /* 39 = setpgrp (not in yet) */ 107: 1, 1, nosys, /* 40 = tell (obsolete) */ 108: 2, 2, dup, /* 41 = dup */ 109: 0, 0, pipe, /* 42 = pipe */ 110: 1, 0, times, /* 43 = times */ 111: 4, 0, profil, /* 44 = prof */ 112: 0, 0, nosys, /* 45 = unused */ 113: 1, 1, setgid, /* 46 = setgid */ 114: 0, 0, getgid, /* 47 = getgid */ 115: 2, 0, ssig, /* 48 = sig */ 116: 0, 0, nosys, /* 49 = reserved for USG */ 117: 0, 0, nosys, /* 50 = reserved for USG */ 118: 1, 0, sysacct, /* 51 = turn acct off/on */ 119: 3, 0, sysphys, /* 52 = set user physical addresses */ 120: 1, 0, syslock, /* 53 = lock user in core */ 121: 3, 0, ioctl, /* 54 = ioctl */ 122: 0, 0, nosys, /* 55 = readwrite (in abeyance) */ 123: 4, 0, mpxchan, /* 56 = creat mpx comm channel */ 124: 0, 0, nosys, /* 57 = reserved for USG */ 125: 0, 0, nosys, /* 58 = reserved for USG */ 126: 3, 0, exece, /* 59 = exece */ 127: 1, 0, umask, /* 60 = umask */ 128: 1, 0, chroot, /* 61 = chroot */ 129: 0, 0, nosys, /* 62 = x */ 130: 0, 0, nosys /* 63 = used internally */ 131: };