blob: 18cfa115d07edb4dc3083b7833bcc00690dfc82a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1995 - 2000, 2001 by Ralf Baechle
7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
8 * Copyright (C) 2001 MIPS Technologies, Inc.
9 * Copyright (C) 2004 Thiemo Seufer
10 *
11 * Hairy, the userspace application uses a different argument passing
12 * convention than the kernel, so we have to translate things from o32
Ralf Baechle70342282013-01-22 12:59:30 +010013 * to ABI64 calling convention. 64-bit syscalls are also processed
Linus Torvalds1da177e2005-04-16 15:20:36 -070014 * here for now.
15 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070016#include <linux/errno.h>
17#include <asm/asm.h>
18#include <asm/asmmacro.h>
Ralf Baechle192ef362006-07-07 14:07:18 +010019#include <asm/irqflags.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070020#include <asm/mipsregs.h>
21#include <asm/regdef.h>
22#include <asm/stackframe.h>
23#include <asm/thread_info.h>
24#include <asm/unistd.h>
25#include <asm/sysmips.h>
26
Ralf Baechle70342282013-01-22 12:59:30 +010027 .align 5
Linus Torvalds1da177e2005-04-16 15:20:36 -070028NESTED(handle_sys, PT_SIZE, sp)
29 .set noat
30 SAVE_SOME
Atsushi Nemotoeae6c0d2006-09-26 23:43:40 +090031 TRACE_IRQS_ON_RELOAD
Linus Torvalds1da177e2005-04-16 15:20:36 -070032 STI
33 .set at
34 ld t1, PT_EPC(sp) # skip syscall on return
35
36 dsubu t0, v0, __NR_O32_Linux # check syscall number
37 sltiu t0, t0, __NR_O32_Linux_syscalls + 1
38 daddiu t1, 4 # skip to next instruction
39 sd t1, PT_EPC(sp)
40 beqz t0, not_o32_scall
41#if 0
42 SAVE_ALL
43 move a1, v0
44 PRINT("Scall %ld\n")
45 RESTORE_ALL
46#endif
47
48 /* We don't want to stumble over broken sign extensions from
49 userland. O32 does never use the upper half. */
50 sll a0, a0, 0
51 sll a1, a1, 0
52 sll a2, a2, 0
53 sll a3, a3, 0
54
55 dsll t0, v0, 3 # offset into table
Ralf Baechle2a9c2752012-07-12 14:01:31 +020056 ld t2, (sys32_call_table - (__NR_O32_Linux * 8))(t0)
Linus Torvalds1da177e2005-04-16 15:20:36 -070057
58 sd a3, PT_R26(sp) # save a3 for syscall restarting
59
60 /*
61 * More than four arguments. Try to deal with it by copying the
62 * stack arguments from the user stack to the kernel stack.
63 * This Sucks (TM).
64 *
65 * We intentionally keep the kernel stack a little below the top of
66 * userspace so we don't have to do a slower byte accurate check here.
67 */
68 ld t0, PT_R29(sp) # get old user stack pointer
69 daddu t1, t0, 32
70 bltz t1, bad_stack
71
721: lw a4, 16(t0) # argument #5 from usp
732: lw a5, 20(t0) # argument #6 from usp
743: lw a6, 24(t0) # argument #7 from usp
754: lw a7, 28(t0) # argument #8 from usp (for indirect syscalls)
76
77 .section __ex_table,"a"
78 PTR 1b, bad_stack
79 PTR 2b, bad_stack
80 PTR 3b, bad_stack
81 PTR 4b, bad_stack
82 .previous
83
Ralf Baechlee7f3b482013-05-29 01:02:18 +020084 li t1, _TIF_WORK_SYSCALL_ENTRY
Linus Torvalds1da177e2005-04-16 15:20:36 -070085 LONG_L t0, TI_FLAGS($28) # syscall tracing enabled?
86 and t0, t1, t0
87 bnez t0, trace_a_syscall
88
89 jalr t2 # Do The Real Thing (TM)
90
91 li t0, -EMAXERRNO - 1 # error?
92 sltu t0, t0, v0
93 sd t0, PT_R7(sp) # set error flag
94 beqz t0, 1f
95
Al Viro8f5a00eb2010-09-28 18:50:37 +010096 ld t1, PT_R2(sp) # syscall number
Linus Torvalds1da177e2005-04-16 15:20:36 -070097 dnegu v0 # error
Al Viro8f5a00eb2010-09-28 18:50:37 +010098 sd t1, PT_R0(sp) # save it for syscall restarting
Linus Torvalds1da177e2005-04-16 15:20:36 -0700991: sd v0, PT_R2(sp) # result
100
101o32_syscall_exit:
Al Viro02f884e2012-05-05 16:11:35 -0400102 j syscall_exit_partial
Linus Torvalds1da177e2005-04-16 15:20:36 -0700103
104/* ------------------------------------------------------------------------ */
105
106trace_a_syscall:
107 SAVE_STATIC
108 sd a4, PT_R8(sp) # Save argument registers
109 sd a5, PT_R9(sp)
110 sd a6, PT_R10(sp)
111 sd a7, PT_R11(sp) # For indirect syscalls
112
113 move s0, t2 # Save syscall pointer
114 move a0, sp
Markos Chandras4c21b8f2014-01-22 14:40:03 +0000115 /*
116 * syscall number is in v0 unless we called syscall(__NR_###)
117 * where the real syscall number is in a0
118 * note: NR_syscall is the first O32 syscall but the macro is
119 * only defined when compiling with -mabi=32 (CONFIG_32BIT)
120 * therefore __NR_O32_Linux is used (4000)
121 */
122 addiu a1, v0, __NR_O32_Linux
123 bnez v0, 1f /* __NR_syscall at offset 0 */
124 lw a1, PT_R4(sp)
125
1261: jal syscall_trace_enter
Linus Torvalds1da177e2005-04-16 15:20:36 -0700127
Markos Chandras9d37c402014-01-22 14:40:02 +0000128 bltz v0, 2f # seccomp failed? Skip syscall
129
Ralf Baechle04a70522005-11-30 16:24:57 +0000130 move t0, s0
131 RESTORE_STATIC
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132 ld a0, PT_R4(sp) # Restore argument registers
133 ld a1, PT_R5(sp)
134 ld a2, PT_R6(sp)
135 ld a3, PT_R7(sp)
136 ld a4, PT_R8(sp)
137 ld a5, PT_R9(sp)
138 ld a6, PT_R10(sp)
139 ld a7, PT_R11(sp) # For indirect syscalls
Ralf Baechle04a70522005-11-30 16:24:57 +0000140 jalr t0
Linus Torvalds1da177e2005-04-16 15:20:36 -0700141
142 li t0, -EMAXERRNO - 1 # error?
143 sltu t0, t0, v0
144 sd t0, PT_R7(sp) # set error flag
145 beqz t0, 1f
146
Al Viro8f5a00eb2010-09-28 18:50:37 +0100147 ld t1, PT_R2(sp) # syscall number
Linus Torvalds1da177e2005-04-16 15:20:36 -0700148 dnegu v0 # error
Al Viro8f5a00eb2010-09-28 18:50:37 +0100149 sd t1, PT_R0(sp) # save it for syscall restarting
Linus Torvalds1da177e2005-04-16 15:20:36 -07001501: sd v0, PT_R2(sp) # result
151
Markos Chandras9d37c402014-01-22 14:40:02 +00001522: j syscall_exit
Linus Torvalds1da177e2005-04-16 15:20:36 -0700153
154/* ------------------------------------------------------------------------ */
155
156 /*
157 * The stackpointer for a call with more than 4 arguments is bad.
158 */
159bad_stack:
Al Viro5b89c002010-09-28 18:50:47 +0100160 li v0, EFAULT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700161 sd v0, PT_R2(sp)
162 li t0, 1 # set error flag
163 sd t0, PT_R7(sp)
164 j o32_syscall_exit
165
166not_o32_scall:
167 /*
168 * This is not an o32 compatibility syscall, pass it on
169 * to the 64-bit syscall handlers.
170 */
171#ifdef CONFIG_MIPS32_N32
172 j handle_sysn32
173#else
174 j handle_sys64
175#endif
176 END(handle_sys)
177
178LEAF(sys32_syscall)
Vlad Malove807f952008-11-18 15:05:46 -0800179 subu t0, a0, __NR_O32_Linux # check syscall number
180 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
181 beqz t0, einval # do not recurse
182 dsll t1, t0, 3
Linus Torvalds1da177e2005-04-16 15:20:36 -0700183 beqz v0, einval
Ralf Baechle2a9c2752012-07-12 14:01:31 +0200184 ld t2, sys32_call_table(t1) # syscall routine
Linus Torvalds1da177e2005-04-16 15:20:36 -0700185
186 move a0, a1 # shift argument registers
187 move a1, a2
188 move a2, a3
189 move a3, a4
190 move a4, a5
191 move a5, a6
192 move a6, a7
193 sd a0, PT_R4(sp) # ... and push back a0 - a3, some
194 sd a1, PT_R5(sp) # syscalls expect them there
195 sd a2, PT_R6(sp)
196 sd a3, PT_R7(sp)
197 sd a3, PT_R26(sp) # update a3 for syscall restarting
198 jr t2
199 /* Unreached */
200
Ralf Baechle70342282013-01-22 12:59:30 +0100201einval: li v0, -ENOSYS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700202 jr ra
203 END(sys32_syscall)
204
205 .align 3
Ralf Baechle2a9c2752012-07-12 14:01:31 +0200206 .type sys32_call_table,@object
207EXPORT(sys32_call_table)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700208 PTR sys32_syscall /* 4000 */
209 PTR sys_exit
Al Viro50150d22012-12-27 12:11:46 -0500210 PTR __sys_fork
Linus Torvalds1da177e2005-04-16 15:20:36 -0700211 PTR sys_read
212 PTR sys_write
Thiemo Seufer71552622006-05-28 15:02:53 +0100213 PTR compat_sys_open /* 4005 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700214 PTR sys_close
215 PTR sys_waitpid
216 PTR sys_creat
217 PTR sys_link
218 PTR sys_unlink /* 4010 */
Ralf Baechlebaf9ff72012-10-09 21:16:07 +0200219 PTR compat_sys_execve
Linus Torvalds1da177e2005-04-16 15:20:36 -0700220 PTR sys_chdir
221 PTR compat_sys_time
222 PTR sys_mknod
223 PTR sys_chmod /* 4015 */
224 PTR sys_lchown
225 PTR sys_ni_syscall
226 PTR sys_ni_syscall /* was sys_stat */
227 PTR sys_lseek
228 PTR sys_getpid /* 4020 */
Ralf Baechle089c7e72006-10-16 16:49:37 +0100229 PTR compat_sys_mount
Linus Torvalds1da177e2005-04-16 15:20:36 -0700230 PTR sys_oldumount
231 PTR sys_setuid
232 PTR sys_getuid
233 PTR compat_sys_stime /* 4025 */
Thomas Bogendoerfer5d9a76c2008-08-17 16:49:25 +0200234 PTR compat_sys_ptrace
Linus Torvalds1da177e2005-04-16 15:20:36 -0700235 PTR sys_alarm
236 PTR sys_ni_syscall /* was sys_fstat */
237 PTR sys_pause
238 PTR compat_sys_utime /* 4030 */
239 PTR sys_ni_syscall
240 PTR sys_ni_syscall
241 PTR sys_access
242 PTR sys_nice
243 PTR sys_ni_syscall /* 4035 */
244 PTR sys_sync
245 PTR sys_kill
246 PTR sys_rename
247 PTR sys_mkdir
248 PTR sys_rmdir /* 4040 */
249 PTR sys_dup
Ralf Baechle8213bbf2008-07-20 13:16:46 +0100250 PTR sysm_pipe
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251 PTR compat_sys_times
252 PTR sys_ni_syscall
253 PTR sys_brk /* 4045 */
254 PTR sys_setgid
255 PTR sys_getgid
256 PTR sys_ni_syscall /* was signal 2 */
257 PTR sys_geteuid
258 PTR sys_getegid /* 4050 */
259 PTR sys_acct
260 PTR sys_umount
261 PTR sys_ni_syscall
262 PTR compat_sys_ioctl
263 PTR compat_sys_fcntl /* 4055 */
264 PTR sys_ni_syscall
265 PTR sys_setpgid
266 PTR sys_ni_syscall
267 PTR sys_olduname
268 PTR sys_umask /* 4060 */
269 PTR sys_chroot
Christoph Hellwig2b1c6bd2008-11-28 10:09:09 +0100270 PTR compat_sys_ustat
Linus Torvalds1da177e2005-04-16 15:20:36 -0700271 PTR sys_dup2
272 PTR sys_getppid
273 PTR sys_getpgrp /* 4065 */
274 PTR sys_setsid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000275 PTR sys_32_sigaction
Linus Torvalds1da177e2005-04-16 15:20:36 -0700276 PTR sys_sgetmask
277 PTR sys_ssetmask
278 PTR sys_setreuid /* 4070 */
279 PTR sys_setregid
280 PTR sys32_sigsuspend
281 PTR compat_sys_sigpending
282 PTR sys_sethostname
283 PTR compat_sys_setrlimit /* 4075 */
284 PTR compat_sys_getrlimit
285 PTR compat_sys_getrusage
Christoph Hellwigb418da12008-10-15 22:02:06 -0700286 PTR compat_sys_gettimeofday
287 PTR compat_sys_settimeofday
Linus Torvalds1da177e2005-04-16 15:20:36 -0700288 PTR sys_getgroups /* 4080 */
289 PTR sys_setgroups
290 PTR sys_ni_syscall /* old_select */
291 PTR sys_symlink
292 PTR sys_ni_syscall /* was sys_lstat */
293 PTR sys_readlink /* 4085 */
294 PTR sys_uselib
295 PTR sys_swapon
296 PTR sys_reboot
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900297 PTR compat_sys_old_readdir
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000298 PTR sys_mips_mmap /* 4090 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700299 PTR sys_munmap
Al Viro3f6d0782013-02-24 13:49:08 -0500300 PTR compat_sys_truncate
301 PTR compat_sys_ftruncate
Linus Torvalds1da177e2005-04-16 15:20:36 -0700302 PTR sys_fchmod
303 PTR sys_fchown /* 4095 */
304 PTR sys_getpriority
305 PTR sys_setpriority
306 PTR sys_ni_syscall
307 PTR compat_sys_statfs
308 PTR compat_sys_fstatfs /* 4100 */
309 PTR sys_ni_syscall /* sys_ioperm */
Ralf Baechle08274ce2007-02-27 01:11:28 +0000310 PTR compat_sys_socketcall
Linus Torvalds1da177e2005-04-16 15:20:36 -0700311 PTR sys_syslog
312 PTR compat_sys_setitimer
313 PTR compat_sys_getitimer /* 4105 */
314 PTR compat_sys_newstat
315 PTR compat_sys_newlstat
316 PTR compat_sys_newfstat
317 PTR sys_uname
318 PTR sys_ni_syscall /* sys_ioperm *//* 4110 */
319 PTR sys_vhangup
320 PTR sys_ni_syscall /* was sys_idle */
321 PTR sys_ni_syscall /* sys_vm86 */
Ralf Baechleb6e203d2005-02-16 21:18:52 +0000322 PTR compat_sys_wait4
Linus Torvalds1da177e2005-04-16 15:20:36 -0700323 PTR sys_swapoff /* 4115 */
Kyle McMartind4d23ad2007-02-10 01:46:00 -0800324 PTR compat_sys_sysinfo
Al Viro56e41d32013-01-21 23:15:25 -0500325 PTR compat_sys_ipc
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326 PTR sys_fsync
327 PTR sys32_sigreturn
Al Viro50150d22012-12-27 12:11:46 -0500328 PTR __sys_clone /* 4120 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700329 PTR sys_setdomainname
Christoph Hellwige28cbf22010-03-10 15:21:19 -0800330 PTR sys_newuname
Linus Torvalds1da177e2005-04-16 15:20:36 -0700331 PTR sys_ni_syscall /* sys_modify_ldt */
Stephen Rothwell3158e942006-03-26 01:37:29 -0800332 PTR compat_sys_adjtimex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700333 PTR sys_mprotect /* 4125 */
334 PTR compat_sys_sigprocmask
335 PTR sys_ni_syscall /* was creat_module */
336 PTR sys_init_module
337 PTR sys_delete_module
338 PTR sys_ni_syscall /* 4130, get_kernel_syms */
339 PTR sys_quotactl
340 PTR sys_getpgid
341 PTR sys_fchdir
342 PTR sys_bdflush
343 PTR sys_sysfs /* 4135 */
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000344 PTR sys_32_personality
Ralf Baechle70342282013-01-22 12:59:30 +0100345 PTR sys_ni_syscall /* for afs_syscall */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700346 PTR sys_setfsuid
347 PTR sys_setfsgid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000348 PTR sys_32_llseek /* 4140 */
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900349 PTR compat_sys_getdents
Linus Torvalds1da177e2005-04-16 15:20:36 -0700350 PTR compat_sys_select
351 PTR sys_flock
352 PTR sys_msync
353 PTR compat_sys_readv /* 4145 */
354 PTR compat_sys_writev
355 PTR sys_cacheflush
356 PTR sys_cachectl
357 PTR sys_sysmips
358 PTR sys_ni_syscall /* 4150 */
359 PTR sys_getsid
360 PTR sys_fdatasync
Eric W. Biedermanaff639c2009-04-03 00:46:47 -0700361 PTR compat_sys_sysctl
Linus Torvalds1da177e2005-04-16 15:20:36 -0700362 PTR sys_mlock
363 PTR sys_munlock /* 4155 */
364 PTR sys_mlockall
365 PTR sys_munlockall
366 PTR sys_sched_setparam
367 PTR sys_sched_getparam
Ralf Baechle70342282013-01-22 12:59:30 +0100368 PTR sys_sched_setscheduler /* 4160 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700369 PTR sys_sched_getscheduler
370 PTR sys_sched_yield
371 PTR sys_sched_get_priority_max
372 PTR sys_sched_get_priority_min
Linus Torvaldsaebb2af2013-03-02 07:44:16 -0800373 PTR compat_sys_sched_rr_get_interval /* 4165 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700374 PTR compat_sys_nanosleep
375 PTR sys_mremap
376 PTR sys_accept
377 PTR sys_bind
378 PTR sys_connect /* 4170 */
379 PTR sys_getpeername
380 PTR sys_getsockname
381 PTR sys_getsockopt
382 PTR sys_listen
Johannes Berg1dacc762009-07-01 11:26:02 +0000383 PTR compat_sys_recv /* 4175 */
384 PTR compat_sys_recvfrom
Linus Torvalds1da177e2005-04-16 15:20:36 -0700385 PTR compat_sys_recvmsg
386 PTR sys_send
387 PTR compat_sys_sendmsg
388 PTR sys_sendto /* 4180 */
389 PTR compat_sys_setsockopt
390 PTR sys_shutdown
391 PTR sys_socket
392 PTR sys_socketpair
393 PTR sys_setresuid /* 4185 */
394 PTR sys_getresuid
395 PTR sys_ni_syscall /* was query_module */
396 PTR sys_poll
NeilBrownf5b94092011-08-26 18:03:11 -0400397 PTR sys_ni_syscall /* was nfsservctl */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700398 PTR sys_setresgid /* 4190 */
399 PTR sys_getresgid
400 PTR sys_prctl
401 PTR sys32_rt_sigreturn
Al Viroaa584802012-12-25 18:55:27 -0500402 PTR compat_sys_rt_sigaction
Linus Torvaldsaebb2af2013-03-02 07:44:16 -0800403 PTR compat_sys_rt_sigprocmask /* 4195 */
Al Viro45cb66f2012-12-25 15:00:46 -0500404 PTR compat_sys_rt_sigpending
Linus Torvalds1da177e2005-04-16 15:20:36 -0700405 PTR compat_sys_rt_sigtimedwait
Al Viroea5d83d2012-12-25 15:49:15 -0500406 PTR compat_sys_rt_sigqueueinfo
Al Virobde208d2012-11-25 01:36:15 -0500407 PTR compat_sys_rt_sigsuspend
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000408 PTR sys_32_pread /* 4200 */
409 PTR sys_32_pwrite
Linus Torvalds1da177e2005-04-16 15:20:36 -0700410 PTR sys_chown
411 PTR sys_getcwd
412 PTR sys_capget
413 PTR sys_capset /* 4205 */
Al Viroea536ad2012-12-23 03:13:40 -0500414 PTR compat_sys_sigaltstack
Al Viro19f4fc32013-02-24 02:17:03 -0500415 PTR compat_sys_sendfile
Linus Torvalds1da177e2005-04-16 15:20:36 -0700416 PTR sys_ni_syscall
417 PTR sys_ni_syscall
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000418 PTR sys_mips_mmap2 /* 4210 */
419 PTR sys_32_truncate64
420 PTR sys_32_ftruncate64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700421 PTR sys_newstat
422 PTR sys_newlstat
423 PTR sys_newfstat /* 4215 */
424 PTR sys_pivot_root
425 PTR sys_mincore
426 PTR sys_madvise
427 PTR sys_getdents64
428 PTR compat_sys_fcntl64 /* 4220 */
429 PTR sys_ni_syscall
430 PTR sys_gettid
431 PTR sys32_readahead
432 PTR sys_setxattr
433 PTR sys_lsetxattr /* 4225 */
434 PTR sys_fsetxattr
435 PTR sys_getxattr
436 PTR sys_lgetxattr
437 PTR sys_fgetxattr
438 PTR sys_listxattr /* 4230 */
439 PTR sys_llistxattr
440 PTR sys_flistxattr
441 PTR sys_removexattr
442 PTR sys_lremovexattr
443 PTR sys_fremovexattr /* 4235 */
444 PTR sys_tkill
445 PTR sys_sendfile64
Al Viro5e392b8d2012-12-25 23:22:15 -0500446 PTR compat_sys_futex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700447 PTR compat_sys_sched_setaffinity
448 PTR compat_sys_sched_getaffinity /* 4240 */
Michel Thebeaue2cc5022010-09-28 14:15:37 -0400449 PTR compat_sys_io_setup
Linus Torvalds1da177e2005-04-16 15:20:36 -0700450 PTR sys_io_destroy
Michel Thebeaue2cc5022010-09-28 14:15:37 -0400451 PTR compat_sys_io_getevents
452 PTR compat_sys_io_submit
Linus Torvalds1da177e2005-04-16 15:20:36 -0700453 PTR sys_io_cancel /* 4245 */
454 PTR sys_exit_group
Al Virod5dc77b2013-02-25 18:42:04 -0500455 PTR compat_sys_lookup_dcookie
Linus Torvalds1da177e2005-04-16 15:20:36 -0700456 PTR sys_epoll_create
457 PTR sys_epoll_ctl
458 PTR sys_epoll_wait /* 4250 */
459 PTR sys_remap_file_pages
460 PTR sys_set_tid_address
461 PTR sys_restart_syscall
Atsushi Nemoto8676d2e2007-05-18 00:46:13 +0900462 PTR sys32_fadvise64_64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700463 PTR compat_sys_statfs64 /* 4255 */
464 PTR compat_sys_fstatfs64
Ralf Baechle821d3132007-02-27 01:21:17 +0000465 PTR compat_sys_timer_create
Linus Torvalds1da177e2005-04-16 15:20:36 -0700466 PTR compat_sys_timer_settime
467 PTR compat_sys_timer_gettime
468 PTR sys_timer_getoverrun /* 4260 */
469 PTR sys_timer_delete
470 PTR compat_sys_clock_settime
471 PTR compat_sys_clock_gettime
472 PTR compat_sys_clock_getres
473 PTR compat_sys_clock_nanosleep /* 4265 */
474 PTR sys_tgkill
475 PTR compat_sys_utimes
Huacai Chen1ff1ad62014-06-26 11:41:29 +0800476 PTR compat_sys_mbind
477 PTR compat_sys_get_mempolicy
478 PTR compat_sys_set_mempolicy /* 4270 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700479 PTR compat_sys_mq_open
480 PTR sys_mq_unlink
481 PTR compat_sys_mq_timedsend
482 PTR compat_sys_mq_timedreceive
483 PTR compat_sys_mq_notify /* 4275 */
484 PTR compat_sys_mq_getsetattr
485 PTR sys_ni_syscall /* sys_vserver */
Al Viro1c37ea822012-12-23 15:06:31 -0500486 PTR compat_sys_waitid
Linus Torvalds1da177e2005-04-16 15:20:36 -0700487 PTR sys_ni_syscall /* available, was setaltroot */
488 PTR sys_add_key /* 4280 */
489 PTR sys_request_key
490 PTR sys_keyctl
Ralf Baechle3c370262005-04-13 17:43:59 +0000491 PTR sys_set_thread_area
Ralf Baechle7db36c82005-07-13 11:48:45 +0000492 PTR sys_inotify_init
493 PTR sys_inotify_add_watch /* 4285 */
494 PTR sys_inotify_rm_watch
Huacai Chen1ff1ad62014-06-26 11:41:29 +0800495 PTR compat_sys_migrate_pages
Ralf Baechle72bf8912006-02-08 13:38:50 +0000496 PTR compat_sys_openat
497 PTR sys_mkdirat
498 PTR sys_mknodat /* 4290 */
499 PTR sys_fchownat
500 PTR compat_sys_futimesat
Richard Sandiford63415db2006-09-17 20:30:46 +0100501 PTR sys_newfstatat
Ralf Baechle72bf8912006-02-08 13:38:50 +0000502 PTR sys_unlinkat
503 PTR sys_renameat /* 4295 */
504 PTR sys_linkat
505 PTR sys_symlinkat
506 PTR sys_readlinkat
507 PTR sys_fchmodat
508 PTR sys_faccessat /* 4300 */
Joseph S. Myers99d233f2007-01-10 12:30:50 +0000509 PTR compat_sys_pselect6
Arnaud Patard049a31a2009-10-20 10:27:47 +0200510 PTR compat_sys_ppoll
Ralf Baechle72bf8912006-02-08 13:38:50 +0000511 PTR sys_unshare
Ralf Baechlef115da92006-03-31 09:27:20 +0100512 PTR sys_splice
Ralf Baechlea8d587a2006-04-01 07:49:21 +0100513 PTR sys32_sync_file_range /* 4305 */
Ralf Baechle136d47d2006-04-15 11:16:19 +0200514 PTR sys_tee
Ralf Baechle8d13cb22008-12-03 17:03:27 +0000515 PTR compat_sys_vmsplice
Ralf Baechle722cfd92006-07-02 16:31:14 +0100516 PTR compat_sys_move_pages
Atsushi Nemoto7fdeb042006-09-06 22:42:02 +0900517 PTR compat_sys_set_robust_list
518 PTR compat_sys_get_robust_list /* 4310 */
Nicolas Schichan583bb862006-10-18 15:14:55 +0200519 PTR compat_sys_kexec_load
Ralf Baechle991ea262006-10-29 21:07:40 +0000520 PTR sys_getcpu
Ralf Baechlee016c382007-02-24 21:15:11 +0000521 PTR compat_sys_epoll_pwait
Ralf Baechle08253b32007-03-06 17:04:49 +0000522 PTR sys_ioprio_set
523 PTR sys_ioprio_get /* 4315 */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900524 PTR compat_sys_utimensat
525 PTR compat_sys_signalfd
Ralf Baechle8bdd5142011-04-13 20:50:46 +0200526 PTR sys_ni_syscall /* was timerfd */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900527 PTR sys_eventfd
Kyle McMartin422efb12007-09-28 13:15:20 -0400528 PTR sys32_fallocate /* 4320 */
Dmitri Vorobiev6783fe62008-02-19 00:02:37 +0300529 PTR sys_timerfd_create
David Daneyc7d16732009-04-16 09:20:17 -0700530 PTR compat_sys_timerfd_gettime
531 PTR compat_sys_timerfd_settime
Ralf Baechle3885b712008-07-31 11:16:43 +0100532 PTR compat_sys_signalfd4
533 PTR sys_eventfd2 /* 4325 */
534 PTR sys_epoll_create1
535 PTR sys_dup3
536 PTR sys_pipe2
537 PTR sys_inotify_init1
Ralf Baechleddd9e912009-04-02 16:59:24 -0700538 PTR compat_sys_preadv /* 4330 */
539 PTR compat_sys_pwritev
David Daney69f16c92009-06-26 09:53:57 -0700540 PTR compat_sys_rt_tgsigqueueinfo
Ingo Molnarcdd6c482009-09-21 12:02:48 +0200541 PTR sys_perf_event_open
Ralf Baechle54822de2009-08-03 17:27:19 +0100542 PTR sys_accept4
David Daney5e844b32010-08-23 14:10:37 -0700543 PTR compat_sys_recvmmsg /* 4335 */
544 PTR sys_fanotify_init
Al Viro91c2e0b2013-03-05 20:10:59 -0500545 PTR compat_sys_fanotify_mark
David Daney5e844b32010-08-23 14:10:37 -0700546 PTR sys_prlimit64
David Daney84ed9432011-03-18 10:37:23 -0700547 PTR sys_name_to_handle_at
548 PTR compat_sys_open_by_handle_at /* 4340 */
549 PTR compat_sys_clock_adjtime
Ralf Baechle1bbf2872011-03-25 18:45:20 +0100550 PTR sys_syncfs
Ralf Baechleb12acf12011-05-28 13:22:58 +0100551 PTR compat_sys_sendmmsg
Eric W. Biederman7b21fdd2011-05-27 19:28:27 -0700552 PTR sys_setns
David Daney8ff85842011-11-08 14:54:55 -0800553 PTR compat_sys_process_vm_readv /* 4345 */
554 PTR compat_sys_process_vm_writev
Ralf Baechlece71d242012-09-14 22:47:15 +0200555 PTR sys_kcmp
Ralf Baechle62951502012-12-28 17:02:56 +0100556 PTR sys_finit_module
James Hogan67762542014-02-04 12:29:01 +0000557 PTR sys_sched_setattr
558 PTR sys_sched_getattr /* 4350 */
Ralf Baechle367f0b52014-05-13 17:56:41 +0200559 PTR sys_renameat2
Ralf Baechle2a9c2752012-07-12 14:01:31 +0200560 .size sys32_call_table,.-sys32_call_table