Blame view

arch/mips/kernel/scall64-o32.S 13.2 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  /*
   * This file is subject to the terms and conditions of the GNU General Public
   * License.  See the file "COPYING" in the main directory of this archive
   * for more details.
   *
   * Copyright (C) 1995 - 2000, 2001 by Ralf Baechle
   * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
   * Copyright (C) 2001 MIPS Technologies, Inc.
   * Copyright (C) 2004 Thiemo Seufer
   *
   * Hairy, the userspace application uses a different argument passing
   * convention than the kernel, so we have to translate things from o32
   * to ABI64 calling convention.  64-bit syscalls are also processed
   * here for now.
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
16
17
18
  #include <linux/errno.h>
  #include <asm/asm.h>
  #include <asm/asmmacro.h>
192ef3661   Ralf Baechle   [MIPS] TRACE_IRQF...
19
  #include <asm/irqflags.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
20
21
22
23
24
25
26
27
28
29
30
  #include <asm/mipsregs.h>
  #include <asm/regdef.h>
  #include <asm/stackframe.h>
  #include <asm/thread_info.h>
  #include <asm/unistd.h>
  #include <asm/sysmips.h>
  
  	.align  5
  NESTED(handle_sys, PT_SIZE, sp)
  	.set	noat
  	SAVE_SOME
eae6c0da9   Atsushi Nemoto   [MIPS] lockdep: f...
31
  	TRACE_IRQS_ON_RELOAD
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
  	STI
  	.set	at
  	ld	t1, PT_EPC(sp)		# skip syscall on return
  
  	dsubu	t0, v0, __NR_O32_Linux	# check syscall number
  	sltiu	t0, t0, __NR_O32_Linux_syscalls + 1
  	daddiu	t1, 4			# skip to next instruction
  	sd	t1, PT_EPC(sp)
  	beqz	t0, not_o32_scall
  #if 0
   SAVE_ALL
   move a1, v0
   PRINT("Scall %ld
  ")
   RESTORE_ALL
  #endif
  
  	/* We don't want to stumble over broken sign extensions from
  	   userland. O32 does never use the upper half. */
  	sll	a0, a0, 0
  	sll	a1, a1, 0
  	sll	a2, a2, 0
  	sll	a3, a3, 0
  
  	dsll	t0, v0, 3		# offset into table
  	ld	t2, (sys_call_table - (__NR_O32_Linux * 8))(t0)
  
  	sd	a3, PT_R26(sp)		# save a3 for syscall restarting
  
  	/*
  	 * More than four arguments.  Try to deal with it by copying the
  	 * stack arguments from the user stack to the kernel stack.
  	 * This Sucks (TM).
  	 *
  	 * We intentionally keep the kernel stack a little below the top of
  	 * userspace so we don't have to do a slower byte accurate check here.
  	 */
  	ld	t0, PT_R29(sp)		# get old user stack pointer
  	daddu	t1, t0, 32
  	bltz	t1, bad_stack
  
  1:	lw	a4, 16(t0)		# argument #5 from usp
  2:	lw	a5, 20(t0)		# argument #6 from usp
  3:	lw	a6, 24(t0)		# argument #7 from usp
  4:	lw	a7, 28(t0)		# argument #8 from usp (for indirect syscalls)
  
  	.section __ex_table,"a"
  	PTR	1b, bad_stack
  	PTR	2b, bad_stack
  	PTR	3b, bad_stack
  	PTR	4b, bad_stack
  	.previous
  
  	li	t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
  	LONG_L	t0, TI_FLAGS($28)	# syscall tracing enabled?
  	and	t0, t1, t0
  	bnez	t0, trace_a_syscall
  
  	jalr	t2			# Do The Real Thing (TM)
  
  	li	t0, -EMAXERRNO - 1	# error?
  	sltu	t0, t0, v0
  	sd	t0, PT_R7(sp)		# set error flag
  	beqz	t0, 1f
8f5a00eb4   Al Viro   MIPS: Sanitize re...
96
  	ld	t1, PT_R2(sp)		# syscall number
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
97
  	dnegu	v0			# error
