1*6804Srrh /*
2*6804Srrh  * 	unix7sys.h	1.1	82/05/12
3*6804Srrh  */
4*6804Srrh #define	NSYSTRAPS	64
5*6804Srrh #define	NSIGS	13
6*6804Srrh #define	ILLSYS	-1
7*6804Srrh #define	NORMRET	0
8*6804Srrh #define	LONGRET	1
9*6804Srrh #define	TWORET	2
10*6804Srrh #define	FORK	2
11*6804Srrh #define	OPEN	5
12*6804Srrh #define	WAIT	7
13*6804Srrh #define	CREAT	8
14*6804Srrh #define	LINK	9
15*6804Srrh #define	UNLNK	10
16*6804Srrh #define EXEC	11
17*6804Srrh #define	CHDIR	12
18*6804Srrh #define	MKNOD	14
19*6804Srrh #define	BRK	17
20*6804Srrh #define	STAT	18
21*6804Srrh #define	SEEK	19
22*6804Srrh #define	SETUID	23
23*6804Srrh #define	GETUID	24
24*6804Srrh #define	FSTAT	28
25*6804Srrh #define	PIPE	42
26*6804Srrh #define	TIMES	43
27*6804Srrh #define	SETGID	46
28*6804Srrh #define	GETGID	47
29*6804Srrh #define	SIG	48
30*6804Srrh #define	EXECE	59
31*6804Srrh /*
32*6804Srrh  *	The numerical entries in the following table are
33*6804Srrh  *	really composed of 3 parts.
34*6804Srrh  *	The first entry in each row indicates the number
35*6804Srrh  *	of register arguments for the system call, while
36*6804Srrh  *	the 2nd position is the number of memory arguments
37*6804Srrh  *	the 3rd position is LONGRET if the return is a long (r0 and r1)
38*6804Srrh  *	or is TWORET if the return is 2 ints ala pipe
39*6804Srrh  *	otherwise it is NORMRET.
40*6804Srrh  */
41*6804Srrh int	sysargs[][3] =
42*6804Srrh {
43*6804Srrh 	0, 0, NORMRET,		/*  0 = indir */
44*6804Srrh 	1, 0, NORMRET,		/*  1 = exit */
45*6804Srrh 	0, 0, NORMRET,		/*  2 = fork */
46*6804Srrh 	1, 2, NORMRET,		/*  3 = read */
47*6804Srrh 	1, 2, NORMRET,		/*  4 = write */
48*6804Srrh 	0, 2, NORMRET,		/*  5 = open */
49*6804Srrh 	1, 0, NORMRET,		/*  6 = close */
50*6804Srrh 	0, 0, TWORET,		/*  7 = wait */
51*6804Srrh 	0, 2, NORMRET,		/*  8 = creat */
52*6804Srrh 	0, 2, NORMRET,		/*  9 = link */
53*6804Srrh 	0, 1, NORMRET,		/* 10 = unlink */
54*6804Srrh 	0, 2, NORMRET,		/* 11 = exec */
55*6804Srrh 	0, 1, NORMRET,		/* 12 = chdir */
56*6804Srrh 	0, 0, LONGRET,		/* 13 = time */
57*6804Srrh 	0, 3, NORMRET,		/* 14 = mknod */
58*6804Srrh 	0, 2, NORMRET,		/* 15 = chmod */
59*6804Srrh 	0, 3, NORMRET,		/* 16 = chown; now 3 args */
60*6804Srrh 	0, 1, NORMRET,		/* 17 = break */
61*6804Srrh 	0, 2, NORMRET,		/* 18 = stat */
62*6804Srrh 	1, 3, LONGRET,		/* 19 = seek; now 3 args */
63*6804Srrh 	0, 0, NORMRET,		/* 20 = getpid */
64*6804Srrh 	0, 3, NORMRET,		/* 21 = mount */
65*6804Srrh 	0, 1, NORMRET,		/* 22 = umount */
66*6804Srrh 	1, 0, NORMRET,		/* 23 = setuid */
67*6804Srrh 	0, 0, TWORET,		/* 24 = getuid */
68*6804Srrh 	2, 0, NORMRET,		/* 25 = stime */
69*6804Srrh 	1, 3, NORMRET,		/* 26 = ptrace */
70*6804Srrh 	1, 0, NORMRET,		/* 27 = alarm */
71*6804Srrh 	1, 1, NORMRET,		/* 28 = fstat */
72*6804Srrh 	0, 0, NORMRET,		/* 29 = pause */
73*6804Srrh 	0, 2, NORMRET,		/* 30 = utime */
74*6804Srrh 	1, 1, NORMRET,		/* 31 = stty */
75*6804Srrh 	1, 1, NORMRET,		/* 32 = gtty */
76*6804Srrh 	0, 2, NORMRET,		/* 33 = access */
77*6804Srrh 	1, 0, NORMRET,		/* 34 = nice */
78*6804Srrh 	0, 1, NORMRET,		/* 35 = ftime; formerly sleep */
79*6804Srrh 	0, 0, NORMRET,		/* 36 = sync */
80*6804Srrh 	1, 1, NORMRET,		/* 37 = kill */
81*6804Srrh 	0, 0, NORMRET,		/* 38 = switch; inoperative */
82*6804Srrh 	0, 0, NORMRET,		/* 39 = setpgrp (not in yet) */
83*6804Srrh 	ILLSYS, 0, NORMRET,	/* 40 = tell (obsolete) */
84*6804Srrh 	2, 0, NORMRET,		/* 41 = dup */
85*6804Srrh 	0, 0, TWORET,		/* 42 = pipe */
86*6804Srrh 	0, 1, NORMRET,		/* 43 = times */
87*6804Srrh 	0, 4, NORMRET,		/* 44 = prof */
88*6804Srrh 	ILLSYS, 0, NORMRET,	/* 45 = unused */
89*6804Srrh 	1, 0, NORMRET,		/* 46 = setgid */
90*6804Srrh 	0, 0, TWORET,		/* 47 = getgid */
91*6804Srrh 	0, 2, NORMRET,		/* 48 = sig */
92*6804Srrh 	ILLSYS, 0, NORMRET,	/* 49 = reserved for USG */
93*6804Srrh 	ILLSYS, 0, NORMRET,	/* 50 = reserved for USG */
94*6804Srrh 	0, 1, NORMRET,		/* 51 = turn acct off/on */
95*6804Srrh 	0, 3, NORMRET,		/* 52 = set user physical addresses */
96*6804Srrh 	0, 1, NORMRET,		/* 53 = lock user in core */
97*6804Srrh 	0, 3, NORMRET,		/* 54 = ioctl */
98*6804Srrh 	ILLSYS, 0, NORMRET,	/* 55 = readwrite (in abeyance) */
99*6804Srrh 	0, 4, NORMRET,		/* 56 = creat mpx comm channel */
100*6804Srrh 	ILLSYS, 0, NORMRET,	/* 57 = reserved for USG */
101*6804Srrh 	ILLSYS, 0, NORMRET,	/* 58 = reserved for USG */
102*6804Srrh 	0, 3, NORMRET,		/* 59 = exece */
103*6804Srrh 	0, 1, NORMRET,		/* 60 = umask */
104*6804Srrh 	0, 1, NORMRET,		/* 61 = chroot */
105*6804Srrh 	ILLSYS, 0, NORMRET,	/* 62 = x */
106*6804Srrh 	ILLSYS, 0, NORMRET	/* 63 = used internally */
107*6804Srrh };
108