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