8f5a00eb4   Al Viro   MIPS: Sanitize re...
98
  	sd	t1, PT_R0(sp)		# save it for syscall restarting
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  1:	sd	v0, PT_R2(sp)		# result
  
  o32_syscall_exit:
  	local_irq_disable		# make need_resched and
  					# signals dont change between
  					# sampling and return
  	LONG_L	a2, TI_FLAGS($28)
  	li	t0, _TIF_ALLWORK_MASK
  	and	t0, a2, t0
  	bnez	t0, o32_syscall_exit_work
  
  	j	restore_partial
  
  o32_syscall_exit_work:
  	j	syscall_exit_work_partial
  
  /* ------------------------------------------------------------------------ */
  
  trace_a_syscall:
  	SAVE_STATIC
  	sd	a4, PT_R8(sp)		# Save argument registers
  	sd	a5, PT_R9(sp)
  	sd	a6, PT_R10(sp)
  	sd	a7, PT_R11(sp)		# For indirect syscalls
  
  	move	s0, t2			# Save syscall pointer
  	move	a0, sp
8b659a393   Ralf Baechle   MIPS: Split do_sy...
126
  	jal	syscall_trace_enter
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
127

04a7052c8   Ralf Baechle   [MIPS] Fix regist...
128
129
  	move	t0, s0
  	RESTORE_STATIC
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
130
131
132
133
134
135
136
137
  	ld	a0, PT_R4(sp)		# Restore argument registers
  	ld	a1, PT_R5(sp)
  	ld	a2, PT_R6(sp)
  	ld	a3, PT_R7(sp)
  	ld	a4, PT_R8(sp)
  	ld	a5, PT_R9(sp)
  	ld	a6, PT_R10(sp)
  	ld	a7, PT_R11(sp)		# For indirect syscalls
04a7052c8   Ralf Baechle   [MIPS] Fix regist...
138
  	jalr	t0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
139
140
141
142
143
  
  	li	t0, -EMAXERRNO - 1	# error?
  	sltu	t0, t0, v0
  	sd	t0, PT_R7(sp)		# set error flag
  	beqz	t0, 1f
8f5a00eb4   Al Viro   MIPS: Sanitize re...
144
  	ld	t1, PT_R2(sp)		# syscall number
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
145
  	dnegu	v0			# error
8f5a00eb4   Al Viro   MIPS: Sanitize re...
146
  	sd	t1, PT_R0(sp)		# save it for syscall restarting
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
147
148
149
150
151
152
153
154
155
156
  1:	sd	v0, PT_R2(sp)		# result
  
  	j	syscall_exit
  
  /* ------------------------------------------------------------------------ */
  
  	/*
  	 * The stackpointer for a call with more than 4 arguments is bad.
  	 */
  bad_stack:
5b89c0044   Al Viro   MIPS: Fix error v...
157
  	li	v0, EFAULT
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
  	sd	v0, PT_R2(sp)
  	li	t0, 1			# set error flag
  	sd	t0, PT_R7(sp)
  	j	o32_syscall_exit
  
  not_o32_scall:
  	/*
  	 * This is not an o32 compatibility syscall, pass it on
  	 * to the 64-bit syscall handlers.
  	 */
  #ifdef CONFIG_MIPS32_N32
  	j	handle_sysn32
  #else
  	j	handle_sys64
  #endif
  	END(handle_sys)
  
  LEAF(sys32_syscall)
e807f9574   Vlad Malov   MIPS: Fix potenti...
176
177
178
179
  	subu	t0, a0, __NR_O32_Linux	# check syscall number
  	sltiu	v0, t0, __NR_O32_Linux_syscalls + 1
  	beqz	t0, einval		# do not recurse
  	dsll	t1, t0, 3
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
180
  	beqz	v0, einval
e807f9574   Vlad Malov   MIPS: Fix potenti...
181
  	ld	t2, sys_call_table(t1)		# syscall routine
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
  
  	move	a0, a1			# shift argument registers
  	move	a1, a2
  	move	a2, a3
  	move	a3, a4
  	move	a4, a5
  	move	a5, a6
  	move	a6, a7
  	sd	a0, PT_R4(sp)		# ... and push back a0 - a3, some
  	sd	a1, PT_R5(sp)		# syscalls expect them there
  	sd	a2, PT_R6(sp)
  	sd	a3, PT_R7(sp)
  	sd	a3, PT_R26(sp)		# update a3 for syscall restarting
  	jr	t2
  	/* Unreached */
