blob: 66d618bb2fa2d4abdcd4ebfe65979a89d2340f7d [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
Ralf Baechle7928eb02015-07-08 04:49:10 +020072load_a4: lw a4, 16(t0) # argument #5 from usp
73load_a5: lw a5, 20(t0) # argument #6 from usp
74load_a6: lw a6, 24(t0) # argument #7 from usp
75load_a7: lw a7, 28(t0) # argument #8 from usp
76loads_done:
Linus Torvalds1da177e2005-04-16 15:20:36 -070077
78 .section __ex_table,"a"
Ralf Baechle7928eb02015-07-08 04:49:10 +020079 PTR load_a4, bad_stack_a4
80 PTR load_a5, bad_stack_a5
81 PTR load_a6, bad_stack_a6
82 PTR load_a7, bad_stack_a7
Linus Torvalds1da177e2005-04-16 15:20:36 -070083 .previous
84
Ralf Baechlee7f3b482013-05-29 01:02:18 +020085 li t1, _TIF_WORK_SYSCALL_ENTRY
Linus Torvalds1da177e2005-04-16 15:20:36 -070086 LONG_L t0, TI_FLAGS($28) # syscall tracing enabled?
87 and t0, t1, t0
88 bnez t0, trace_a_syscall
89
90 jalr t2 # Do The Real Thing (TM)
91
92 li t0, -EMAXERRNO - 1 # error?
93 sltu t0, t0, v0
94 sd t0, PT_R7(sp) # set error flag
95 beqz t0, 1f
96
Al Viro8f5a00eb2010-09-28 18:50:37 +010097 ld t1, PT_R2(sp) # syscall number
Linus Torvalds1da177e2005-04-16 15:20:36 -070098 dnegu v0 # error
Al Viro8f5a00eb2010-09-28 18:50:37 +010099 sd t1, PT_R0(sp) # save it for syscall restarting
Linus Torvalds1da177e2005-04-16 15:20:36 -07001001: sd v0, PT_R2(sp) # result
101
102o32_syscall_exit:
Al Viro02f884e2012-05-05 16:11:35 -0400103 j syscall_exit_partial
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104
105/* ------------------------------------------------------------------------ */
106
107trace_a_syscall:
108 SAVE_STATIC
109 sd a4, PT_R8(sp) # Save argument registers
110 sd a5, PT_R9(sp)
111 sd a6, PT_R10(sp)
112 sd a7, PT_R11(sp) # For indirect syscalls
113
114 move s0, t2 # Save syscall pointer
115 move a0, sp
Markos Chandras4c21b8f2014-01-22 14:40:03 +0000116 /*
Markos Chandrasad61ba22014-07-24 12:10:02 +0100117 * absolute syscall number is in v0 unless we called syscall(__NR_###)
Markos Chandras4c21b8f2014-01-22 14:40:03 +0000118 * where the real syscall number is in a0
119 * note: NR_syscall is the first O32 syscall but the macro is
120 * only defined when compiling with -mabi=32 (CONFIG_32BIT)
121 * therefore __NR_O32_Linux is used (4000)
122 */
Markos Chandrasad61ba22014-07-24 12:10:02 +0100123 .set push
124 .set reorder
125 subu t1, v0, __NR_O32_Linux
126 move a1, v0
127 bnez t1, 1f /* __NR_syscall at offset 0 */
128 lw a1, PT_R4(sp) /* Arg1 for __NR_syscall case */
129 .set pop
Markos Chandras4c21b8f2014-01-22 14:40:03 +0000130
1311: jal syscall_trace_enter
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132
Markos Chandras9d37c402014-01-22 14:40:02 +0000133 bltz v0, 2f # seccomp failed? Skip syscall
134
Ralf Baechle04a70522005-11-30 16:24:57 +0000135 move t0, s0
136 RESTORE_STATIC
Linus Torvalds1da177e2005-04-16 15:20:36 -0700137 ld a0, PT_R4(sp) # Restore argument registers
138 ld a1, PT_R5(sp)
139 ld a2, PT_R6(sp)
140 ld a3, PT_R7(sp)
141 ld a4, PT_R8(sp)
142 ld a5, PT_R9(sp)
143 ld a6, PT_R10(sp)
144 ld a7, PT_R11(sp) # For indirect syscalls
Ralf Baechle04a70522005-11-30 16:24:57 +0000145 jalr t0
Linus Torvalds1da177e2005-04-16 15:20:36 -0700146
147 li t0, -EMAXERRNO - 1 # error?
148 sltu t0, t0, v0
149 sd t0, PT_R7(sp) # set error flag
150 beqz t0, 1f
151
Al Viro8f5a00eb2010-09-28 18:50:37 +0100152 ld t1, PT_R2(sp) # syscall number
Linus Torvalds1da177e2005-04-16 15:20:36 -0700153 dnegu v0 # error
Al Viro8f5a00eb2010-09-28 18:50:37 +0100154 sd t1, PT_R0(sp) # save it for syscall restarting
Linus Torvalds1da177e2005-04-16 15:20:36 -07001551: sd v0, PT_R2(sp) # result
156
Markos Chandras9d37c402014-01-22 14:40:02 +00001572: j syscall_exit
Linus Torvalds1da177e2005-04-16 15:20:36 -0700158
159/* ------------------------------------------------------------------------ */
160
161 /*
162 * The stackpointer for a call with more than 4 arguments is bad.
163 */
164bad_stack:
Al Viro5b89c002010-09-28 18:50:47 +0100165 li v0, EFAULT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166 sd v0, PT_R2(sp)
167 li t0, 1 # set error flag
168 sd t0, PT_R7(sp)
169 j o32_syscall_exit
170
Ralf Baechle7928eb02015-07-08 04:49:10 +0200171bad_stack_a4:
172 li a4, 0
173 b load_a5
174
175bad_stack_a5:
176 li a5, 0
177 b load_a6
178
179bad_stack_a6:
180 li a6, 0
181 b load_a7
182
183bad_stack_a7:
184 li a7, 0
185 b loads_done
186
Linus Torvalds1da177e2005-04-16 15:20:36 -0700187not_o32_scall:
188 /*
189 * This is not an o32 compatibility syscall, pass it on
190 * to the 64-bit syscall handlers.
191 */
192#ifdef CONFIG_MIPS32_N32
193 j handle_sysn32
194#else
195 j handle_sys64
196#endif
197 END(handle_sys)
198
199LEAF(sys32_syscall)
Vlad Malove807f952008-11-18 15:05:46 -0800200 subu t0, a0, __NR_O32_Linux # check syscall number
201 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
202 beqz t0, einval # do not recurse
203 dsll t1, t0, 3
Linus Torvalds1da177e2005-04-16 15:20:36 -0700204 beqz v0, einval
Ralf Baechle2a9c2752012-07-12 14:01:31 +0200205 ld t2, sys32_call_table(t1) # syscall routine
Ed Swierke967ef02015-01-12 21:10:30 -0800206 sd a0, PT_R2(sp) # call routine directly on restart
Linus Torvalds1da177e2005-04-16 15:20:36 -0700207
208 move a0, a1 # shift argument registers
209 move a1, a2
210 move a2, a3
211 move a3, a4
212 move a4, a5
213 move a5, a6
214 move a6, a7
215 sd a0, PT_R4(sp) # ... and push back a0 - a3, some
216 sd a1, PT_R5(sp) # syscalls expect them there
217 sd a2, PT_R6(sp)
218 sd a3, PT_R7(sp)
219 sd a3, PT_R26(sp) # update a3 for syscall restarting
220 jr t2
221 /* Unreached */
222
Ralf Baechle70342282013-01-22 12:59:30 +0100223einval: li v0, -ENOSYS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700224 jr ra
225 END(sys32_syscall)
226
227 .align 3
Ralf Baechle2a9c2752012-07-12 14:01:31 +0200228 .type sys32_call_table,@object
229EXPORT(sys32_call_table)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700230 PTR sys32_syscall /* 4000 */
231 PTR sys_exit
Al Viro50150d22012-12-27 12:11:46 -0500232 PTR __sys_fork
Linus Torvalds1da177e2005-04-16 15:20:36 -0700233 PTR sys_read
234 PTR sys_write
Thiemo Seufer71552622006-05-28 15:02:53 +0100235 PTR compat_sys_open /* 4005 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700236 PTR sys_close
237 PTR sys_waitpid
238 PTR sys_creat
239 PTR sys_link
240 PTR sys_unlink /* 4010 */
Ralf Baechlebaf9ff72012-10-09 21:16:07 +0200241 PTR compat_sys_execve
Linus Torvalds1da177e2005-04-16 15:20:36 -0700242 PTR sys_chdir
243 PTR compat_sys_time
244 PTR sys_mknod
245 PTR sys_chmod /* 4015 */
246 PTR sys_lchown
247 PTR sys_ni_syscall
248 PTR sys_ni_syscall /* was sys_stat */
249 PTR sys_lseek
250 PTR sys_getpid /* 4020 */
Ralf Baechle089c7e72006-10-16 16:49:37 +0100251 PTR compat_sys_mount
Linus Torvalds1da177e2005-04-16 15:20:36 -0700252 PTR sys_oldumount
253 PTR sys_setuid
254 PTR sys_getuid
255 PTR compat_sys_stime /* 4025 */
Thomas Bogendoerfer5d9a76c2008-08-17 16:49:25 +0200256 PTR compat_sys_ptrace
Linus Torvalds1da177e2005-04-16 15:20:36 -0700257 PTR sys_alarm
258 PTR sys_ni_syscall /* was sys_fstat */
259 PTR sys_pause
260 PTR compat_sys_utime /* 4030 */
261 PTR sys_ni_syscall
262 PTR sys_ni_syscall
263 PTR sys_access
264 PTR sys_nice
265 PTR sys_ni_syscall /* 4035 */
266 PTR sys_sync
267 PTR sys_kill
268 PTR sys_rename
269 PTR sys_mkdir
270 PTR sys_rmdir /* 4040 */
271 PTR sys_dup
Ralf Baechle8213bbf2008-07-20 13:16:46 +0100272 PTR sysm_pipe
Linus Torvalds1da177e2005-04-16 15:20:36 -0700273 PTR compat_sys_times
274 PTR sys_ni_syscall
275 PTR sys_brk /* 4045 */
276 PTR sys_setgid
277 PTR sys_getgid
278 PTR sys_ni_syscall /* was signal 2 */
279 PTR sys_geteuid
280 PTR sys_getegid /* 4050 */
281 PTR sys_acct
282 PTR sys_umount
283 PTR sys_ni_syscall
284 PTR compat_sys_ioctl
285 PTR compat_sys_fcntl /* 4055 */
286 PTR sys_ni_syscall
287 PTR sys_setpgid
288 PTR sys_ni_syscall
289 PTR sys_olduname
290 PTR sys_umask /* 4060 */
291 PTR sys_chroot
Christoph Hellwig2b1c6bd2008-11-28 10:09:09 +0100292 PTR compat_sys_ustat
Linus Torvalds1da177e2005-04-16 15:20:36 -0700293 PTR sys_dup2
294 PTR sys_getppid
295 PTR sys_getpgrp /* 4065 */
296 PTR sys_setsid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000297 PTR sys_32_sigaction
Linus Torvalds1da177e2005-04-16 15:20:36 -0700298 PTR sys_sgetmask
299 PTR sys_ssetmask
300 PTR sys_setreuid /* 4070 */
301 PTR sys_setregid
302 PTR sys32_sigsuspend
303 PTR compat_sys_sigpending
304 PTR sys_sethostname
305 PTR compat_sys_setrlimit /* 4075 */
306 PTR compat_sys_getrlimit
307 PTR compat_sys_getrusage
Christoph Hellwigb418da12008-10-15 22:02:06 -0700308 PTR compat_sys_gettimeofday
309 PTR compat_sys_settimeofday
Linus Torvalds1da177e2005-04-16 15:20:36 -0700310 PTR sys_getgroups /* 4080 */
311 PTR sys_setgroups
312 PTR sys_ni_syscall /* old_select */
313 PTR sys_symlink
314 PTR sys_ni_syscall /* was sys_lstat */
315 PTR sys_readlink /* 4085 */
316 PTR sys_uselib
317 PTR sys_swapon
318 PTR sys_reboot
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900319 PTR compat_sys_old_readdir
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000320 PTR sys_mips_mmap /* 4090 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700321 PTR sys_munmap
Al Viro3f6d0782013-02-24 13:49:08 -0500322 PTR compat_sys_truncate
323 PTR compat_sys_ftruncate
Linus Torvalds1da177e2005-04-16 15:20:36 -0700324 PTR sys_fchmod
325 PTR sys_fchown /* 4095 */
326 PTR sys_getpriority
327 PTR sys_setpriority
328 PTR sys_ni_syscall
329 PTR compat_sys_statfs
330 PTR compat_sys_fstatfs /* 4100 */
331 PTR sys_ni_syscall /* sys_ioperm */
Ralf Baechle08274ce2007-02-27 01:11:28 +0000332 PTR compat_sys_socketcall
Linus Torvalds1da177e2005-04-16 15:20:36 -0700333 PTR sys_syslog
334 PTR compat_sys_setitimer
335 PTR compat_sys_getitimer /* 4105 */
336 PTR compat_sys_newstat
337 PTR compat_sys_newlstat
338 PTR compat_sys_newfstat
339 PTR sys_uname
340 PTR sys_ni_syscall /* sys_ioperm *//* 4110 */
341 PTR sys_vhangup
342 PTR sys_ni_syscall /* was sys_idle */
343 PTR sys_ni_syscall /* sys_vm86 */
Ralf Baechleb6e203d2005-02-16 21:18:52 +0000344 PTR compat_sys_wait4
Linus Torvalds1da177e2005-04-16 15:20:36 -0700345 PTR sys_swapoff /* 4115 */
Kyle McMartind4d23ad2007-02-10 01:46:00 -0800346 PTR compat_sys_sysinfo
Al Viro56e41d32013-01-21 23:15:25 -0500347 PTR compat_sys_ipc
Linus Torvalds1da177e2005-04-16 15:20:36 -0700348 PTR sys_fsync
349 PTR sys32_sigreturn
Al Viro50150d22012-12-27 12:11:46 -0500350 PTR __sys_clone /* 4120 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700351 PTR sys_setdomainname
Christoph Hellwige28cbf22010-03-10 15:21:19 -0800352 PTR sys_newuname
Linus Torvalds1da177e2005-04-16 15:20:36 -0700353 PTR sys_ni_syscall /* sys_modify_ldt */
Stephen Rothwell3158e942006-03-26 01:37:29 -0800354 PTR compat_sys_adjtimex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700355 PTR sys_mprotect /* 4125 */
356 PTR compat_sys_sigprocmask
357 PTR sys_ni_syscall /* was creat_module */
358 PTR sys_init_module
359 PTR sys_delete_module
360 PTR sys_ni_syscall /* 4130, get_kernel_syms */
361 PTR sys_quotactl
362 PTR sys_getpgid
363 PTR sys_fchdir
364 PTR sys_bdflush
365 PTR sys_sysfs /* 4135 */
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000366 PTR sys_32_personality
Ralf Baechle70342282013-01-22 12:59:30 +0100367 PTR sys_ni_syscall /* for afs_syscall */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700368 PTR sys_setfsuid
369 PTR sys_setfsgid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000370 PTR sys_32_llseek /* 4140 */
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900371 PTR compat_sys_getdents
Linus Torvalds1da177e2005-04-16 15:20:36 -0700372 PTR compat_sys_select
373 PTR sys_flock
374 PTR sys_msync
375 PTR compat_sys_readv /* 4145 */
376 PTR compat_sys_writev
377 PTR sys_cacheflush
378 PTR sys_cachectl
379 PTR sys_sysmips
380 PTR sys_ni_syscall /* 4150 */
381 PTR sys_getsid
382 PTR sys_fdatasync
Eric W. Biedermanaff639c2009-04-03 00:46:47 -0700383 PTR compat_sys_sysctl
Linus Torvalds1da177e2005-04-16 15:20:36 -0700384 PTR sys_mlock
385 PTR sys_munlock /* 4155 */
386 PTR sys_mlockall
387 PTR sys_munlockall
388 PTR sys_sched_setparam
389 PTR sys_sched_getparam
Ralf Baechle70342282013-01-22 12:59:30 +0100390 PTR sys_sched_setscheduler /* 4160 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700391 PTR sys_sched_getscheduler
392 PTR sys_sched_yield
393 PTR sys_sched_get_priority_max
394 PTR sys_sched_get_priority_min
Linus Torvaldsaebb2af2013-03-02 07:44:16 -0800395 PTR compat_sys_sched_rr_get_interval /* 4165 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700396 PTR compat_sys_nanosleep
397 PTR sys_mremap
398 PTR sys_accept
399 PTR sys_bind
400 PTR sys_connect /* 4170 */
401 PTR sys_getpeername
402 PTR sys_getsockname
403 PTR sys_getsockopt
404 PTR sys_listen
Johannes Berg1dacc762009-07-01 11:26:02 +0000405 PTR compat_sys_recv /* 4175 */
406 PTR compat_sys_recvfrom
Linus Torvalds1da177e2005-04-16 15:20:36 -0700407 PTR compat_sys_recvmsg
408 PTR sys_send
409 PTR compat_sys_sendmsg
410 PTR sys_sendto /* 4180 */
411 PTR compat_sys_setsockopt
412 PTR sys_shutdown
413 PTR sys_socket
414 PTR sys_socketpair
415 PTR sys_setresuid /* 4185 */
416 PTR sys_getresuid
417 PTR sys_ni_syscall /* was query_module */
418 PTR sys_poll
NeilBrownf5b94092011-08-26 18:03:11 -0400419 PTR sys_ni_syscall /* was nfsservctl */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700420 PTR sys_setresgid /* 4190 */
421 PTR sys_getresgid
422 PTR sys_prctl
423 PTR sys32_rt_sigreturn
Al Viroaa584802012-12-25 18:55:27 -0500424 PTR compat_sys_rt_sigaction
Linus Torvaldsaebb2af2013-03-02 07:44:16 -0800425 PTR compat_sys_rt_sigprocmask /* 4195 */
Al Viro45cb66f2012-12-25 15:00:46 -0500426 PTR compat_sys_rt_sigpending
Linus Torvalds1da177e2005-04-16 15:20:36 -0700427 PTR compat_sys_rt_sigtimedwait
Al Viroea5d83d2012-12-25 15:49:15 -0500428 PTR compat_sys_rt_sigqueueinfo
Al Virobde208d2012-11-25 01:36:15 -0500429 PTR compat_sys_rt_sigsuspend
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000430 PTR sys_32_pread /* 4200 */
431 PTR sys_32_pwrite
Linus Torvalds1da177e2005-04-16 15:20:36 -0700432 PTR sys_chown
433 PTR sys_getcwd
434 PTR sys_capget
435 PTR sys_capset /* 4205 */
Al Viroea536ad2012-12-23 03:13:40 -0500436 PTR compat_sys_sigaltstack
Al Viro19f4fc32013-02-24 02:17:03 -0500437 PTR compat_sys_sendfile
Linus Torvalds1da177e2005-04-16 15:20:36 -0700438 PTR sys_ni_syscall
439 PTR sys_ni_syscall
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000440 PTR sys_mips_mmap2 /* 4210 */
441 PTR sys_32_truncate64
442 PTR sys_32_ftruncate64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700443 PTR sys_newstat
444 PTR sys_newlstat
445 PTR sys_newfstat /* 4215 */
446 PTR sys_pivot_root
447 PTR sys_mincore
448 PTR sys_madvise
449 PTR sys_getdents64
450 PTR compat_sys_fcntl64 /* 4220 */
451 PTR sys_ni_syscall
452 PTR sys_gettid
453 PTR sys32_readahead
454 PTR sys_setxattr
455 PTR sys_lsetxattr /* 4225 */
456 PTR sys_fsetxattr
457 PTR sys_getxattr
458 PTR sys_lgetxattr
459 PTR sys_fgetxattr
460 PTR sys_listxattr /* 4230 */
461 PTR sys_llistxattr
462 PTR sys_flistxattr
463 PTR sys_removexattr
464 PTR sys_lremovexattr
465 PTR sys_fremovexattr /* 4235 */
466 PTR sys_tkill
467 PTR sys_sendfile64
Al Viro5e392b8d2012-12-25 23:22:15 -0500468 PTR compat_sys_futex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700469 PTR compat_sys_sched_setaffinity
470 PTR compat_sys_sched_getaffinity /* 4240 */
Michel Thebeaue2cc5022010-09-28 14:15:37 -0400471 PTR compat_sys_io_setup
Linus Torvalds1da177e2005-04-16 15:20:36 -0700472 PTR sys_io_destroy
Michel Thebeaue2cc5022010-09-28 14:15:37 -0400473 PTR compat_sys_io_getevents
474 PTR compat_sys_io_submit
Linus Torvalds1da177e2005-04-16 15:20:36 -0700475 PTR sys_io_cancel /* 4245 */
476 PTR sys_exit_group
Al Virod5dc77b2013-02-25 18:42:04 -0500477 PTR compat_sys_lookup_dcookie
Linus Torvalds1da177e2005-04-16 15:20:36 -0700478 PTR sys_epoll_create
479 PTR sys_epoll_ctl
480 PTR sys_epoll_wait /* 4250 */
481 PTR sys_remap_file_pages
482 PTR sys_set_tid_address
483 PTR sys_restart_syscall
Atsushi Nemoto8676d2e2007-05-18 00:46:13 +0900484 PTR sys32_fadvise64_64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700485 PTR compat_sys_statfs64 /* 4255 */
486 PTR compat_sys_fstatfs64
Ralf Baechle821d3132007-02-27 01:21:17 +0000487 PTR compat_sys_timer_create
Linus Torvalds1da177e2005-04-16 15:20:36 -0700488 PTR compat_sys_timer_settime
489 PTR compat_sys_timer_gettime
490 PTR sys_timer_getoverrun /* 4260 */
491 PTR sys_timer_delete
492 PTR compat_sys_clock_settime
493 PTR compat_sys_clock_gettime
494 PTR compat_sys_clock_getres
495 PTR compat_sys_clock_nanosleep /* 4265 */
496 PTR sys_tgkill
497 PTR compat_sys_utimes
Huacai Chen1ff1ad62014-06-26 11:41:29 +0800498 PTR compat_sys_mbind
499 PTR compat_sys_get_mempolicy
500 PTR compat_sys_set_mempolicy /* 4270 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700501 PTR compat_sys_mq_open
502 PTR sys_mq_unlink
503 PTR compat_sys_mq_timedsend
504 PTR compat_sys_mq_timedreceive
505 PTR compat_sys_mq_notify /* 4275 */
506 PTR compat_sys_mq_getsetattr
507 PTR sys_ni_syscall /* sys_vserver */
Al Viro1c37ea822012-12-23 15:06:31 -0500508 PTR compat_sys_waitid
Linus Torvalds1da177e2005-04-16 15:20:36 -0700509 PTR sys_ni_syscall /* available, was setaltroot */
510 PTR sys_add_key /* 4280 */
511 PTR sys_request_key
512 PTR sys_keyctl
Ralf Baechle3c370262005-04-13 17:43:59 +0000513 PTR sys_set_thread_area
Ralf Baechle7db36c82005-07-13 11:48:45 +0000514 PTR sys_inotify_init
515 PTR sys_inotify_add_watch /* 4285 */
516 PTR sys_inotify_rm_watch
Huacai Chen1ff1ad62014-06-26 11:41:29 +0800517 PTR compat_sys_migrate_pages
Ralf Baechle72bf8912006-02-08 13:38:50 +0000518 PTR compat_sys_openat
519 PTR sys_mkdirat
520 PTR sys_mknodat /* 4290 */
521 PTR sys_fchownat
522 PTR compat_sys_futimesat
Richard Sandiford63415db2006-09-17 20:30:46 +0100523 PTR sys_newfstatat
Ralf Baechle72bf8912006-02-08 13:38:50 +0000524 PTR sys_unlinkat
525 PTR sys_renameat /* 4295 */
526 PTR sys_linkat
527 PTR sys_symlinkat
528 PTR sys_readlinkat
529 PTR sys_fchmodat
530 PTR sys_faccessat /* 4300 */
Joseph S. Myers99d233f2007-01-10 12:30:50 +0000531 PTR compat_sys_pselect6
Arnaud Patard049a31a2009-10-20 10:27:47 +0200532 PTR compat_sys_ppoll
Ralf Baechle72bf8912006-02-08 13:38:50 +0000533 PTR sys_unshare
Ralf Baechlef115da92006-03-31 09:27:20 +0100534 PTR sys_splice
Ralf Baechlea8d587a2006-04-01 07:49:21 +0100535 PTR sys32_sync_file_range /* 4305 */
Ralf Baechle136d47d2006-04-15 11:16:19 +0200536 PTR sys_tee
Ralf Baechle8d13cb22008-12-03 17:03:27 +0000537 PTR compat_sys_vmsplice
Ralf Baechle722cfd92006-07-02 16:31:14 +0100538 PTR compat_sys_move_pages
Atsushi Nemoto7fdeb042006-09-06 22:42:02 +0900539 PTR compat_sys_set_robust_list
540 PTR compat_sys_get_robust_list /* 4310 */
Nicolas Schichan583bb862006-10-18 15:14:55 +0200541 PTR compat_sys_kexec_load
Ralf Baechle991ea262006-10-29 21:07:40 +0000542 PTR sys_getcpu
Ralf Baechlee016c382007-02-24 21:15:11 +0000543 PTR compat_sys_epoll_pwait
Ralf Baechle08253b32007-03-06 17:04:49 +0000544 PTR sys_ioprio_set
545 PTR sys_ioprio_get /* 4315 */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900546 PTR compat_sys_utimensat
547 PTR compat_sys_signalfd
Ralf Baechle8bdd5142011-04-13 20:50:46 +0200548 PTR sys_ni_syscall /* was timerfd */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900549 PTR sys_eventfd
Kyle McMartin422efb12007-09-28 13:15:20 -0400550 PTR sys32_fallocate /* 4320 */
Dmitri Vorobiev6783fe62008-02-19 00:02:37 +0300551 PTR sys_timerfd_create
David Daneyc7d16732009-04-16 09:20:17 -0700552 PTR compat_sys_timerfd_gettime
553 PTR compat_sys_timerfd_settime
Ralf Baechle3885b712008-07-31 11:16:43 +0100554 PTR compat_sys_signalfd4
555 PTR sys_eventfd2 /* 4325 */
556 PTR sys_epoll_create1
557 PTR sys_dup3
558 PTR sys_pipe2
559 PTR sys_inotify_init1
Ralf Baechleddd9e912009-04-02 16:59:24 -0700560 PTR compat_sys_preadv /* 4330 */
561 PTR compat_sys_pwritev
David Daney69f16c92009-06-26 09:53:57 -0700562 PTR compat_sys_rt_tgsigqueueinfo
Ingo Molnarcdd6c482009-09-21 12:02:48 +0200563 PTR sys_perf_event_open
Ralf Baechle54822de2009-08-03 17:27:19 +0100564 PTR sys_accept4
David Daney5e844b32010-08-23 14:10:37 -0700565 PTR compat_sys_recvmmsg /* 4335 */
566 PTR sys_fanotify_init
Al Viro91c2e0b2013-03-05 20:10:59 -0500567 PTR compat_sys_fanotify_mark
David Daney5e844b32010-08-23 14:10:37 -0700568 PTR sys_prlimit64
David Daney84ed9432011-03-18 10:37:23 -0700569 PTR sys_name_to_handle_at
570 PTR compat_sys_open_by_handle_at /* 4340 */
571 PTR compat_sys_clock_adjtime
Ralf Baechle1bbf2872011-03-25 18:45:20 +0100572 PTR sys_syncfs
Ralf Baechleb12acf12011-05-28 13:22:58 +0100573 PTR compat_sys_sendmmsg
Eric W. Biederman7b21fdd2011-05-27 19:28:27 -0700574 PTR sys_setns
David Daney8ff85842011-11-08 14:54:55 -0800575 PTR compat_sys_process_vm_readv /* 4345 */
576 PTR compat_sys_process_vm_writev
Ralf Baechlece71d242012-09-14 22:47:15 +0200577 PTR sys_kcmp
Ralf Baechle62951502012-12-28 17:02:56 +0100578 PTR sys_finit_module
James Hogan67762542014-02-04 12:29:01 +0000579 PTR sys_sched_setattr
580 PTR sys_sched_getattr /* 4350 */
Ralf Baechle367f0b52014-05-13 17:56:41 +0200581 PTR sys_renameat2
Kees Cook8855d602014-06-10 15:45:09 -0700582 PTR sys_seccomp
Ralf Baechle42944522014-08-26 03:03:40 +0200583 PTR sys_getrandom
584 PTR sys_memfd_create
Ralf Baechle5df4c8d2014-10-27 03:35:53 +0100585 PTR sys_bpf /* 4355 */
Ralf Baechle389cdc52014-12-17 12:34:04 +0100586 PTR compat_sys_execveat
Ralf Baechle2a9c2752012-07-12 14:01:31 +0200587 .size sys32_call_table,.-sys32_call_table