# #include "param.h" /* * This table is the switch used to transfer * to the appropriate routine for processing a system call. * Each row contains the number of arguments expected * and a pointer to the routine. * * When adding new system calls to UNIX be sure to recompile * the debuggers and add the necessary new information. * * ddt: change syscall.h to include the new information * db: * cdb: */ int sysent[] { 0, &nullsys, /* 0 = indir */ 0, &rexit, /* 1 = exit */ 0, &fork, /* 2 = fork */ 2, &read, /* 3 = read */ 2, &write, /* 4 = write */ 2, &open, /* 5 = open */ 0, &close, /* 6 = close */ 0, &wait, /* 7 = wait */ 2, &creat, /* 8 = creat */ 2, &link, /* 9 = link */ 1, &unlink, /* 10 = unlink */ 2, &exec, /* 11 = exec */ 1, &chdir, /* 12 = chdir */ 0, >ime, /* 13 = time */ 3, &mknod, /* 14 = mknod */ 2, &chmod, /* 15 = chmod */ 2, &chown, /* 16 = chown */ 1, &sbreak, /* 17 = break */ 2, &stat, /* 18 = stat */ 2, &seek, /* 19 = seek */ 0, &getpid, /* 20 = getpid */ 3, &smount, /* 21 = mount */ 1, &sumount, /* 22 = umount */ 0, &setuid, /* 23 = setuid */ 0, &getuid, /* 24 = getuid */ 0, &stime, /* 25 = stime */ 3, &ptrace, /* 26 = ptrace */ 0, &alarm, /* 27 = alarm */ 1, &fstat, /* 28 = fstat */ 0, &pause, /* 29 = pause */ #ifndef SMDATE 1, &nullsys, /* 30 = x */ #endif not SMDATE #ifdef SMDATE 1, &smdate, /* 30 = smdate */ #endif SMDATE 1, &stty, /* 31 = stty */ 1, >ty, /* 32 = gtty */ 2, &saccess, /* 33 = access */ 0, &nice, /* 34 = nice */ 0, &sslep, /* 35 = sleep */ 0, &sync, /* 36 = sync */ 1, &kill, /* 37 = kill */ 0, &getswit, /* 38 = switch */ 0, &nosys, /* 39 = x */ 0, &nosys, /* 40 = x */ 0, &dup, /* 41 = dup */ 0, &pipe, /* 42 = pipe */ 1, ×, /* 43 = times */ 4, &profil, /* 44 = prof */ 0, &nosys, /* 45 = tiu */ 0, &setgid, /* 46 = setgid */ 0, &getgid, /* 47 = getgid */ 2, &ssig, /* 48 = sig */ 0, &nosys, /* 49 = x */ #ifndef NETSYS 0, &nosys, /* 50 = x */ 0, &nosys, /* 51 = x */ #endif NETSYS #ifdef NETSYS 0, &sendins, /* 50 = send ins */ 0, &net_reset, /* 51 = net_reset */ #endif NETSYS #ifndef ACCTSYS 0, &nosys, /* 52 = x */ #endif not ACCTSYS #ifdef ACCTSYS 2, &accput, /* 52 = accounting put */ #endif ACCTSYS 0, &nosys, /* 53 = x */ 0, &nosys, /* 54 = x */ #ifndef FASTIME 0, &nosys, /* 55 = x */ #endif FASTIME #ifdef FASTIME 0, &ftime, /* 55 = ftime */ #endif 0, &nosys, /* 56 = x */ 0, &nosys, /* 57 = x */ 0, &nosys, /* 58 = x */ 0, &nosys, /* 59 = x */ #ifndef RAND 0, &nosys, /* 61 = x */ 0, &nosys, /* 62 = x */ 0, &nosys /* 63 = x */ #endif not RAND #ifdef RAND 0, &eofpipe, /* 60 = eofp (rand:bobg) */ 0, &gprocs, /* 61 = getproc (rand:bobg) */ 0, &sfork, /* 62 = sfork (rand:bobg) */ 0, &empty /* 63 = empty (rand) */ #endif RAND };