c6cb4df96   David Daney   MIPS: Return ENOS...
197
  einval:	li	v0, -ENOSYS
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
198
199
200
201
202
203
204
205
206
207
208
  	jr	ra
  	END(sys32_syscall)
  
  	.align	3
  	.type	sys_call_table,@object
  sys_call_table:
  	PTR	sys32_syscall			/* 4000 */
  	PTR	sys_exit
  	PTR	sys_fork
  	PTR	sys_read
  	PTR	sys_write
7155262e1   Thiemo Seufer   [MIPS] open() for...
209
  	PTR	compat_sys_open			/* 4005 */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
  	PTR	sys_close
  	PTR	sys_waitpid
  	PTR	sys_creat
  	PTR	sys_link
  	PTR	sys_unlink			/* 4010 */
  	PTR	sys32_execve
  	PTR	sys_chdir
  	PTR	compat_sys_time
  	PTR	sys_mknod
  	PTR	sys_chmod			/* 4015 */
  	PTR	sys_lchown
  	PTR	sys_ni_syscall
  	PTR	sys_ni_syscall			/* was sys_stat */
  	PTR	sys_lseek
  	PTR	sys_getpid			/* 4020 */
089c7e7f2   Ralf Baechle   [MIPS] Use compat...
225
  	PTR	compat_sys_mount
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
226
227
228
229
  	PTR	sys_oldumount
  	PTR	sys_setuid
  	PTR	sys_getuid
  	PTR	compat_sys_stime		/* 4025 */
5d9a76cd0   Thomas Bogendoerfer   MIPS: Use compat_...
230
  	PTR	compat_sys_ptrace
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
  	PTR	sys_alarm
  	PTR	sys_ni_syscall			/* was sys_fstat */
  	PTR	sys_pause
  	PTR	compat_sys_utime		/* 4030 */
  	PTR	sys_ni_syscall
  	PTR	sys_ni_syscall
  	PTR	sys_access
  	PTR	sys_nice
  	PTR	sys_ni_syscall			/* 4035 */
  	PTR	sys_sync
  	PTR	sys_kill
  	PTR	sys_rename
  	PTR	sys_mkdir
  	PTR	sys_rmdir			/* 4040 */
  	PTR	sys_dup
8213bbf9c   Ralf Baechle   [MIPS] Rename MIP...
246
  	PTR	sysm_pipe
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
  	PTR	compat_sys_times
  	PTR	sys_ni_syscall
  	PTR	sys_brk				/* 4045 */
  	PTR	sys_setgid
  	PTR	sys_getgid
  	PTR	sys_ni_syscall			/* was signal	2 */
  	PTR	sys_geteuid
  	PTR	sys_getegid			/* 4050 */
  	PTR	sys_acct
  	PTR	sys_umount
  	PTR	sys_ni_syscall
  	PTR	compat_sys_ioctl
  	PTR	compat_sys_fcntl		/* 4055 */
  	PTR	sys_ni_syscall
  	PTR	sys_setpgid
  	PTR	sys_ni_syscall
  	PTR	sys_olduname
  	PTR	sys_umask			/* 4060 */
  	PTR	sys_chroot
2b1c6bd77   Christoph Hellwig   generic compat_sy...
266
  	PTR	compat_sys_ustat
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
267
268
269
270
  	PTR	sys_dup2
  	PTR	sys_getppid
  	PTR	sys_getpgrp			/* 4065 */
  	PTR	sys_setsid
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
271
  	PTR	sys_32_sigaction
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
272
273
274
275
276
277
278
279
280
281
  	PTR	sys_sgetmask
  	PTR	sys_ssetmask
  	PTR	sys_setreuid			/* 4070 */
  	PTR	sys_setregid
  	PTR	sys32_sigsuspend
  	PTR	compat_sys_sigpending
  	PTR	sys_sethostname
  	PTR	compat_sys_setrlimit		/* 4075 */
  	PTR	compat_sys_getrlimit
  	PTR	compat_sys_getrusage
b418da16d   Christoph Hellwig   compat: generic c...
282
283
  	PTR	compat_sys_gettimeofday
  	PTR	compat_sys_settimeofday
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
284
285
286
287
288
289
290
291
292
  	PTR	sys_getgroups			/* 4080 */
  	PTR	sys_setgroups
  	PTR	sys_ni_syscall			/* old_select */
  	PTR	sys_symlink
  	PTR	sys_ni_syscall			/* was sys_lstat */
  	PTR	sys_readlink			/* 4085 */
  	PTR	sys_uselib
  	PTR	sys_swapon
  	PTR	sys_reboot
