152134Smckusick /*
252134Smckusick  * Copyright (c) 1988 University of Utah.
3*63229Sbostic  * Copyright (c) 1992, 1993
4*63229Sbostic  *	The Regents of the University of California.  All rights reserved.
552134Smckusick  *
652134Smckusick  * This code is derived from software contributed to Berkeley by
752134Smckusick  * the Systems Programming Group of the University of Utah Computer
852134Smckusick  * Science Department and Ralph Campbell.
952134Smckusick  *
1052134Smckusick  * %sccs.include.redist.c%
1152134Smckusick  *
1252134Smckusick  * from: Utah $Hdr: hpux_sysent.c 1.1 90/07/09$
1352134Smckusick  *
14*63229Sbostic  *	@(#)ultrix_sysent.c	8.1 (Berkeley) 06/10/93
1552134Smckusick  */
1652134Smckusick 
1752134Smckusick /*
1852134Smckusick  * System call switch table.
1952134Smckusick  */
2052134Smckusick 
2156527Sbostic #include <sys/param.h>
2256527Sbostic #include <sys/systm.h>
2352134Smckusick 
2452134Smckusick int	nosys(),notimp();
2552134Smckusick 
2652134Smckusick int	rexit();
2752134Smckusick int	fork();
2852134Smckusick int	read();
2952134Smckusick int	write();
3052134Smckusick int	open();
3152134Smckusick int	close();
3252134Smckusick int	ocreat();
3352134Smckusick int	link();
3452134Smckusick int	unlink();
3552134Smckusick int	chdir();
3652134Smckusick int	mknod();
3752134Smckusick int	chmod();
3852134Smckusick int	chown();
3952134Smckusick int	obreak();
4052134Smckusick int	lseek();
4152134Smckusick int	getpid();
4252134Smckusick int	getuid();
4352134Smckusick int	ptrace();
4452134Smckusick int	saccess();
4552134Smckusick int	sync();
4652134Smckusick int	kill();
4754143Sralph int	ostat();
4854143Sralph int	olstat();
4952134Smckusick int	dup();
5052134Smckusick int	pipe();
5152134Smckusick int	profil();
5252134Smckusick int	ultrixtobsd();
5352134Smckusick int	getgid();
5452134Smckusick int	ioctl();
5552134Smckusick int	reboot();
5652134Smckusick int	symlink();
5752134Smckusick int	readlink();
5852134Smckusick int	execve();
5952134Smckusick int	umask();
6052134Smckusick int	chroot();
6154143Sralph int	ofstat();
6260024Sralph int	ogetpagesize();
6352134Smckusick int	vfork();
6452134Smckusick int	sbrk();
6552134Smckusick int	sstk();
6652134Smckusick int	getgroups();
6752134Smckusick int	setgroups();
6852134Smckusick int	ultrixgetpgrp();
6952134Smckusick int	ultrixsetpgrp();
7052134Smckusick int	setitimer();
7152134Smckusick int	ultrixwait3();
7252134Smckusick int	getitimer();
7360024Sralph int	ogethostname();
7460024Sralph int	osethostname();
7552134Smckusick int	getdtablesize();
7652134Smckusick int	dup2();
7752134Smckusick int	fcntl();
7852134Smckusick int	select();
7952134Smckusick int	fsync();
8052134Smckusick int	setpriority();
8152134Smckusick int	socket();
8252134Smckusick int	connect();
8352134Smckusick int	oaccept();
8452134Smckusick int	getpriority();
8552134Smckusick int	osend();
8652134Smckusick int	orecv();
8752135Smckusick int	sigreturn();
8852134Smckusick int	bind();
8952134Smckusick int	setsockopt();
9052134Smckusick int	listen();
9152134Smckusick int	ultrixsigvec();
9252134Smckusick int	osigblock();
9352134Smckusick int	osigsetmask();
9452134Smckusick int	sigsuspend();
9554143Sralph int	osigstack();
9652134Smckusick int	orecvmsg();
9752134Smckusick int	osendmsg();
9852134Smckusick int	gettimeofday();
9952134Smckusick int	getrusage();
10052134Smckusick int	getsockopt();
10152134Smckusick int	readv();
10252134Smckusick int	writev();
10352134Smckusick int	settimeofday();
10452134Smckusick int	fchown();
10552134Smckusick int	fchmod();
10652134Smckusick int	orecvfrom();
10752134Smckusick int	osetreuid();
10852134Smckusick int	osetregid();
10952134Smckusick int	rename();
11052134Smckusick int	truncate();
11152134Smckusick int	ftruncate();
11252134Smckusick int	flock();
11352134Smckusick int	sendto();
11452134Smckusick int	shutdown();
11552134Smckusick int	socketpair();
11652134Smckusick int	mkdir();
11752134Smckusick int	rmdir();
11852134Smckusick int	utimes();
11952134Smckusick int	adjtime();
12052134Smckusick int	ogetpeername();
12160024Sralph int	ogethostid();
12260024Sralph int	osethostid();
12352134Smckusick int	getrlimit();
12452134Smckusick int	setrlimit();
12552134Smckusick int	okillpg();
12652134Smckusick int	ogetsockname();
12756235Sralph int	ogetdirentries();
12856235Sralph int	ultrixgetdomainname();
12956235Sralph int	ultrixsetdomainname();
13052134Smckusick int	ultrixgetsysinfo();
13152134Smckusick 
13252134Smckusick /*
13352134Smckusick  * Reserved/unimplemented system calls in the range 0-150 inclusive
13452134Smckusick  * are reserved for use in future Berkeley releases.
13552134Smckusick  * Additional system calls implemented in vendor and other
13652134Smckusick  * redistributions should be placed in the reserved range at the end
13752134Smckusick  * of the current calls.
13852134Smckusick  */
13952134Smckusick struct sysent ultrixsysent[] = {
14052134Smckusick 	0, nosys,			/*   0 = out of range */
14152134Smckusick 	1, rexit,			/*   1 = exit */
14252134Smckusick 	0, fork,			/*   2 = fork */
14352134Smckusick 	3, read,			/*   3 = read */
14452134Smckusick 	3, write,			/*   4 = write */
14552134Smckusick 	3, open,			/*   5 = open */
14652134Smckusick 	1, close,			/*   6 = close */
14752134Smckusick 	0, nosys,			/*   7 = old wait */
14852134Smckusick 	2, ocreat,			/*   8 = creat */
14952134Smckusick 	2, link,			/*   9 = link */
15052134Smckusick 	1, unlink,			/*  10 = unlink */
15152134Smckusick 	0, nosys,			/*  11 = old execv */
15252134Smckusick 	1, chdir,			/*  12 = chdir */
15352134Smckusick 	0, nosys,			/*  13 = old time */
15452134Smckusick 	3, mknod,			/*  14 = mknod */
15552134Smckusick 	2, chmod,			/*  15 = chmod */
15652134Smckusick 	3, chown,			/*  16 = chown */
15752134Smckusick 	1, obreak,			/*  17 = old break */
15852134Smckusick 	0, nosys,			/*  18 = old stat */
15952134Smckusick 	3, lseek,			/*  19 = lseek */
16052134Smckusick 	0, getpid,			/*  20 = getpid */
16152134Smckusick 	3, notimp,			/*  21 = mount */
16252134Smckusick 	1, notimp,			/*  22 = umount */
16352134Smckusick 	0, nosys,			/*  23 = old setuid */
16452134Smckusick 	0, getuid,			/*  24 = getuid */
16552134Smckusick 	0, nosys,			/*  25 = old stime */
16652134Smckusick 	4, ptrace,			/*  26 = ptrace */
16752134Smckusick 	0, nosys,			/*  27 = old alarm */
16852134Smckusick 	0, nosys,			/*  28 = old fstat */
16952134Smckusick 	0, nosys,			/*  29 = old pause */
17052134Smckusick 	0, nosys,			/*  30 = old utime */
17152134Smckusick 	0, nosys,			/*  31 = old stty */
17252134Smckusick 	0, nosys,			/*  32 = old gtty */
17352134Smckusick 	2, saccess,			/*  33 = access */
17452134Smckusick 	0, nosys,			/*  34 = old nice */
17552134Smckusick 	0, nosys,			/*  35 = old ftime */
17652134Smckusick 	0, sync,			/*  36 = sync */
17752134Smckusick 	2, kill,			/*  37 = kill */
17854143Sralph 	2, ostat,			/*  38 = stat */
17952134Smckusick 	0, nosys,			/*  39 = old setpgrp */
18054143Sralph 	2, olstat,			/*  40 = lstat */
18152134Smckusick 	1, dup,				/*  41 = dup */
18252134Smckusick 	1, pipe,			/*  42 = pipe */
18352134Smckusick 	0, nosys,			/*  43 = old times */
18452134Smckusick 	4, profil,			/*  44 = profil */
18552134Smckusick 	0, ultrixtobsd,			/*  45 = unused */
18652134Smckusick 	0, nosys,			/*  46 = old setgid */
18752134Smckusick 	0, getgid,			/*  47 = getgid */
18852134Smckusick 	0, nosys,			/*  48 = old sigsys */
18952134Smckusick 	0, nosys,			/*  49 = reserved for USG */
19052134Smckusick 	0, nosys,			/*  50 = reserved for USG */
19152134Smckusick 	1, notimp,			/*  51 = acct */
19252134Smckusick 	0, nosys,			/*  52 = old set phys addr */
19352134Smckusick 	0, nosys,			/*  53 = old lock in core */
19452134Smckusick 	3, ioctl,			/*  54 = ioctl */
19552134Smckusick 	1, reboot,			/*  55 = reboot */
19652134Smckusick 	0, nosys,			/*  56 = old mpxchan */
19752134Smckusick 	2, symlink,			/*  57 = symlink */
19852134Smckusick 	3, readlink,			/*  58 = readlink */
19952134Smckusick 	3, execve,			/*  59 = execve */
20052134Smckusick 	1, umask,			/*  60 = umask */
20152134Smckusick 	1, chroot,			/*  61 = chroot */
20254143Sralph 	2, ofstat,			/*  62 = fstat */
20352134Smckusick 	0, nosys,			/*  63 = unused */
20460024Sralph 	0, ogetpagesize,		/*  64 = getpagesize */
20552134Smckusick 	0, notimp,			/*  65 = mremap */
20652134Smckusick 	0, vfork,			/*  66 = vfork */
20752134Smckusick 	0, nosys,			/*  67 = old vread */
20852134Smckusick 	0, nosys,			/*  68 = old vwrite */
20952134Smckusick 	1, sbrk,			/*  69 = sbrk */
21052134Smckusick 	1, sstk,			/*  70 = sstk */
21152134Smckusick 	0, nosys,			/*  71 = mmap */
21252134Smckusick 	0, nosys,			/*  72 = old vadvise */
21352134Smckusick 	0, notimp,			/*  73 = munmap */
21452134Smckusick 	0, notimp,			/*  74 = mprotect */
21552134Smckusick 	0, notimp,			/*  75 = madvise */
21652134Smckusick 	0, notimp,			/*  76 = vhangup */
21752134Smckusick 	0, nosys,			/*  77 = old vlimit */
21852134Smckusick 	0, nosys,			/*  78 = mincore */
21952134Smckusick 	2, getgroups,			/*  79 = getgroups */
22052134Smckusick 	2, setgroups,			/*  80 = setgroups */
22152134Smckusick 	1, ultrixgetpgrp,		/*  81 = getpgrp */
22252134Smckusick 	2, ultrixsetpgrp,		/*  82 = setpgrp */
22352134Smckusick 	3, setitimer,			/*  83 = setitimer */
22452134Smckusick 	3, ultrixwait3,			/*  84 = wait3 */
22552134Smckusick 	1, notimp,			/*  85 = swapon */
22652134Smckusick 	2, getitimer,			/*  86 = getitimer */
22760024Sralph 	2, ogethostname,		/*  87 = gethostname */
22860024Sralph 	2, osethostname,		/*  88 = sethostname */
22952134Smckusick 	0, getdtablesize,		/*  89 = getdtablesize */
23052134Smckusick 	2, dup2,			/*  90 = dup2 */
23152134Smckusick 	0, notimp,			/*  91 = getdopt */
23252134Smckusick 	3, fcntl,			/*  92 = fcntl */
23352134Smckusick 	5, select,			/*  93 = select */
23452134Smckusick 	0, notimp,			/*  94 = setdopt */
23552134Smckusick 	1, fsync,			/*  95 = fsync */
23652134Smckusick 	3, setpriority,			/*  96 = setpriority */
23752134Smckusick 	3, socket,			/*  97 = socket */
23852134Smckusick 	3, connect,			/*  98 = connect */
23952134Smckusick 	3, oaccept,			/*  99 = accept */
24052134Smckusick 	2, getpriority,			/* 100 = getpriority */
24152134Smckusick 	4, osend,			/* 101 = send */
24252134Smckusick 	4, orecv,			/* 102 = recv */
24352135Smckusick 	1, sigreturn,			/* 103 = sigreturn */
24452134Smckusick 	3, bind,			/* 104 = bind */
24552134Smckusick 	5, setsockopt,			/* 105 = setsockopt */
24652134Smckusick 	2, listen,			/* 106 = listen */
24752134Smckusick 	0, nosys,			/* 107 = old vtimes */
24852134Smckusick 	4, ultrixsigvec,		/* 108 = sigvec */
24952134Smckusick 	1, osigblock,			/* 109 = sigblock */
25052134Smckusick 	1, osigsetmask,			/* 110 = sigsetmask */
25152134Smckusick 	1, sigsuspend,			/* 111 = sigpause */
25254143Sralph 	2, osigstack,			/* 112 = sigstack */
25352134Smckusick 	3, orecvmsg,			/* 113 = recvmsg */
25452134Smckusick 	3, osendmsg,			/* 114 = sendmsg */
25552134Smckusick 	0, nosys,			/* 115 = old vtrace */
25652134Smckusick 	2, gettimeofday,		/* 116 = gettimeofday */
25752134Smckusick 	2, getrusage,			/* 117 = getrusage */
25852134Smckusick 	5, getsockopt,			/* 118 = getsockopt */
25952134Smckusick 	0, nosys,			/* 119 = old resuba */
26052134Smckusick 	3, readv,			/* 120 = readv */
26152134Smckusick 	3, writev,			/* 121 = writev */
26252134Smckusick 	2, settimeofday,		/* 122 = settimeofday */
26352134Smckusick 	3, fchown,			/* 123 = fchown */
26452134Smckusick 	2, fchmod,			/* 124 = fchmod */
26552134Smckusick 	6, orecvfrom,			/* 125 = recvfrom */
26652134Smckusick 	2, osetreuid,			/* 126 = setreuid */
26752134Smckusick 	2, osetregid,			/* 127 = setregid */
26852134Smckusick 	2, rename,			/* 128 = rename */
26952134Smckusick 	2, truncate,			/* 129 = truncate */
27052134Smckusick 	2, ftruncate,			/* 130 = ftruncate */
27152134Smckusick 	2, flock,			/* 131 = flock */
27252134Smckusick 	0, nosys,			/* 132 = nosys */
27352134Smckusick 	6, sendto,			/* 133 = sendto */
27452134Smckusick 	2, shutdown,			/* 134 = shutdown */
27552134Smckusick 	5, socketpair,			/* 135 = socketpair */
27652134Smckusick 	2, mkdir,			/* 136 = mkdir */
27752134Smckusick 	1, rmdir,			/* 137 = rmdir */
27852134Smckusick 	2, utimes,			/* 138 = utimes */
27952135Smckusick 	1, sigreturn,			/* 139 = internal (4.2 sigreturn) */
28052134Smckusick 	2, adjtime,			/* 140 = adjtime */
28152134Smckusick 	3, ogetpeername,		/* 141 = getpeername */
28260024Sralph 	2, ogethostid,			/* 142 = gethostid */
28360024Sralph 	2, osethostid,			/* 143 = sethostid */
28452134Smckusick 	2, getrlimit,			/* 144 = getrlimit */
28552134Smckusick 	2, setrlimit,			/* 145 = setrlimit */
28652134Smckusick 	2, okillpg,			/* 146 = killpg */
28752134Smckusick 	0, nosys,			/* 147 = nosys */
28852134Smckusick 	0, notimp,			/* 148 = setquota */
28952134Smckusick 	0, notimp,			/* 149 = quota */
29060024Sralph 	3, ogetsockname,		/* 150 = getsockname */
29152134Smckusick 	/*
29252134Smckusick 	 * ULTRIX specific syscalls
29352134Smckusick 	 */
29452134Smckusick 	0, notimp,			/* 151 = sysmips */
29552134Smckusick 	0, notimp,			/* 152 = cacheflush */
29652134Smckusick 	0, notimp,			/* 153 = cachectl */
29752134Smckusick 	0, notimp,			/* 154 = debug */
29852134Smckusick 	0, nosys,			/* 155 = nosys */
29952134Smckusick 	0, nosys,			/* 156 = nosys */
30052134Smckusick 	0, nosys,			/* 157 = nosys */
30152134Smckusick 	0, notimp,			/* 158 = nfs_svc */
30256235Sralph 	4, ogetdirentries,		/* 159 = getdirentries */
30352134Smckusick 	0, nosys,			/* 160 = nosys */
30452134Smckusick 	0, nosys,			/* 161 = nosys */
30552134Smckusick 	0, nosys,			/* 162 = nosys */
30652134Smckusick 	0, notimp,			/* 163 = nfs_biod */
30752134Smckusick 	0, notimp,			/* 164 = nfs_getfh */
30856235Sralph 	0, ultrixgetdomainname,		/* 165 = getdomainname */
30956235Sralph 	0, ultrixsetdomainname,		/* 166 = setdomainname */
31052134Smckusick 	0, nosys,			/* 167 = nosys */
31152134Smckusick 	0, nosys,			/* 168 = nosys */
31252134Smckusick 	0, notimp,			/* 169 = exportfs */
31352134Smckusick 	0, nosys,			/* 170 = nosys */
31452134Smckusick 	0, nosys,			/* 171 = nosys */
31552134Smckusick 	0, notimp,			/* 172 = msgctl */
31652134Smckusick 	0, notimp,			/* 173 = msgget */
31752134Smckusick 	0, notimp,			/* 174 = msgrcv */
31852134Smckusick 	0, notimp,			/* 175 = msgsnd */
31952134Smckusick 	0, notimp,			/* 176 = semctl */
32052134Smckusick 	0, notimp,			/* 177 = semget */
32152134Smckusick 	0, notimp,			/* 178 = semop */
32252134Smckusick 	0, notimp,			/* 179 = uname */
32352134Smckusick 	0, notimp,			/* 180 = shmsys */
32452134Smckusick 	0, notimp,			/* 181 = plock */
32552134Smckusick 	0, notimp,			/* 182 = lockf */
32652134Smckusick 	0, notimp,			/* 183 = ustat */
32752134Smckusick 	0, notimp,			/* 184 = getmnt */
32852134Smckusick 	0, notimp,			/* 185 = mount */
32952134Smckusick 	0, notimp,			/* 186 = umount */
33052134Smckusick 	0, notimp,			/* 187 = sigpending */
33152134Smckusick 	0, nosys,			/* 188 = nosys */
33252134Smckusick 	0, nosys,			/* 189 = nosys */
33352134Smckusick 	0, nosys,			/* 190 = nosys */
33452134Smckusick 	0, nosys,			/* 191 = nosys */
33552134Smckusick 	0, nosys,			/* 192 = nosys */
33652134Smckusick 	0, nosys,			/* 193 = nosys */
33752134Smckusick 	0, nosys,			/* 194 = nosys */
33852134Smckusick 	0, nosys,			/* 195 = nosys */
33952134Smckusick 	0, nosys,			/* 196 = nosys */
34052134Smckusick 	0, nosys,			/* 197 = nosys */
34152134Smckusick 	0, nosys,			/* 198 = nosys */
34252134Smckusick 	0, nosys,			/* 199 = nosys */
34352134Smckusick 	0, nosys,			/* 200 = nosys */
34452134Smckusick 	0, nosys,			/* 201 = nosys */
34552134Smckusick 	0, nosys,			/* 202 = nosys */
34652134Smckusick 	0, nosys,			/* 203 = nosys */
34752134Smckusick 	0, nosys,			/* 204 = nosys */
34852134Smckusick 	0, nosys,			/* 205 = nosys */
34952134Smckusick 	0, nosys,			/* 206 = nosys */
35052134Smckusick 	0, nosys,			/* 207 = nosys */
35152134Smckusick 	0, nosys,			/* 208 = nosys */
35252134Smckusick 	0, nosys,			/* 209 = nosys */
35352134Smckusick 	0, nosys,			/* 210 = nosys */
35452134Smckusick 	0, nosys,			/* 211 = nosys */
35552134Smckusick 	0, nosys,			/* 212 = nosys */
35652134Smckusick 	0, nosys,			/* 213 = nosys */
35752134Smckusick 	0, nosys,			/* 214 = nosys */
35852134Smckusick 	0, nosys,			/* 215 = nosys */
35952134Smckusick 	0, nosys,			/* 216 = nosys */
36052134Smckusick 	0, nosys,			/* 217 = nosys */
36152134Smckusick 	0, nosys,			/* 218 = nosys */
36252134Smckusick 	0, nosys,			/* 219 = nosys */
36352134Smckusick 	0, nosys,			/* 220 = nosys */
36452134Smckusick 	0, nosys,			/* 221 = nosys */
36552134Smckusick 	0, nosys,			/* 222 = nosys */
36652134Smckusick 	0, nosys,			/* 223 = nosys */
36752134Smckusick 	0, nosys,			/* 224 = nosys */
36852134Smckusick 	0, nosys,			/* 225 = nosys */
36952134Smckusick 	0, nosys,			/* 226 = nosys */
37052134Smckusick 	0, nosys,			/* 227 = nosys */
37152134Smckusick 	0, nosys,			/* 228 = nosys */
37252134Smckusick 	0, nosys,			/* 229 = nosys */
37352134Smckusick 	0, nosys,			/* 230 = nosys */
37452134Smckusick 	0, nosys,			/* 231 = nosys */
37552134Smckusick 	0, nosys,			/* 232 = nosys */
37652134Smckusick 	0, notimp,			/* 233 = nosys */
37752134Smckusick 	0, notimp,			/* 234 = nosys */
37852134Smckusick 	0, notimp,			/* 235 = nosys */
37952134Smckusick 	0, nosys,			/* 236 = nosys */
38052134Smckusick 	0, notimp,			/* 237 = nosys */
38152134Smckusick 	0, notimp,			/* 238 = nosys */
38252134Smckusick 	0, nosys,			/* 239 = nosys */
38352134Smckusick 	0, nosys,			/* 240 = nosys */
38452134Smckusick 	0, nosys,			/* 241 = nosys */
38552134Smckusick 	0, nosys,			/* 242 = nosys */
38652134Smckusick 	0, nosys,			/* 243 = nosys */
38752134Smckusick 	0, nosys,			/* 244 = nosys */
38852134Smckusick 	0, nosys,			/* 245 = nosys */
38952134Smckusick 	0, nosys,			/* 246 = nosys */
39052134Smckusick 	0, nosys,			/* 247 = nosys */
39152134Smckusick 	0, nosys,			/* 248 = nosys */
39252134Smckusick 	0, nosys,			/* 249 = nosys */
39352134Smckusick 	0, nosys,			/* 250 = nosys */
39452134Smckusick 	0, nosys,			/* 251 = nosys */
39552134Smckusick 	0, nosys,			/* 252 = nosys */
39652134Smckusick 	0, nosys,			/* 253 = nosys */
39752134Smckusick 	0, nosys,			/* 254 = nosys */
39852134Smckusick 	0, nosys,			/* 255 = nosys */
39952134Smckusick 	0, ultrixgetsysinfo,		/* 256 = getsysinfo */
40052134Smckusick 	0, notimp,			/* 257 = setsysinfo */
40152134Smckusick };
40252134Smckusick int	ultrixnsysent = sizeof(ultrixsysent) / sizeof (ultrixsysent[0]);
403