/* $Id: systbl.S,v 1.11 2000/03/13 21:57:35 davem Exp $
 * systbl.S: System call entry point table for Solaris compatibility.
 *
 * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
 * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
 */

#include <asm/unistd.h>

/* Fall back to sys_call_table32 entry */
#define CHAIN(name)	__NR_##name

/* Pass pt_regs pointer as first argument */
#define REGS(name)	name+1

/* Hack till all be implemented */
#define solaris_getpmsg		solaris_unimplemented
#define solaris_hrtsys		solaris_unimplemented
#define solaris_msgsys		solaris_unimplemented
#define solaris_putpmsg		solaris_unimplemented
#define solaris_semsys		solaris_unimplemented

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