2fd628fe2   Atsushi Nemoto   [MIPS] Use generi...
293
  	PTR	compat_sys_old_readdir
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
294
  	PTR	sys_mips_mmap			/* 4090 */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
295
296
297
298
299
300
301
302
303
304
305
  	PTR	sys_munmap
  	PTR	sys_truncate
  	PTR	sys_ftruncate
  	PTR	sys_fchmod
  	PTR	sys_fchown			/* 4095 */
  	PTR	sys_getpriority
  	PTR	sys_setpriority
  	PTR	sys_ni_syscall
  	PTR	compat_sys_statfs
  	PTR	compat_sys_fstatfs		/* 4100 */
  	PTR	sys_ni_syscall			/* sys_ioperm */
08274cefd   Ralf Baechle   [MIPS] Replace sy...
306
  	PTR	compat_sys_socketcall
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
307
308
309
310
311
312
313
314
315
316
317
  	PTR	sys_syslog
  	PTR	compat_sys_setitimer
  	PTR	compat_sys_getitimer		/* 4105 */
  	PTR	compat_sys_newstat
  	PTR	compat_sys_newlstat
  	PTR	compat_sys_newfstat
  	PTR	sys_uname
  	PTR	sys_ni_syscall			/* sys_ioperm  *//* 4110 */
  	PTR	sys_vhangup
  	PTR	sys_ni_syscall			/* was sys_idle	 */
  	PTR	sys_ni_syscall			/* sys_vm86 */
b6e203d84   Ralf Baechle   Use generic compa...
318
  	PTR	compat_sys_wait4
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
319
  	PTR	sys_swapoff			/* 4115 */
d4d23add3   Kyle McMartin   [PATCH] Common co...
320
  	PTR	compat_sys_sysinfo
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
321
  	PTR	sys_32_ipc
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
322
323
  	PTR	sys_fsync
  	PTR	sys32_sigreturn
3c37026d4   Ralf Baechle   NPTL, round one.
324
  	PTR	sys32_clone			/* 4120 */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
325
  	PTR	sys_setdomainname
e28cbf229   Christoph Hellwig   improve sys_newun...
326
  	PTR	sys_newuname
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
327
  	PTR	sys_ni_syscall			/* sys_modify_ldt */
3158e9411   Stephen Rothwell   [PATCH] consolida...
328
  	PTR	compat_sys_adjtimex
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
329
330
331
332
333
334
335
336
337
338
339
  	PTR	sys_mprotect			/* 4125 */
  	PTR	compat_sys_sigprocmask
  	PTR	sys_ni_syscall			/* was creat_module */
  	PTR	sys_init_module
  	PTR	sys_delete_module
  	PTR	sys_ni_syscall			/* 4130, get_kernel_syms */
  	PTR	sys_quotactl
  	PTR	sys_getpgid
  	PTR	sys_fchdir
  	PTR	sys_bdflush
  	PTR	sys_sysfs			/* 4135 */
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
340
  	PTR	sys_32_personality
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
341
342
343
  	PTR	sys_ni_syscall	 		/* for afs_syscall */
  	PTR	sys_setfsuid
  	PTR	sys_setfsgid
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
344
  	PTR	sys_32_llseek			/* 4140 */
2fd628fe2   Atsushi Nemoto   [MIPS] Use generi...
345
  	PTR	compat_sys_getdents
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
346
347
348
349
350
351
352
353
354
355
356
  	PTR	compat_sys_select
  	PTR	sys_flock
  	PTR	sys_msync
  	PTR	compat_sys_readv		/* 4145 */
  	PTR	compat_sys_writev
  	PTR	sys_cacheflush
  	PTR	sys_cachectl
  	PTR	sys_sysmips
  	PTR	sys_ni_syscall			/* 4150 */
  	PTR	sys_getsid
  	PTR	sys_fdatasync
