1/* $Id: systbl.S,v 1.11 2000/03/13 21:57:35 davem Exp $
2 * systbl.S: System call entry point table for Solaris compatibility.
3 *
4 * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
5 * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
6 */
7
8#include <asm/unistd.h>
9
10/* Fall back to sys_call_table32 entry */
11#define CHAIN(name)	__NR_##name
12
13/* Pass pt_regs pointer as first argument */
14#define REGS(name)	name+1
15
16/* Hack till all be implemented */
17#define solaris_getpmsg		solaris_unimplemented
18#define solaris_hrtsys		solaris_unimplemented
19#define solaris_msgsys		solaris_unimplemented
20#define solaris_putpmsg		solaris_unimplemented
21#define solaris_semsys		solaris_unimplemented
22
23        .data
24        .align  1024
25	.globl		solaris_sys_table
26solaris_sys_table:
27	.word solaris_unimplemented	/* nosys		0	*/
28	.word CHAIN(exit)		/* exit		d	1	*/
29	.word CHAIN(fork)		/* fork			2	*/
30	.word CHAIN(read)		/* read		dpd	3	*/
31	.word CHAIN(write)		/* write	dpd	4	*/
32	.word solaris_open		/* open		soo	5	*/
33	.word CHAIN(close)		/* close	d	6	*/
34	.word solaris_wait		/* wait		xxx	7	*/
35	.word CHAIN(creat)		/* creat	so	8	*/
36	.word CHAIN(link)		/* link		ss	9	*/
37	.word CHAIN(unlink)		/* unlink	s	10	*/
38	.word solaris_unimplemented	/* exec		sxx	11	*/
39	.word CHAIN(chdir)		/* chdir	s	12	*/
40	.word CHAIN(time)		/* time			13	*/
41	.word solaris_mknod		/* mknod	sox	14	*/
42	.word CHAIN(chmod)		/* chmod	so	15	*/
43	.word CHAIN(chown)		/* chown	sdd	16	*/
44	.word solaris_brk		/* brk/break	x	17	*/
45	.word solaris_stat		/* stat		sp	18	*/
46	.word CHAIN(lseek)		/* seek/lseek	ddd	19	*/
47	.word solaris_getpid		/* getpid		20	*/
48	.word solaris_unimplemented	/* mount		21	*/
49	.word CHAIN(umount)		/* umount	s	22	*/
50	.word CHAIN(setuid)		/* setuid	d	23	*/
51	.word solaris_getuid		/* getuid		24	*/
52	.word CHAIN(stime)		/* stime	d	25	*/
53#if 0
54	.word solaris_ptrace		/* ptrace	xdxx	26	*/
55#else
56	.word CHAIN(ptrace)		/* ptrace	xdxx	26	*/
57#endif
58	.word CHAIN(alarm)		/* alarm	d	27	*/
59	.word solaris_fstat		/* fstat	dp	28	*/
60	.word CHAIN(pause)		/* pause		29	*/
61	.word CHAIN(utime)		/* utime	xx	30	*/
62	.word solaris_unimplemented	/* stty			31	*/
63	.word solaris_unimplemented	/* gtty			32	*/
64	.word solaris_access		/* access	so	33	*/
65	.word CHAIN(nice)		/* nice		d	34	*/
66	.word solaris_statfs		/* statfs	spdd	35	*/
67	.word CHAIN(sync)		/* sync			36	*/
68	.word solaris_kill		/* kill		dd	37	*/
69	.word solaris_fstatfs		/* fstatfs	dpdd	38	*/
70	.word solaris_procids		/* pgrpsys	ddd	39	*/
71	.word solaris_unimplemented	/* xenix		40	*/
72	.word CHAIN(dup)		/* dup		d	41	*/
73	.word CHAIN(pipe)		/* pipe			42	*/
74	.word CHAIN(times)		/* times	p	43	*/
75	.word 44 /*CHAIN(profil)*/	/* prof		xxxx	44	*/
76	.word solaris_unimplemented	/* lock/plock		45	*/
77	.word CHAIN(setgid)		/* setgid	d	46	*/
78	.word solaris_getgid		/* getgid		47	*/
79	.word solaris_sigfunc		/* sigfunc	xx	48	*/
80	.word REGS(solaris_msgsys)	/* msgsys	dxddd	49	*/
81	.word solaris_unimplemented	/* syssun/3b		50	*/
82	.word CHAIN(acct)		/* acct/sysacct	x	51	*/
83	.word solaris_shmsys		/* shmsys	ddxo	52	*/
84	.word REGS(solaris_semsys)	/* semsys	dddx	53	*/
85	.word solaris_ioctl		/* ioctl	dxx	54	*/
86	.word solaris_unimplemented	/* uadmin	xxx	55	*/
87	.word solaris_unimplemented	/* reserved:exch	56	*/
88	.word solaris_utssys		/* utssys	x	57	*/
89	.word CHAIN(fsync)		/* fsync	d	58	*/
90	.word CHAIN(execve)		/* execv	spp	59	*/
91	.word CHAIN(umask)		/* umask	o	60	*/
92	.word CHAIN(chroot)		/* chroot	s	61	*/
93	.word solaris_fcntl		/* fcntl	dxx	62	*/
94	.word solaris_ulimit		/* ulimit	xx	63	*/
95	.word solaris_unimplemented	/* ?			64	*/
96	.word solaris_unimplemented	/* ?			65	*/
97	.word solaris_unimplemented	/* ?			66	*/
98	.word solaris_unimplemented	/* ?			67	*/
99	.word solaris_unimplemented	/* ?			68	*/
100	.word solaris_unimplemented	/* ?			69	*/
101	.word solaris_unimplemented	/* advfs		70	*/
102	.word solaris_unimplemented	/* unadvfs		71	*/
103	.word solaris_unimplemented	/* rmount		72	*/
104	.word solaris_unimplemented	/* rumount		73	*/
105	.word solaris_unimplemented	/* rfstart		74	*/
106	.word solaris_unimplemented	/* ?			75	*/
107	.word solaris_unimplemented	/* rdebug		76	*/
108	.word solaris_unimplemented	/* rfstop		77	*/
109	.word solaris_unimplemented	/* rfsys		78	*/
110	.word CHAIN(rmdir)		/* rmdir	s	79	*/
111	.word CHAIN(mkdir)		/* mkdir	so	80	*/
112	.word CHAIN(getdents)		/* getdents	dxd	81	*/
113	.word solaris_unimplemented	/* libattach		82	*/
114	.word solaris_unimplemented	/* libdetach		83	*/
115	.word CHAIN(sysfs)		/* sysfs	dxx	84	*/
116	.word solaris_getmsg		/* getmsg	dxxx	85	*/
117	.word solaris_putmsg		/* putmsg	dxxd	86	*/
118	.word CHAIN(poll)		/* poll		xdd	87	*/
119	.word solaris_lstat		/* lstat	sp	88	*/
120	.word CHAIN(symlink)		/* symlink	ss	89	*/
121	.word CHAIN(readlink)		/* readlink	spd	90	*/
122	.word CHAIN(setgroups)		/* setgroups	dp	91	*/
123	.word CHAIN(getgroups)		/* getgroups	dp	92	*/
124	.word CHAIN(fchmod)		/* fchmod	do	93	*/
125	.word CHAIN(fchown)		/* fchown	ddd	94	*/
126	.word solaris_sigprocmask	/* sigprocmask	dxx	95	*/
127	.word solaris_sigsuspend	/* sigsuspend	x	96	*/
128	.word solaris_sigaltstack	/* sigaltstack	xx	97	*/
129	.word solaris_sigaction		/* sigaction	dxx	98	*/
130	.word solaris_sigpending	/* sigpending	dd	99	*/
131	.word REGS(solaris_context)	/* context		100	*/
132	.word solaris_unimplemented	/* evsys		101	*/
133	.word solaris_unimplemented	/* evtrapret		102	*/
134	.word solaris_statvfs		/* statvfs	sp	103	*/
135	.word solaris_fstatvfs		/* fstatvfs	dp	104	*/
136	.word solaris_unimplemented	/* unknown		105	*/
137	.word solaris_unimplemented	/* nfssys		106	*/
138	.word solaris_waitid		/* waitid	ddxd	107	*/
139	.word solaris_unimplemented	/* sigsendsys	ddd	108	*/
140	.word REGS(solaris_hrtsys)	/* hrtsys	xxx	109	*/
141	.word solaris_unimplemented	/* acancel	dxd	110	*/
142	.word solaris_unimplemented	/* async		111	*/
143	.word solaris_unimplemented	/* priocntlsys		112	*/
144	.word solaris_pathconf		/* pathconf	sd	113	*/
145	.word CHAIN(mincore)		/* mincore	d	114	*/
146	.word solaris_mmap		/* mmap		xxxxdx	115	*/
147	.word CHAIN(mprotect)		/* mprotect	xdx	116	*/
148	.word CHAIN(munmap)		/* munmap	xd	117	*/
149	.word solaris_fpathconf		/* fpathconf	dd	118	*/
150	.word CHAIN(fork)		/* fork			119	*/
151	.word solaris_unimplemented	/* fchdir	d	120	*/
152	.word CHAIN(readv)		/* readv	dxd	121	*/
153	.word CHAIN(writev)		/* writev	dxd	122	*/
154	.word solaris_xstat		/* xstat	dsx	123	*/
155	.word solaris_lxstat		/* lxstat	dsx	124	*/
156	.word solaris_fxstat		/* fxstat	ddx	125	*/
157	.word solaris_xmknod		/* xmknod	dsox	126	*/
158	.word solaris_unimplemented	/* syslocal	d	127	*/
159	.word solaris_setrlimit		/* setrlimit	dp	128	*/
160	.word solaris_getrlimit		/* getrlimit	dp	129	*/
161	.word CHAIN(chown)		/* lchown	sdd	130	*/
162	.word solaris_unimplemented	/* memcntl		131	*/
163	.word solaris_getpmsg		/* getpmsg	dxxxx	132	*/
164	.word solaris_putpmsg		/* putpmsg	dxxdd	133	*/
165	.word CHAIN(rename)		/* rename	ss	134	*/
166	.word solaris_utsname		/* uname	x	135	*/
167	.word solaris_unimplemented	/* setegid		136	*/
168	.word solaris_sysconf		/* sysconfig	d	137	*/
169	.word solaris_unimplemented	/* adjtime		138	*/
170	.word solaris_sysinfo		/* systeminfo	dsd	139	*/
171	.word solaris_unimplemented	/* ?			140	*/
172	.word solaris_unimplemented	/* seteuid		141	*/
173	.word solaris_unimplemented	/* ?			142	*/
174	.word solaris_unimplemented	/* ?			143	*/
175	.word solaris_unimplemented	/* secsys	dx	144	*/
176	.word solaris_unimplemented	/* filepriv	sdxd	145	*/
177	.word solaris_unimplemented	/* procpriv	dxd	146	*/
178	.word solaris_unimplemented	/* devstat	sdx	147	*/
179	.word solaris_unimplemented	/* aclipc	ddddx	148	*/
180	.word solaris_unimplemented	/* fdevstat	ddx	149	*/
181	.word solaris_unimplemented	/* flvlfile	ddx	150	*/
182	.word solaris_unimplemented	/* lvlfile	sdx	151	*/
183	.word solaris_unimplemented	/* ?			152	*/
184	.word solaris_unimplemented	/* fchroot	d	153	*/
185	.word solaris_unimplemented	/* lvlproc	dx	154	*/
186	.word solaris_unimplemented	/* ?			155	*/
187	.word solaris_gettimeofday	/* gettimeofday	x	156	*/
188	.word CHAIN(getitimer)		/* getitimer	dx	157	*/
189	.word CHAIN(setitimer)		/* setitimer	dxx	158	*/
190	.word solaris_unimplemented	/* lwp-xxx		159	*/
191	.word solaris_unimplemented	/* lwp-xxx		160	*/
192	.word solaris_unimplemented	/* lwp-xxx		161	*/
193	.word solaris_unimplemented	/* lwp-xxx		162	*/
194	.word solaris_unimplemented	/* lwp-xxx		163	*/
195	.word solaris_unimplemented	/* lwp-xxx		164	*/
196	.word solaris_unimplemented	/* lwp-xxx		165	*/
197	.word solaris_unimplemented	/* lwp-xxx		166	*/
198	.word solaris_unimplemented	/* lwp-xxx		167	*/
199	.word solaris_unimplemented	/* lwp-xxx		168	*/
200	.word solaris_unimplemented	/* lwp-xxx		169	*/
201	.word solaris_unimplemented	/* lwp-xxx		170	*/
202	.word solaris_unimplemented	/* lwp-xxx		171	*/
203	.word solaris_unimplemented	/* lwp-xxx		172	*/
204	.word solaris_pread		/* pread	dpdd	173	*/
205	.word solaris_pwrite		/* pwrite	dpdd	174	*/
206	.word REGS(solaris_llseek)	/* llseek	dLd	175	*/
207	.word solaris_unimplemented	/* lwpself		176	*/
208	.word solaris_unimplemented	/* lwpinfo		177	*/
209	.word solaris_unimplemented	/* lwpprivate		178	*/
210	.word solaris_unimplemented	/* processorbind	179	*/
211	.word solaris_unimplemented	/* processorexbind	180	*/
212	.word solaris_unimplemented	/* 			181	*/
213	.word solaris_unimplemented	/* sync_mailbox		182	*/
214	.word solaris_unimplemented	/* prepblock		183	*/
215	.word solaris_unimplemented	/* block		184	*/
216	.word solaris_acl		/* acl		sddp	185	*/
217	.word solaris_unimplemented	/* unblock		186	*/
218	.word solaris_unimplemented	/* cancelblock		187	*/
219	.word solaris_unimplemented	/* ?			188	*/
220	.word solaris_unimplemented	/* xxxxx		189	*/
221	.word solaris_unimplemented	/* xxxxxe		190	*/
222	.word solaris_unimplemented	/*			191	*/
223	.word solaris_unimplemented	/*			192	*/
224	.word solaris_unimplemented	/*			193	*/
225	.word solaris_unimplemented	/*			194	*/
226	.word solaris_unimplemented	/* 			195	*/
227	.word solaris_unimplemented	/* 			196	*/
228	.word solaris_unimplemented	/* 			197	*/
229	.word solaris_unimplemented	/* 			198	*/
230	.word CHAIN(nanosleep)		/* nanosleep	dd	199	*/
231	.word solaris_facl		/* facl		dddp	200	*/
232	.word solaris_unimplemented	/* 			201	*/
233	.word CHAIN(setreuid)		/* setreuid	dd	202	*/
234	.word CHAIN(setregid)		/* setregid	dd	203	*/
235	.word solaris_unimplemented	/* 			204	*/
236	.word solaris_unimplemented	/* 			205	*/
237	.word solaris_unimplemented	/* 			206	*/
238	.word solaris_unimplemented	/* 			207	*/
239	.word solaris_unimplemented	/* 			208	*/
240	.word solaris_unimplemented	/* 			209	*/
241	.word solaris_unimplemented	/* 			210	*/
242	.word solaris_unimplemented	/* 			211	*/
243	.word solaris_unimplemented	/* 			212	*/
244	.word solaris_getdents64	/* getdents64	dpd	213	*/
245	.word REGS(solaris_mmap64)	/* mmap64	xxxxdX	214	*/
246	.word solaris_stat64		/* stat64	sP	215	*/
247	.word solaris_lstat64		/* lstat64	sP	216	*/
248	.word solaris_fstat64		/* fstat64	dP	217	*/
249	.word solaris_statvfs64		/* statvfs64	sP	218	*/
250	.word solaris_fstatvfs64	/* fstatvfs64	dP	219	*/
251	.word solaris_setrlimit64	/* setrlimit64	dP	220	*/
252	.word solaris_getrlimit64	/* getrlimit64	dP	221	*/
253	.word CHAIN(pread)		/* pread64	dpdD	222	*/
254	.word CHAIN(pwrite)		/* pwrite64	dpdD	223	*/
255	.word CHAIN(creat)		/* creat64	so	224	*/
256	.word solaris_open		/* open64	soo	225	*/
257	.word solaris_unimplemented	/* 			226	*/
258	.word solaris_unimplemented	/* 			227	*/
259	.word solaris_unimplemented	/* 			228	*/
260	.word solaris_unimplemented	/* 			229	*/
261	.word solaris_socket		/* socket	ddd	230	*/
262	.word solaris_socketpair	/* socketpair	dddp	231	*/
263	.word solaris_bind		/* bind		dpd	232	*/
264	.word solaris_listen		/* listen	dd	233	*/
265	.word solaris_accept		/* accept	dpp	234	*/
266	.word solaris_connect		/* connect	dpd	235	*/
267	.word solaris_shutdown		/* shutdown	dd	236	*/
268	.word solaris_recv		/* recv		dpdd	237	*/
269	.word solaris_recvfrom		/* recvfrom	dpddpp	238	*/
270	.word solaris_recvmsg		/* recvmsg	dpd	239	*/
271	.word solaris_send		/* send		dpdd	240	*/
272	.word solaris_sendmsg		/* sendmsg	dpd	241	*/
273	.word solaris_sendto		/* sendto	dpddpd	242	*/
274	.word solaris_getpeername	/* getpeername	dpp	243	*/
275	.word solaris_getsockname	/* getsockname	dpp	244	*/
276	.word solaris_getsockopt	/* getsockopt	dddpp	245	*/
277	.word solaris_setsockopt	/* setsockopt	dddpp	246	*/
278	.word solaris_unimplemented	/* 			247	*/
279	.word solaris_ntp_gettime	/* ntp_gettime	p	248	*/
280	.word solaris_ntp_adjtime	/* ntp_adjtime	p	249	*/
281	.word solaris_unimplemented	/* 			250	*/
282	.word solaris_unimplemented	/* 			251	*/
283	.word solaris_unimplemented	/* 			252	*/
284	.word solaris_unimplemented	/* 			253	*/
285	.word solaris_unimplemented	/* 			254	*/
286	.word solaris_unimplemented	/* 			255	*/
287
288