1: /*
   2:  *	SCCS id	@(#)sysent.c	2.1 (Berkeley)	9/4/83
   3:  */
   4: 
   5: #include "param.h"
   6: #include <sys/systm.h>
   7: #ifdef  UCB_QUOTAS
   8: #include <sys/quota.h>
   9: #endif
  10: 
  11: /*
  12:  * This table is the switch used to transfer
  13:  * to the appropriate routine for processing a system call.
  14:  * Each row contains the number of arguments expected
  15:  * and a pointer to the routine.
  16:  */
  17: int alarm();
  18: #ifdef  MPX_FILS
  19: int mpxchan();
  20: #else
  21: #define mpxchan     nosys
  22: #endif
  23: int chdir();
  24: int chmod();
  25: int chown();
  26: int chroot();
  27: int close();
  28: int creat();
  29: int dup();
  30: int exec();
  31: int exece();
  32: int fork();
  33: int fstat();
  34: int getgid();
  35: int getpid();
  36: int getuid();
  37: int gtime();
  38: int gtty();
  39: int ioctl();
  40: int kill();
  41: int link();
  42: int mknod();
  43: int nice();
  44: int nosys();
  45: int nullsys();
  46: int open();
  47: int pause();
  48: int pipe();
  49: int profil();
  50: int ptrace();
  51: int read();
  52: #ifdef  UCB_AUTOBOOT
  53: int reboot();
  54: #else
  55: #define reboot      nosys
  56: #endif
  57: int rexit();
  58: int saccess();
  59: int sbreak();
  60: int seek();
  61: int setgid();
  62: #ifdef MENLO_JCL
  63: int setpgrp();
  64: #else
  65: #define setpgrp     nosys
  66: #endif
  67: int setuid();
  68: int smount();
  69: int ssig();
  70: int stat();
  71: int stime();
  72: int stty();
  73: int sumount();
  74: int ftime();
  75: #ifdef ACCT
  76: int sysacct();
  77: #else
  78: #define sysacct     nosys
  79: #endif
  80: int syslock();
  81: int sysphys();
  82: int times();
  83: int umask();
  84: int unlink();
  85: int update();
  86: int utime();
  87: int wait();
  88: int write();
  89: #ifdef CGL_RTP
  90: int rtp();
  91: #else
  92: #define rtp     nosys
  93: #endif
  94: #ifdef  VIRUS_VFORK
  95: int vfork();
  96: #else
  97: #define vfork       nosys
  98: #endif
  99: 
 100: struct sysent sysent[64] =
 101: {
 102:     1, 0, nullsys,          /*  0 = indir */
 103:     1, 1, rexit,            /*  1 = exit */
 104:     0, 0, fork,         /*  2 = fork */
 105:     3, 1, read,         /*  3 = read */
 106:     3, 1, write,            /*  4 = write */
 107:     2, 0, open,         /*  5 = open */
 108:     1, 1, close,            /*  6 = close */
 109:     0, 0, wait,         /*  7 = wait */
 110:     2, 0, creat,            /*  8 = creat */
 111:     2, 0, link,         /*  9 = link */
 112:     1, 0, unlink,           /* 10 = unlink */
 113:     2, 0, exec,         /* 11 = exec */
 114:     1, 0, chdir,            /* 12 = chdir */
 115:     0, 0, gtime,            /* 13 = time */
 116:     3, 0, mknod,            /* 14 = mknod */
 117:     2, 0, chmod,            /* 15 = chmod */
 118:     3, 0, chown,            /* 16 = chown; now 3 args */
 119:     1, 0, sbreak,           /* 17 = break */
 120:     2, 0, stat,         /* 18 = stat */
 121:     4, 1, seek,         /* 19 = seek; now 3 args */
 122:     0, 0, getpid,           /* 20 = getpid */
 123:     3, 0, smount,           /* 21 = mount */
 124:     1, 0, sumount,          /* 22 = umount */
 125:     1, 1, setuid,           /* 23 = setuid */
 126:     0, 0, getuid,           /* 24 = getuid */
 127:     2, 2, stime,            /* 25 = stime */
 128:     4, 1, ptrace,           /* 26 = ptrace */
 129:     1, 1, alarm,            /* 27 = alarm */
 130:     2, 1, fstat,            /* 28 = fstat */
 131:     0, 0, pause,            /* 29 = pause */
 132:     2, 0, utime,            /* 30 = utime */
 133:     2, 1, stty,         /* 31 = stty */
 134:     2, 1, gtty,         /* 32 = gtty */
 135:     2, 0, saccess,          /* 33 = access */
 136:     1, 1, nice,         /* 34 = nice */
 137:     1, 0, ftime,            /* 35 = ftime; formerly sleep */
 138:     0, 0, update,           /* 36 = sync */
 139:     2, 1, kill,         /* 37 = kill */
 140:     0, 0, nullsys,          /* 38 = switch; inoperative */
 141:     2, 1, setpgrp,          /* 39 = setpgrp */
 142:     1, 1, nosys,            /* 40 = tell (obsolete) */
 143:     2, 2, dup,          /* 41 = dup */
 144:     0, 0, pipe,         /* 42 = pipe */
 145:     1, 0, times,            /* 43 = times */
 146:     4, 0, profil,           /* 44 = prof */
 147:     0, 0, nosys,            /* 45 = unused */
 148:     1, 1, setgid,           /* 46 = setgid */
 149:     0, 0, getgid,           /* 47 = getgid */
 150:     2, 0, ssig,         /* 48 = sig */
 151:     1, 1, rtp,          /* 49 = real time process */
 152:     0, 0, nosys,            /* 50 = reserved for USG */
 153:     1, 0, sysacct,          /* 51 = turn acct off/on */
 154:     3, 0, sysphys,          /* 52 = set user physical addresses */
 155:     1, 0, syslock,          /* 53 = lock user in core */
 156:     3, 0, ioctl,            /* 54 = ioctl */
 157:     2, 0, reboot,           /* 55 = reboot */
 158:     4, 0, mpxchan,          /* 56 = creat mpx comm channel */
 159:     0, 0, vfork,            /* 57 = vfork */
 160:     1, 0, nosys,            /* 58 = local system calls */
 161:     3, 0, exece,            /* 59 = exece */
 162:     1, 0, umask,            /* 60 = umask */
 163:     1, 0, chroot,           /* 61 = chroot */
 164:     0, 0, nosys,            /* 62 = x */
 165:     0, 0, nosys         /* 63 = used internally */
 166: };
 167: 
 168: #ifdef  UCB_LOGIN
 169: int login();
 170: #else
 171: #define login       nosys
 172: #endif
 173: #ifdef UCB_SUBM
 174: int submit();
 175: int killbkg();
 176: #else
 177: #define submit      nosys
 178: #define killbkg     nosys
 179: #endif
 180: int nostk();
 181: #ifndef MENLO_JCL
 182: int killpg();
 183: #else
 184: #define killpg      nosys
 185: #undef  setpgrp
 186: int setpgrp();
 187: #endif
 188: #if !defined(NONSEPARATE) && defined(NONFP)
 189: int fetchi();
 190: #else
 191: #define fetchi      nosys
 192: #endif
 193: #ifdef  UCB_QUOTAS
 194: int quota();
 195: int qfstat();
 196: int qstat();
 197: #else
 198: #define quota       nosys
 199: #define qfstat      nosys
 200: #define qstat       nosys
 201: #endif
 202: #ifdef  UCB_LOAD
 203: int gldav();
 204: #else
 205: #define gldav       nosys
 206: #endif
 207: #ifndef NONFP
 208: int fperr();
 209: #else
 210: #define fperr       nosys
 211: #endif
 212: #ifdef  UCB_VHANGUP
 213: int vhangup();
 214: #else
 215: #define vhangup     nosys
 216: #endif
 217: #ifdef  UCB_RENICE
 218: int renice();
 219: #else
 220: #define renice      nosys
 221: #endif
 222: int ucall();
 223: #ifdef  UCB_NET
 224: int gethostid();
 225: int gethostname();
 226: int saccept();
 227: int sconnect();
 228: int select();
 229: int sethostid();
 230: int sethostname();
 231: int setregid();
 232: int setreuid();
 233: int sreceive();
 234: int ssend();
 235: int ssocket();
 236: int ssocketaddr();
 237: #else
 238: #define gethostid   nosys
 239: #define gethostname nosys
 240: #define saccept     nosys
 241: #define sconnect    nosys
 242: #define select      nosys
 243: #define sethostid   nosys
 244: #define sethostname nosys
 245: #define setregid    nosys
 246: #define setreuid    nosys
 247: #define sreceive    nosys
 248: #define ssend       nosys
 249: #define ssocket     nosys
 250: #define ssocketaddr nosys
 251: #endif
 252: #ifdef  UCB_SYMLINKS
 253: int lstat();
 254: int readlink();
 255: int symlink();
 256: #else
 257: #define lstat       nosys
 258: #define readlink    nosys
 259: #define symlink     nosys
 260: #endif
 261: 
 262: struct  sysent  syslocal[] = {
 263:     0, 0, nosys,            /*  0 = illegal local call */
 264:     3, 0, login,            /*  1 = login */
 265:     2, 0, lstat,            /*  2 = like stat, don't follow links */
 266:     1, 1, submit,           /*  3 = submit - allow after logout */
 267:     0, 0, nostk,            /*  4 = nostk */
 268:     2, 0, killbkg,          /*  5 = killbkg - kill background */
 269:     2, 0, killpg,           /*  6 = killpg - kill process group */
 270:     2, 0, renice,           /*  7 = renice - change a nice value */
 271:     1, 1, fetchi,           /*  8 = fetchi */
 272:     4, 0, ucall,            /*  9 = ucall - call sub from user */
 273:     5, 0, quota,            /* 10 = quota - set quota parameters */
 274:     2, 1, qfstat,           /* 11 = qfstat- long fstat for quotas */
 275:     2, 0, qstat,            /* 12 = qstat - long stat for quotas */
 276:     0, 0, setpgrp,          /* 13 = setpgrp - set process group */
 277:     1, 1, gldav,            /* 14 = gldav */
 278:     0, 0, fperr,            /* 15 = fperr - get FP error regs */
 279:     0, 0, vhangup,          /* 16 = vhangup - close tty files */
 280:     0, 0, nosys,            /* 17 = unused */
 281: #ifdef  UCB_NET
 282:     4, 0, select,           /* 18 = select active file descr */
 283:     2, 0, gethostname,      /* 19 = get host name */
 284:     2, 0, sethostname,      /* 20 = set host name */
 285:     4, 0, ssocket,          /* 21 = get socket fd */
 286:     2, 0, sconnect,         /* 22 = connect socket */
 287:     2, 0, saccept,          /* 23 = accept socket connection */
 288:     4, 0, ssend,            /* 24 = send datagram */
 289:     4, 0, sreceive,         /* 25 = receive datagram */
 290:     2, 0, ssocketaddr,      /* 26 = get socket address  */
 291:     2, 2, setreuid,         /* 27 = set real user id */
 292:     2, 2, setregid,         /* 28 = set real group id */
 293:     2, 1, symlink,          /* 29 = symlink */
 294:     3, 1, readlink,         /* 30 = readlink */
 295:     0, 0, gethostid,        /* 31 = gethostid */
 296:     2, 0, sethostid,        /* 32 = sethostid */
 297: #endif	UCB_NET
 298: };
 299: 
 300: int nlocalsys = sizeof(syslocal) / sizeof(syslocal[0]);