aff639cdc   Eric W. Biederman   sysctl: mips Use ...
357
  	PTR	compat_sys_sysctl
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
358
359
360
361
362
363
364
365
366
367
368
  	PTR	sys_mlock
  	PTR	sys_munlock			/* 4155 */
  	PTR	sys_mlockall
  	PTR	sys_munlockall
  	PTR	sys_sched_setparam
  	PTR	sys_sched_getparam
  	PTR	sys_sched_setscheduler 		/* 4160 */
  	PTR	sys_sched_getscheduler
  	PTR	sys_sched_yield
  	PTR	sys_sched_get_priority_max
  	PTR	sys_sched_get_priority_min
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
369
  	PTR	sys_32_sched_rr_get_interval 	/* 4165 */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
370
371
372
373
374
375
376
377
378
  	PTR	compat_sys_nanosleep
  	PTR	sys_mremap
  	PTR	sys_accept
  	PTR	sys_bind
  	PTR	sys_connect			/* 4170 */
  	PTR	sys_getpeername
  	PTR	sys_getsockname
  	PTR	sys_getsockopt
  	PTR	sys_listen
1dacc76d0   Johannes Berg   net/compat/wext: ...
379
380
  	PTR	compat_sys_recv			/* 4175 */
  	PTR	compat_sys_recvfrom
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
381
382
383
384
385
386
387
388
389
390
391
392
  	PTR	compat_sys_recvmsg
  	PTR	sys_send
  	PTR	compat_sys_sendmsg
  	PTR	sys_sendto			/* 4180 */
  	PTR	compat_sys_setsockopt
  	PTR	sys_shutdown
  	PTR	sys_socket
  	PTR	sys_socketpair
  	PTR	sys_setresuid			/* 4185 */
  	PTR	sys_getresuid
  	PTR	sys_ni_syscall			/* was query_module */
  	PTR	sys_poll
f5b940997   NeilBrown   All Arch: remove ...
393
  	PTR	sys_ni_syscall			/* was nfsservctl */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
394
395
396
397
  	PTR	sys_setresgid			/* 4190 */
  	PTR	sys_getresgid
  	PTR	sys_prctl
  	PTR	sys32_rt_sigreturn
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
398
399
400
  	PTR	sys_32_rt_sigaction
  	PTR	sys_32_rt_sigprocmask 		/* 4195 */
  	PTR	sys_32_rt_sigpending
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
401
  	PTR	compat_sys_rt_sigtimedwait
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
402
  	PTR	sys_32_rt_sigqueueinfo
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
403
  	PTR	sys32_rt_sigsuspend
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
404
405
  	PTR	sys_32_pread			/* 4200 */
  	PTR	sys_32_pwrite
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
406
407
408
409
410
  	PTR	sys_chown
  	PTR	sys_getcwd
  	PTR	sys_capget
  	PTR	sys_capset			/* 4205 */
  	PTR	sys32_sigaltstack
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
411
  	PTR	sys_32_sendfile
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
412
413
  	PTR	sys_ni_syscall
  	PTR	sys_ni_syscall
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
414
415
416
  	PTR	sys_mips_mmap2			/* 4210 */
  	PTR	sys_32_truncate64
  	PTR	sys_32_ftruncate64
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
  	PTR	sys_newstat
  	PTR	sys_newlstat
  	PTR	sys_newfstat			/* 4215 */
  	PTR	sys_pivot_root
  	PTR	sys_mincore
  	PTR	sys_madvise
  	PTR	sys_getdents64
  	PTR	compat_sys_fcntl64		/* 4220 */
  	PTR	sys_ni_syscall
  	PTR	sys_gettid
  	PTR	sys32_readahead
  	PTR	sys_setxattr
  	PTR	sys_lsetxattr			/* 4225 */
  	PTR	sys_fsetxattr
  	PTR	sys_getxattr
  	PTR	sys_lgetxattr
  	PTR	sys_fgetxattr
  	PTR	sys_listxattr			/* 4230 */
  	PTR	sys_llistxattr
  	PTR	sys_flistxattr
  	PTR	sys_removexattr
  	PTR	sys_lremovexattr
  	PTR	sys_fremovexattr		/* 4235 */
  	PTR	sys_tkill
  	PTR	sys_sendfile64
1eec6cd08   Yong Zhang   MIPS: Compat: Use...
442
  	PTR	sys_32_futex
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
443
444
  	PTR	compat_sys_sched_setaffinity
  	PTR	compat_sys_sched_getaffinity	/* 4240 */
