blob: 20b100f9d3601ce5c850b691e2791b43c49f1bd3 [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
13 * to ABI64 calling convention. 64-bit syscalls are also processed
14 * 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
27 .align 5
28NESTED(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
56 ld t2, (sys_call_table - (__NR_O32_Linux * 8))(t0)
57
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
84 li t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
85 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
Ralf Baechle8b659a32011-05-19 09:21:29 +0100115 jal syscall_trace_enter
Linus Torvalds1da177e2005-04-16 15:20:36 -0700116
Ralf Baechle04a70522005-11-30 16:24:57 +0000117 move t0, s0
118 RESTORE_STATIC
Linus Torvalds1da177e2005-04-16 15:20:36 -0700119 ld a0, PT_R4(sp) # Restore argument registers
120 ld a1, PT_R5(sp)
121 ld a2, PT_R6(sp)
122 ld a3, PT_R7(sp)
123 ld a4, PT_R8(sp)
124 ld a5, PT_R9(sp)
125 ld a6, PT_R10(sp)
126 ld a7, PT_R11(sp) # For indirect syscalls
Ralf Baechle04a70522005-11-30 16:24:57 +0000127 jalr t0
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128
129 li t0, -EMAXERRNO - 1 # error?
130 sltu t0, t0, v0
131 sd t0, PT_R7(sp) # set error flag
132 beqz t0, 1f
133
Al Viro8f5a00eb2010-09-28 18:50:37 +0100134 ld t1, PT_R2(sp) # syscall number
Linus Torvalds1da177e2005-04-16 15:20:36 -0700135 dnegu v0 # error
Al Viro8f5a00eb2010-09-28 18:50:37 +0100136 sd t1, PT_R0(sp) # save it for syscall restarting
Linus Torvalds1da177e2005-04-16 15:20:36 -07001371: sd v0, PT_R2(sp) # result
138
139 j syscall_exit
140
141/* ------------------------------------------------------------------------ */
142
143 /*
144 * The stackpointer for a call with more than 4 arguments is bad.
145 */
146bad_stack:
Al Viro5b89c002010-09-28 18:50:47 +0100147 li v0, EFAULT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700148 sd v0, PT_R2(sp)
149 li t0, 1 # set error flag
150 sd t0, PT_R7(sp)
151 j o32_syscall_exit
152
153not_o32_scall:
154 /*
155 * This is not an o32 compatibility syscall, pass it on
156 * to the 64-bit syscall handlers.
157 */
158#ifdef CONFIG_MIPS32_N32
159 j handle_sysn32
160#else
161 j handle_sys64
162#endif
163 END(handle_sys)
164
165LEAF(sys32_syscall)
Vlad Malove807f952008-11-18 15:05:46 -0800166 subu t0, a0, __NR_O32_Linux # check syscall number
167 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
168 beqz t0, einval # do not recurse
169 dsll t1, t0, 3
Linus Torvalds1da177e2005-04-16 15:20:36 -0700170 beqz v0, einval
Vlad Malove807f952008-11-18 15:05:46 -0800171 ld t2, sys_call_table(t1) # syscall routine
Linus Torvalds1da177e2005-04-16 15:20:36 -0700172
173 move a0, a1 # shift argument registers
174 move a1, a2
175 move a2, a3
176 move a3, a4
177 move a4, a5
178 move a5, a6
179 move a6, a7
180 sd a0, PT_R4(sp) # ... and push back a0 - a3, some
181 sd a1, PT_R5(sp) # syscalls expect them there
182 sd a2, PT_R6(sp)
183 sd a3, PT_R7(sp)
184 sd a3, PT_R26(sp) # update a3 for syscall restarting
185 jr t2
186 /* Unreached */
187
David Daneyc6cb4df2008-10-31 11:23:09 -0700188einval: li v0, -ENOSYS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700189 jr ra
190 END(sys32_syscall)
191
192 .align 3
193 .type sys_call_table,@object
194sys_call_table:
195 PTR sys32_syscall /* 4000 */
196 PTR sys_exit
Al Viro50150d22012-12-27 12:11:46 -0500197 PTR __sys_fork
Linus Torvalds1da177e2005-04-16 15:20:36 -0700198 PTR sys_read
199 PTR sys_write
Thiemo Seufer71552622006-05-28 15:02:53 +0100200 PTR compat_sys_open /* 4005 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700201 PTR sys_close
202 PTR sys_waitpid
203 PTR sys_creat
204 PTR sys_link
205 PTR sys_unlink /* 4010 */
Ralf Baechlebaf9ff72012-10-09 21:16:07 +0200206 PTR compat_sys_execve
Linus Torvalds1da177e2005-04-16 15:20:36 -0700207 PTR sys_chdir
208 PTR compat_sys_time
209 PTR sys_mknod
210 PTR sys_chmod /* 4015 */
211 PTR sys_lchown
212 PTR sys_ni_syscall
213 PTR sys_ni_syscall /* was sys_stat */
214 PTR sys_lseek
215 PTR sys_getpid /* 4020 */
Ralf Baechle089c7e72006-10-16 16:49:37 +0100216 PTR compat_sys_mount
Linus Torvalds1da177e2005-04-16 15:20:36 -0700217 PTR sys_oldumount
218 PTR sys_setuid
219 PTR sys_getuid
220 PTR compat_sys_stime /* 4025 */
Thomas Bogendoerfer5d9a76c2008-08-17 16:49:25 +0200221 PTR compat_sys_ptrace
Linus Torvalds1da177e2005-04-16 15:20:36 -0700222 PTR sys_alarm
223 PTR sys_ni_syscall /* was sys_fstat */
224 PTR sys_pause
225 PTR compat_sys_utime /* 4030 */
226 PTR sys_ni_syscall
227 PTR sys_ni_syscall
228 PTR sys_access
229 PTR sys_nice
230 PTR sys_ni_syscall /* 4035 */
231 PTR sys_sync
232 PTR sys_kill
233 PTR sys_rename
234 PTR sys_mkdir
235 PTR sys_rmdir /* 4040 */
236 PTR sys_dup
Ralf Baechle8213bbf2008-07-20 13:16:46 +0100237 PTR sysm_pipe
Linus Torvalds1da177e2005-04-16 15:20:36 -0700238 PTR compat_sys_times
239 PTR sys_ni_syscall
240 PTR sys_brk /* 4045 */
241 PTR sys_setgid
242 PTR sys_getgid
243 PTR sys_ni_syscall /* was signal 2 */
244 PTR sys_geteuid
245 PTR sys_getegid /* 4050 */
246 PTR sys_acct
247 PTR sys_umount
248 PTR sys_ni_syscall
249 PTR compat_sys_ioctl
250 PTR compat_sys_fcntl /* 4055 */
251 PTR sys_ni_syscall
252 PTR sys_setpgid
253 PTR sys_ni_syscall
254 PTR sys_olduname
255 PTR sys_umask /* 4060 */
256 PTR sys_chroot
Christoph Hellwig2b1c6bd2008-11-28 10:09:09 +0100257 PTR compat_sys_ustat
Linus Torvalds1da177e2005-04-16 15:20:36 -0700258 PTR sys_dup2
259 PTR sys_getppid
260 PTR sys_getpgrp /* 4065 */
261 PTR sys_setsid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000262 PTR sys_32_sigaction
Linus Torvalds1da177e2005-04-16 15:20:36 -0700263 PTR sys_sgetmask
264 PTR sys_ssetmask
265 PTR sys_setreuid /* 4070 */
266 PTR sys_setregid
267 PTR sys32_sigsuspend
268 PTR compat_sys_sigpending
269 PTR sys_sethostname
270 PTR compat_sys_setrlimit /* 4075 */
271 PTR compat_sys_getrlimit
272 PTR compat_sys_getrusage
Christoph Hellwigb418da12008-10-15 22:02:06 -0700273 PTR compat_sys_gettimeofday
274 PTR compat_sys_settimeofday
Linus Torvalds1da177e2005-04-16 15:20:36 -0700275 PTR sys_getgroups /* 4080 */
276 PTR sys_setgroups
277 PTR sys_ni_syscall /* old_select */
278 PTR sys_symlink
279 PTR sys_ni_syscall /* was sys_lstat */
280 PTR sys_readlink /* 4085 */
281 PTR sys_uselib
282 PTR sys_swapon
283 PTR sys_reboot
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900284 PTR compat_sys_old_readdir
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000285 PTR sys_mips_mmap /* 4090 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700286 PTR sys_munmap
Al Viro3f6d0782013-02-24 13:49:08 -0500287 PTR compat_sys_truncate
288 PTR compat_sys_ftruncate
Linus Torvalds1da177e2005-04-16 15:20:36 -0700289 PTR sys_fchmod
290 PTR sys_fchown /* 4095 */
291 PTR sys_getpriority
292 PTR sys_setpriority
293 PTR sys_ni_syscall
294 PTR compat_sys_statfs
295 PTR compat_sys_fstatfs /* 4100 */
296 PTR sys_ni_syscall /* sys_ioperm */
Ralf Baechle08274ce2007-02-27 01:11:28 +0000297 PTR compat_sys_socketcall
Linus Torvalds1da177e2005-04-16 15:20:36 -0700298 PTR sys_syslog
299 PTR compat_sys_setitimer
300 PTR compat_sys_getitimer /* 4105 */
301 PTR compat_sys_newstat
302 PTR compat_sys_newlstat
303 PTR compat_sys_newfstat
304 PTR sys_uname
305 PTR sys_ni_syscall /* sys_ioperm *//* 4110 */
306 PTR sys_vhangup
307 PTR sys_ni_syscall /* was sys_idle */
308 PTR sys_ni_syscall /* sys_vm86 */
Ralf Baechleb6e203d2005-02-16 21:18:52 +0000309 PTR compat_sys_wait4
Linus Torvalds1da177e2005-04-16 15:20:36 -0700310 PTR sys_swapoff /* 4115 */
Kyle McMartind4d23ad2007-02-10 01:46:00 -0800311 PTR compat_sys_sysinfo
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000312 PTR sys_32_ipc
Linus Torvalds1da177e2005-04-16 15:20:36 -0700313 PTR sys_fsync
314 PTR sys32_sigreturn
Al Viro50150d22012-12-27 12:11:46 -0500315 PTR __sys_clone /* 4120 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700316 PTR sys_setdomainname
Christoph Hellwige28cbf22010-03-10 15:21:19 -0800317 PTR sys_newuname
Linus Torvalds1da177e2005-04-16 15:20:36 -0700318 PTR sys_ni_syscall /* sys_modify_ldt */
Stephen Rothwell3158e942006-03-26 01:37:29 -0800319 PTR compat_sys_adjtimex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700320 PTR sys_mprotect /* 4125 */
321 PTR compat_sys_sigprocmask
322 PTR sys_ni_syscall /* was creat_module */
323 PTR sys_init_module
324 PTR sys_delete_module
325 PTR sys_ni_syscall /* 4130, get_kernel_syms */
326 PTR sys_quotactl
327 PTR sys_getpgid
328 PTR sys_fchdir
329 PTR sys_bdflush
330 PTR sys_sysfs /* 4135 */
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000331 PTR sys_32_personality
Linus Torvalds1da177e2005-04-16 15:20:36 -0700332 PTR sys_ni_syscall /* for afs_syscall */
333 PTR sys_setfsuid
334 PTR sys_setfsgid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000335 PTR sys_32_llseek /* 4140 */
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900336 PTR compat_sys_getdents
Linus Torvalds1da177e2005-04-16 15:20:36 -0700337 PTR compat_sys_select
338 PTR sys_flock
339 PTR sys_msync
340 PTR compat_sys_readv /* 4145 */
341 PTR compat_sys_writev
342 PTR sys_cacheflush
343 PTR sys_cachectl
344 PTR sys_sysmips
345 PTR sys_ni_syscall /* 4150 */
346 PTR sys_getsid
347 PTR sys_fdatasync
Eric W. Biedermanaff639c2009-04-03 00:46:47 -0700348 PTR compat_sys_sysctl
Linus Torvalds1da177e2005-04-16 15:20:36 -0700349 PTR sys_mlock
350 PTR sys_munlock /* 4155 */
351 PTR sys_mlockall
352 PTR sys_munlockall
353 PTR sys_sched_setparam
354 PTR sys_sched_getparam
355 PTR sys_sched_setscheduler /* 4160 */
356 PTR sys_sched_getscheduler
357 PTR sys_sched_yield
358 PTR sys_sched_get_priority_max
359 PTR sys_sched_get_priority_min
Al Viro0450d22f2012-12-25 17:33:40 -0500360 PTR compat_sys_sched_rr_get_interval /* 4165 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700361 PTR compat_sys_nanosleep
362 PTR sys_mremap
363 PTR sys_accept
364 PTR sys_bind
365 PTR sys_connect /* 4170 */
366 PTR sys_getpeername
367 PTR sys_getsockname
368 PTR sys_getsockopt
369 PTR sys_listen
Johannes Berg1dacc762009-07-01 11:26:02 +0000370 PTR compat_sys_recv /* 4175 */
371 PTR compat_sys_recvfrom
Linus Torvalds1da177e2005-04-16 15:20:36 -0700372 PTR compat_sys_recvmsg
373 PTR sys_send
374 PTR compat_sys_sendmsg
375 PTR sys_sendto /* 4180 */
376 PTR compat_sys_setsockopt
377 PTR sys_shutdown
378 PTR sys_socket
379 PTR sys_socketpair
380 PTR sys_setresuid /* 4185 */
381 PTR sys_getresuid
382 PTR sys_ni_syscall /* was query_module */
383 PTR sys_poll
NeilBrownf5b94092011-08-26 18:03:11 -0400384 PTR sys_ni_syscall /* was nfsservctl */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700385 PTR sys_setresgid /* 4190 */
386 PTR sys_getresgid
387 PTR sys_prctl
388 PTR sys32_rt_sigreturn
Al Viroaa584802012-12-25 18:55:27 -0500389 PTR compat_sys_rt_sigaction
Al Viro056a0602012-12-25 13:55:50 -0500390 PTR compat_sys_rt_sigprocmask /* 4195 */
Al Viro45cb66f2012-12-25 15:00:46 -0500391 PTR compat_sys_rt_sigpending
Linus Torvalds1da177e2005-04-16 15:20:36 -0700392 PTR compat_sys_rt_sigtimedwait
Al Viroea5d83d2012-12-25 15:49:15 -0500393 PTR compat_sys_rt_sigqueueinfo
Al Virobde208d2012-11-25 01:36:15 -0500394 PTR compat_sys_rt_sigsuspend
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000395 PTR sys_32_pread /* 4200 */
396 PTR sys_32_pwrite
Linus Torvalds1da177e2005-04-16 15:20:36 -0700397 PTR sys_chown
398 PTR sys_getcwd
399 PTR sys_capget
400 PTR sys_capset /* 4205 */
Al Viroea536ad2012-12-23 03:13:40 -0500401 PTR compat_sys_sigaltstack
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000402 PTR sys_32_sendfile
Linus Torvalds1da177e2005-04-16 15:20:36 -0700403 PTR sys_ni_syscall
404 PTR sys_ni_syscall
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000405 PTR sys_mips_mmap2 /* 4210 */
406 PTR sys_32_truncate64
407 PTR sys_32_ftruncate64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700408 PTR sys_newstat
409 PTR sys_newlstat
410 PTR sys_newfstat /* 4215 */
411 PTR sys_pivot_root
412 PTR sys_mincore
413 PTR sys_madvise
414 PTR sys_getdents64
415 PTR compat_sys_fcntl64 /* 4220 */
416 PTR sys_ni_syscall
417 PTR sys_gettid
418 PTR sys32_readahead
419 PTR sys_setxattr
420 PTR sys_lsetxattr /* 4225 */
421 PTR sys_fsetxattr
422 PTR sys_getxattr
423 PTR sys_lgetxattr
424 PTR sys_fgetxattr
425 PTR sys_listxattr /* 4230 */
426 PTR sys_llistxattr
427 PTR sys_flistxattr
428 PTR sys_removexattr
429 PTR sys_lremovexattr
430 PTR sys_fremovexattr /* 4235 */
431 PTR sys_tkill
432 PTR sys_sendfile64
Al Viro5e392b8d2012-12-25 23:22:15 -0500433 PTR compat_sys_futex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700434 PTR compat_sys_sched_setaffinity
435 PTR compat_sys_sched_getaffinity /* 4240 */
Michel Thebeaue2cc5022010-09-28 14:15:37 -0400436 PTR compat_sys_io_setup
Linus Torvalds1da177e2005-04-16 15:20:36 -0700437 PTR sys_io_destroy
Michel Thebeaue2cc5022010-09-28 14:15:37 -0400438 PTR compat_sys_io_getevents
439 PTR compat_sys_io_submit
Linus Torvalds1da177e2005-04-16 15:20:36 -0700440 PTR sys_io_cancel /* 4245 */
441 PTR sys_exit_group
Wu Zhangjin80b85852009-10-10 19:19:49 +0800442 PTR sys32_lookup_dcookie
Linus Torvalds1da177e2005-04-16 15:20:36 -0700443 PTR sys_epoll_create
444 PTR sys_epoll_ctl
445 PTR sys_epoll_wait /* 4250 */
446 PTR sys_remap_file_pages
447 PTR sys_set_tid_address
448 PTR sys_restart_syscall
Atsushi Nemoto8676d2e2007-05-18 00:46:13 +0900449 PTR sys32_fadvise64_64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700450 PTR compat_sys_statfs64 /* 4255 */
451 PTR compat_sys_fstatfs64
Ralf Baechle821d3132007-02-27 01:21:17 +0000452 PTR compat_sys_timer_create
Linus Torvalds1da177e2005-04-16 15:20:36 -0700453 PTR compat_sys_timer_settime
454 PTR compat_sys_timer_gettime
455 PTR sys_timer_getoverrun /* 4260 */
456 PTR sys_timer_delete
457 PTR compat_sys_clock_settime
458 PTR compat_sys_clock_gettime
459 PTR compat_sys_clock_getres
460 PTR compat_sys_clock_nanosleep /* 4265 */
461 PTR sys_tgkill
462 PTR compat_sys_utimes
463 PTR sys_ni_syscall /* sys_mbind */
464 PTR sys_ni_syscall /* sys_get_mempolicy */
465 PTR sys_ni_syscall /* 4270 sys_set_mempolicy */
466 PTR compat_sys_mq_open
467 PTR sys_mq_unlink
468 PTR compat_sys_mq_timedsend
469 PTR compat_sys_mq_timedreceive
470 PTR compat_sys_mq_notify /* 4275 */
471 PTR compat_sys_mq_getsetattr
472 PTR sys_ni_syscall /* sys_vserver */
Al Viro1c37ea822012-12-23 15:06:31 -0500473 PTR compat_sys_waitid
Linus Torvalds1da177e2005-04-16 15:20:36 -0700474 PTR sys_ni_syscall /* available, was setaltroot */
475 PTR sys_add_key /* 4280 */
476 PTR sys_request_key
477 PTR sys_keyctl
Ralf Baechle3c370262005-04-13 17:43:59 +0000478 PTR sys_set_thread_area
Ralf Baechle7db36c82005-07-13 11:48:45 +0000479 PTR sys_inotify_init
480 PTR sys_inotify_add_watch /* 4285 */
481 PTR sys_inotify_rm_watch
Ralf Baechle72bf8912006-02-08 13:38:50 +0000482 PTR sys_migrate_pages
483 PTR compat_sys_openat
484 PTR sys_mkdirat
485 PTR sys_mknodat /* 4290 */
486 PTR sys_fchownat
487 PTR compat_sys_futimesat
Richard Sandiford63415db2006-09-17 20:30:46 +0100488 PTR sys_newfstatat
Ralf Baechle72bf8912006-02-08 13:38:50 +0000489 PTR sys_unlinkat
490 PTR sys_renameat /* 4295 */
491 PTR sys_linkat
492 PTR sys_symlinkat
493 PTR sys_readlinkat
494 PTR sys_fchmodat
495 PTR sys_faccessat /* 4300 */
Joseph S. Myers99d233f2007-01-10 12:30:50 +0000496 PTR compat_sys_pselect6
Arnaud Patard049a31a2009-10-20 10:27:47 +0200497 PTR compat_sys_ppoll
Ralf Baechle72bf8912006-02-08 13:38:50 +0000498 PTR sys_unshare
Ralf Baechlef115da92006-03-31 09:27:20 +0100499 PTR sys_splice
Ralf Baechlea8d587a2006-04-01 07:49:21 +0100500 PTR sys32_sync_file_range /* 4305 */
Ralf Baechle136d47d2006-04-15 11:16:19 +0200501 PTR sys_tee
Ralf Baechle8d13cb22008-12-03 17:03:27 +0000502 PTR compat_sys_vmsplice
Ralf Baechle722cfd92006-07-02 16:31:14 +0100503 PTR compat_sys_move_pages
Atsushi Nemoto7fdeb042006-09-06 22:42:02 +0900504 PTR compat_sys_set_robust_list
505 PTR compat_sys_get_robust_list /* 4310 */
Nicolas Schichan583bb862006-10-18 15:14:55 +0200506 PTR compat_sys_kexec_load
Ralf Baechle991ea262006-10-29 21:07:40 +0000507 PTR sys_getcpu
Ralf Baechlee016c382007-02-24 21:15:11 +0000508 PTR compat_sys_epoll_pwait
Ralf Baechle08253b32007-03-06 17:04:49 +0000509 PTR sys_ioprio_set
510 PTR sys_ioprio_get /* 4315 */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900511 PTR compat_sys_utimensat
512 PTR compat_sys_signalfd
Ralf Baechle8bdd5142011-04-13 20:50:46 +0200513 PTR sys_ni_syscall /* was timerfd */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900514 PTR sys_eventfd
Kyle McMartin422efb12007-09-28 13:15:20 -0400515 PTR sys32_fallocate /* 4320 */
Dmitri Vorobiev6783fe62008-02-19 00:02:37 +0300516 PTR sys_timerfd_create
David Daneyc7d16732009-04-16 09:20:17 -0700517 PTR compat_sys_timerfd_gettime
518 PTR compat_sys_timerfd_settime
Ralf Baechle3885b712008-07-31 11:16:43 +0100519 PTR compat_sys_signalfd4
520 PTR sys_eventfd2 /* 4325 */
521 PTR sys_epoll_create1
522 PTR sys_dup3
523 PTR sys_pipe2
524 PTR sys_inotify_init1
Ralf Baechleddd9e912009-04-02 16:59:24 -0700525 PTR compat_sys_preadv /* 4330 */
526 PTR compat_sys_pwritev
David Daney69f16c92009-06-26 09:53:57 -0700527 PTR compat_sys_rt_tgsigqueueinfo
Ingo Molnarcdd6c482009-09-21 12:02:48 +0200528 PTR sys_perf_event_open
Ralf Baechle54822de2009-08-03 17:27:19 +0100529 PTR sys_accept4
David Daney5e844b32010-08-23 14:10:37 -0700530 PTR compat_sys_recvmmsg /* 4335 */
531 PTR sys_fanotify_init
532 PTR sys_32_fanotify_mark
533 PTR sys_prlimit64
David Daney84ed9432011-03-18 10:37:23 -0700534 PTR sys_name_to_handle_at
535 PTR compat_sys_open_by_handle_at /* 4340 */
536 PTR compat_sys_clock_adjtime
Ralf Baechle1bbf2872011-03-25 18:45:20 +0100537 PTR sys_syncfs
Ralf Baechleb12acf12011-05-28 13:22:58 +0100538 PTR compat_sys_sendmmsg
Eric W. Biederman7b21fdd2011-05-27 19:28:27 -0700539 PTR sys_setns
David Daney8ff85842011-11-08 14:54:55 -0800540 PTR compat_sys_process_vm_readv /* 4345 */
541 PTR compat_sys_process_vm_writev
Ralf Baechlece71d242012-09-14 22:47:15 +0200542 PTR sys_kcmp
Ralf Baechle62951502012-12-28 17:02:56 +0100543 PTR sys_finit_module
Linus Torvalds1da177e2005-04-16 15:20:36 -0700544 .size sys_call_table,.-sys_call_table