Defined variables

nlocalsys defined in line 300; never used
sysent defined in line 100; never used
syslocal defined in line 262; used 2 times
  • in line 300(2)

Defined macros

fetchi defined in line 191; used 2 times
fperr defined in line 210; used 2 times
gethostid defined in line 238; used 2 times
gethostname defined in line 239; used 2 times
gldav defined in line 205; used 2 times
killbkg defined in line 178; used 2 times
killpg defined in line 184; used 2 times
login defined in line 171; used 2 times
lstat defined in line 257; used 2 times
mpxchan defined in line 21; used 2 times
qfstat defined in line 199; used 2 times
qstat defined in line 200; used 2 times
quota defined in line 198; used 2 times
readlink defined in line 258; used 2 times
reboot defined in line 55; used 2 times
renice defined in line 220; used 2 times
rtp defined in line 92; used 2 times
saccept defined in line 240; used 2 times
sconnect defined in line 241; used 2 times
select defined in line 242; used 2 times
sethostid defined in line 243; used 2 times
sethostname defined in line 244; used 2 times
setpgrp defined in line 65; used 5 times
setregid defined in line 245; used 2 times
setreuid defined in line 246; used 2 times
sreceive defined in line 247; used 2 times
ssend defined in line 248; used 2 times
ssocket defined in line 249; used 2 times
ssocketaddr defined in line 250; used 2 times
submit defined in line 177; used 2 times
symlink defined in line 259; used 2 times
sysacct defined in line 78; used 2 times
vfork defined in line 97; used 2 times
vhangup defined in line 215; used 2 times
Last modified: 1984-02-19
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1500
Valid CSS Valid XHTML 1.0 Strict