e2cc502c3   Michel Thebeau   MIPS: O32 compat/...
445
  	PTR	compat_sys_io_setup
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
446
  	PTR	sys_io_destroy
e2cc502c3   Michel Thebeau   MIPS: O32 compat/...
447
448
  	PTR	compat_sys_io_getevents
  	PTR	compat_sys_io_submit
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
449
450
  	PTR	sys_io_cancel			/* 4245 */
  	PTR	sys_exit_group
80b8585b0   Wu Zhangjin   MIPS: 64-bit: Fix...
451
  	PTR	sys32_lookup_dcookie
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
452
453
454
455
456
457
  	PTR	sys_epoll_create
  	PTR	sys_epoll_ctl
  	PTR	sys_epoll_wait			/* 4250 */
  	PTR	sys_remap_file_pages
  	PTR	sys_set_tid_address
  	PTR	sys_restart_syscall
8676d2e02   Atsushi Nemoto   [MIPS] Fix some s...
458
  	PTR	sys32_fadvise64_64
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
459
460
  	PTR	compat_sys_statfs64		/* 4255 */
  	PTR	compat_sys_fstatfs64
821d313c2   Ralf Baechle   [MIPS] Replace sy...
461
  	PTR	compat_sys_timer_create
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
  	PTR	compat_sys_timer_settime
  	PTR	compat_sys_timer_gettime
  	PTR	sys_timer_getoverrun		/* 4260 */
  	PTR	sys_timer_delete
  	PTR	compat_sys_clock_settime
  	PTR	compat_sys_clock_gettime
  	PTR	compat_sys_clock_getres
  	PTR	compat_sys_clock_nanosleep	/* 4265 */
  	PTR	sys_tgkill
  	PTR	compat_sys_utimes
  	PTR	sys_ni_syscall			/* sys_mbind */
  	PTR	sys_ni_syscall			/* sys_get_mempolicy */
  	PTR	sys_ni_syscall			/* 4270 sys_set_mempolicy */
  	PTR	compat_sys_mq_open
  	PTR	sys_mq_unlink
  	PTR	compat_sys_mq_timedsend
  	PTR	compat_sys_mq_timedreceive
  	PTR	compat_sys_mq_notify		/* 4275 */
  	PTR	compat_sys_mq_getsetattr
  	PTR	sys_ni_syscall			/* sys_vserver */
dbda6ac08   Ralf Baechle   MIPS: CVE-2009-00...
482
  	PTR	sys_32_waitid
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
483
484
485
486
  	PTR	sys_ni_syscall			/* available, was setaltroot */
  	PTR	sys_add_key			/* 4280 */
  	PTR	sys_request_key
  	PTR	sys_keyctl
3c37026d4   Ralf Baechle   NPTL, round one.
487
  	PTR	sys_set_thread_area
7db36c858   Ralf Baechle   Add inotify sysca...
488
489
490
  	PTR	sys_inotify_init
  	PTR	sys_inotify_add_watch		/* 4285 */
  	PTR	sys_inotify_rm_watch
72bf89142   Ralf Baechle   [MIPS] Wire up ne...
491
492
493
494
495
496
  	PTR	sys_migrate_pages
  	PTR	compat_sys_openat
  	PTR	sys_mkdirat
  	PTR	sys_mknodat			/* 4290 */
  	PTR	sys_fchownat
  	PTR	compat_sys_futimesat
63415dbb5   Richard Sandiford   [MIPS] The o32 fs...
497
  	PTR	sys_newfstatat
72bf89142   Ralf Baechle   [MIPS] Wire up ne...
498
499
500
501
502
503
504
  	PTR	sys_unlinkat
  	PTR	sys_renameat			/* 4295 */
  	PTR	sys_linkat
  	PTR	sys_symlinkat
  	PTR	sys_readlinkat
  	PTR	sys_fchmodat
  	PTR	sys_faccessat			/* 4300 */
99d233fa9   Joseph S. Myers   [MIPS] Use compat...
505
  	PTR	compat_sys_pselect6
049a31afe   Arnaud Patard   MIPS: O32: Fix ppoll
506
  	PTR	compat_sys_ppoll
72bf89142   Ralf Baechle   [MIPS] Wire up ne...
507
  	PTR	sys_unshare
