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