f115da9cd   Ralf Baechle   [MIPS] Wire splic...
508
  	PTR	sys_splice
a8d587a71   Ralf Baechle   [MIPS] Wire up sy...
509
  	PTR	sys32_sync_file_range		/* 4305 */
136d47d3e   Ralf Baechle   [MIPS] Wire up te...
510
  	PTR	sys_tee
8d13cb26c   Ralf Baechle   MIPS: 64-bit: vms...
511
  	PTR	compat_sys_vmsplice
722cfd904   Ralf Baechle   [MIPS] Wire up vm...
512
  	PTR	compat_sys_move_pages
7fdeb0481   Atsushi Nemoto   [MIPS] Wire up se...
513
514
  	PTR	compat_sys_set_robust_list
  	PTR	compat_sys_get_robust_list	/* 4310 */
583bb86fb   Nicolas Schichan   [MIPS] Add suppor...
515
  	PTR	compat_sys_kexec_load
991ea26dc   Ralf Baechle   [MIPS] Wire up ge...
516
  	PTR	sys_getcpu
e016c38d1   Ralf Baechle   [MIPS] Fix foobar...
517
  	PTR	compat_sys_epoll_pwait
08253b39f   Ralf Baechle   [MIPS] Wire up io...
518
519
  	PTR	sys_ioprio_set
  	PTR	sys_ioprio_get			/* 4315 */
7a6d4f387   Atsushi Nemoto   [MIPS] Wire up ut...
520
521
  	PTR	compat_sys_utimensat
  	PTR	compat_sys_signalfd
8bdd51429   Ralf Baechle   MIPS: Document fo...
522
  	PTR	sys_ni_syscall			/* was timerfd */
7a6d4f387   Atsushi Nemoto   [MIPS] Wire up ut...
523
  	PTR	sys_eventfd
422efb17e   Kyle McMartin   [MIPS] Fix falloc...
524
  	PTR	sys32_fallocate			/* 4320 */
6783fe625   Dmitri Vorobiev   [MIPS] Wire up th...
525
  	PTR	sys_timerfd_create
c7d16736b   David Daney   MIPS: Compat: Use...
526
527
  	PTR	compat_sys_timerfd_gettime
  	PTR	compat_sys_timerfd_settime
3885b71ba   Ralf Baechle   [MIPS] Wire up ne...
528
529
530
531
532
533
  	PTR	compat_sys_signalfd4
  	PTR	sys_eventfd2			/* 4325 */
  	PTR	sys_epoll_create1
  	PTR	sys_dup3
  	PTR	sys_pipe2
  	PTR	sys_inotify_init1
ddd9e91b7   Ralf Baechle   preadv/pwritev: M...
534
535
  	PTR	compat_sys_preadv		/* 4330 */
  	PTR	compat_sys_pwritev
69f16c9a8   David Daney   MIPS: Hookup new ...
536
  	PTR	compat_sys_rt_tgsigqueueinfo
cdd6c482c   Ingo Molnar   perf: Do the big ...
537
  	PTR	sys_perf_event_open
54822de77   Ralf Baechle   MIPS: Wire up acc...
538
  	PTR	sys_accept4
5e844b31c   David Daney   MIPS: Hookup fano...
539
540
541
542
  	PTR	compat_sys_recvmmsg		/* 4335 */
  	PTR	sys_fanotify_init
  	PTR	sys_32_fanotify_mark
  	PTR	sys_prlimit64
84ed94323   David Daney   MIPS: Hook up nam...
543
544
545
  	PTR	sys_name_to_handle_at
  	PTR	compat_sys_open_by_handle_at	/* 4340 */
  	PTR	compat_sys_clock_adjtime
1bbf28756   Ralf Baechle   MIPS: Wire up syn...
546
  	PTR	sys_syncfs
b12acf163   Ralf Baechle   MIPS: Wire up sen...
547
  	PTR	compat_sys_sendmmsg
7b21fddd0   Eric W. Biederman   ns: Wire up the s...
548
  	PTR	sys_setns
8ff8584e5   David Daney   MIPS: Hook up pro...
549
550
  	PTR	compat_sys_process_vm_readv	/* 4345 */
  	PTR	compat_sys_process_vm_writev
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
551
  	.size	sys_call_table,.-sys_call_table