blob: 7ce0a36856270227839285f61dfc7242f304c66c [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:
102 local_irq_disable # make need_resched and
103 # signals dont change between
104 # sampling and return
105 LONG_L a2, TI_FLAGS($28)
106 li t0, _TIF_ALLWORK_MASK
107 and t0, a2, t0
108 bnez t0, o32_syscall_exit_work
109
110 j restore_partial
111
112o32_syscall_exit_work:
113 j syscall_exit_work_partial
114
115/* ------------------------------------------------------------------------ */
116
117trace_a_syscall:
118 SAVE_STATIC
119 sd a4, PT_R8(sp) # Save argument registers
120 sd a5, PT_R9(sp)
121 sd a6, PT_R10(sp)
122 sd a7, PT_R11(sp) # For indirect syscalls
123
124 move s0, t2 # Save syscall pointer
125 move a0, sp
126 li a1, 0
127 jal do_syscall_trace
128
Ralf Baechle04a70522005-11-30 16:24:57 +0000129 move t0, s0
130 RESTORE_STATIC
Linus Torvalds1da177e2005-04-16 15:20:36 -0700131 ld a0, PT_R4(sp) # Restore argument registers
132 ld a1, PT_R5(sp)
133 ld a2, PT_R6(sp)
134 ld a3, PT_R7(sp)
135 ld a4, PT_R8(sp)
136 ld a5, PT_R9(sp)
137 ld a6, PT_R10(sp)
138 ld a7, PT_R11(sp) # For indirect syscalls
Ralf Baechle04a70522005-11-30 16:24:57 +0000139 jalr t0
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140
141 li t0, -EMAXERRNO - 1 # error?
142 sltu t0, t0, v0
143 sd t0, PT_R7(sp) # set error flag
144 beqz t0, 1f
145
Al Viro8f5a00eb2010-09-28 18:50:37 +0100146 ld t1, PT_R2(sp) # syscall number
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147 dnegu v0 # error
Al Viro8f5a00eb2010-09-28 18:50:37 +0100148 sd t1, PT_R0(sp) # save it for syscall restarting
Linus Torvalds1da177e2005-04-16 15:20:36 -07001491: sd v0, PT_R2(sp) # result
150
151 j syscall_exit
152
153/* ------------------------------------------------------------------------ */
154
155 /*
156 * The stackpointer for a call with more than 4 arguments is bad.
157 */
158bad_stack:
159 dnegu v0 # error
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160 sd v0, PT_R2(sp)
161 li t0, 1 # set error flag
162 sd t0, PT_R7(sp)
163 j o32_syscall_exit
164
165not_o32_scall:
166 /*
167 * This is not an o32 compatibility syscall, pass it on
168 * to the 64-bit syscall handlers.
169 */
170#ifdef CONFIG_MIPS32_N32
171 j handle_sysn32
172#else
173 j handle_sys64
174#endif
175 END(handle_sys)
176
177LEAF(sys32_syscall)
Vlad Malove807f952008-11-18 15:05:46 -0800178 subu t0, a0, __NR_O32_Linux # check syscall number
179 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
180 beqz t0, einval # do not recurse
181 dsll t1, t0, 3
Linus Torvalds1da177e2005-04-16 15:20:36 -0700182 beqz v0, einval
Vlad Malove807f952008-11-18 15:05:46 -0800183 ld t2, sys_call_table(t1) # syscall routine
Linus Torvalds1da177e2005-04-16 15:20:36 -0700184
185 move a0, a1 # shift argument registers
186 move a1, a2
187 move a2, a3
188 move a3, a4
189 move a4, a5
190 move a5, a6
191 move a6, a7
192 sd a0, PT_R4(sp) # ... and push back a0 - a3, some
193 sd a1, PT_R5(sp) # syscalls expect them there
194 sd a2, PT_R6(sp)
195 sd a3, PT_R7(sp)
196 sd a3, PT_R26(sp) # update a3 for syscall restarting
197 jr t2
198 /* Unreached */
199
David Daneyc6cb4df2008-10-31 11:23:09 -0700200einval: li v0, -ENOSYS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700201 jr ra
202 END(sys32_syscall)
203
204 .align 3
205 .type sys_call_table,@object
206sys_call_table:
207 PTR sys32_syscall /* 4000 */
208 PTR sys_exit
209 PTR sys_fork
210 PTR sys_read
211 PTR sys_write
Thiemo Seufer71552622006-05-28 15:02:53 +0100212 PTR compat_sys_open /* 4005 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700213 PTR sys_close
214 PTR sys_waitpid
215 PTR sys_creat
216 PTR sys_link
217 PTR sys_unlink /* 4010 */
218 PTR sys32_execve
219 PTR sys_chdir
220 PTR compat_sys_time
221 PTR sys_mknod
222 PTR sys_chmod /* 4015 */
223 PTR sys_lchown
224 PTR sys_ni_syscall
225 PTR sys_ni_syscall /* was sys_stat */
226 PTR sys_lseek
227 PTR sys_getpid /* 4020 */
Ralf Baechle089c7e72006-10-16 16:49:37 +0100228 PTR compat_sys_mount
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229 PTR sys_oldumount
230 PTR sys_setuid
231 PTR sys_getuid
232 PTR compat_sys_stime /* 4025 */
Thomas Bogendoerfer5d9a76c2008-08-17 16:49:25 +0200233 PTR compat_sys_ptrace
Linus Torvalds1da177e2005-04-16 15:20:36 -0700234 PTR sys_alarm
235 PTR sys_ni_syscall /* was sys_fstat */
236 PTR sys_pause
237 PTR compat_sys_utime /* 4030 */
238 PTR sys_ni_syscall
239 PTR sys_ni_syscall
240 PTR sys_access
241 PTR sys_nice
242 PTR sys_ni_syscall /* 4035 */
243 PTR sys_sync
244 PTR sys_kill
245 PTR sys_rename
246 PTR sys_mkdir
247 PTR sys_rmdir /* 4040 */
248 PTR sys_dup
Ralf Baechle8213bbf2008-07-20 13:16:46 +0100249 PTR sysm_pipe
Linus Torvalds1da177e2005-04-16 15:20:36 -0700250 PTR compat_sys_times
251 PTR sys_ni_syscall
252 PTR sys_brk /* 4045 */
253 PTR sys_setgid
254 PTR sys_getgid
255 PTR sys_ni_syscall /* was signal 2 */
256 PTR sys_geteuid
257 PTR sys_getegid /* 4050 */
258 PTR sys_acct
259 PTR sys_umount
260 PTR sys_ni_syscall
261 PTR compat_sys_ioctl
262 PTR compat_sys_fcntl /* 4055 */
263 PTR sys_ni_syscall
264 PTR sys_setpgid
265 PTR sys_ni_syscall
266 PTR sys_olduname
267 PTR sys_umask /* 4060 */
268 PTR sys_chroot
Christoph Hellwig2b1c6bd2008-11-28 10:09:09 +0100269 PTR compat_sys_ustat
Linus Torvalds1da177e2005-04-16 15:20:36 -0700270 PTR sys_dup2
271 PTR sys_getppid
272 PTR sys_getpgrp /* 4065 */
273 PTR sys_setsid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000274 PTR sys_32_sigaction
Linus Torvalds1da177e2005-04-16 15:20:36 -0700275 PTR sys_sgetmask
276 PTR sys_ssetmask
277 PTR sys_setreuid /* 4070 */
278 PTR sys_setregid
279 PTR sys32_sigsuspend
280 PTR compat_sys_sigpending
281 PTR sys_sethostname
282 PTR compat_sys_setrlimit /* 4075 */
283 PTR compat_sys_getrlimit
284 PTR compat_sys_getrusage
Christoph Hellwigb418da12008-10-15 22:02:06 -0700285 PTR compat_sys_gettimeofday
286 PTR compat_sys_settimeofday
Linus Torvalds1da177e2005-04-16 15:20:36 -0700287 PTR sys_getgroups /* 4080 */
288 PTR sys_setgroups
289 PTR sys_ni_syscall /* old_select */
290 PTR sys_symlink
291 PTR sys_ni_syscall /* was sys_lstat */
292 PTR sys_readlink /* 4085 */
293 PTR sys_uselib
294 PTR sys_swapon
295 PTR sys_reboot
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900296 PTR compat_sys_old_readdir
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000297 PTR sys_mips_mmap /* 4090 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700298 PTR sys_munmap
299 PTR sys_truncate
300 PTR sys_ftruncate
301 PTR sys_fchmod
302 PTR sys_fchown /* 4095 */
303 PTR sys_getpriority
304 PTR sys_setpriority
305 PTR sys_ni_syscall
306 PTR compat_sys_statfs
307 PTR compat_sys_fstatfs /* 4100 */
308 PTR sys_ni_syscall /* sys_ioperm */
Ralf Baechle08274ce2007-02-27 01:11:28 +0000309 PTR compat_sys_socketcall
Linus Torvalds1da177e2005-04-16 15:20:36 -0700310 PTR sys_syslog
311 PTR compat_sys_setitimer
312 PTR compat_sys_getitimer /* 4105 */
313 PTR compat_sys_newstat
314 PTR compat_sys_newlstat
315 PTR compat_sys_newfstat
316 PTR sys_uname
317 PTR sys_ni_syscall /* sys_ioperm *//* 4110 */
318 PTR sys_vhangup
319 PTR sys_ni_syscall /* was sys_idle */
320 PTR sys_ni_syscall /* sys_vm86 */
Ralf Baechleb6e203d2005-02-16 21:18:52 +0000321 PTR compat_sys_wait4
Linus Torvalds1da177e2005-04-16 15:20:36 -0700322 PTR sys_swapoff /* 4115 */
Kyle McMartind4d23ad2007-02-10 01:46:00 -0800323 PTR compat_sys_sysinfo
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000324 PTR sys_32_ipc
Linus Torvalds1da177e2005-04-16 15:20:36 -0700325 PTR sys_fsync
326 PTR sys32_sigreturn
Ralf Baechle3c370262005-04-13 17:43:59 +0000327 PTR sys32_clone /* 4120 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700328 PTR sys_setdomainname
Christoph Hellwige28cbf22010-03-10 15:21:19 -0800329 PTR sys_newuname
Linus Torvalds1da177e2005-04-16 15:20:36 -0700330 PTR sys_ni_syscall /* sys_modify_ldt */
Stephen Rothwell3158e942006-03-26 01:37:29 -0800331 PTR compat_sys_adjtimex
Linus Torvalds1da177e2005-04-16 15:20:36 -0700332 PTR sys_mprotect /* 4125 */
333 PTR compat_sys_sigprocmask
334 PTR sys_ni_syscall /* was creat_module */
335 PTR sys_init_module
336 PTR sys_delete_module
337 PTR sys_ni_syscall /* 4130, get_kernel_syms */
338 PTR sys_quotactl
339 PTR sys_getpgid
340 PTR sys_fchdir
341 PTR sys_bdflush
342 PTR sys_sysfs /* 4135 */
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000343 PTR sys_32_personality
Linus Torvalds1da177e2005-04-16 15:20:36 -0700344 PTR sys_ni_syscall /* for afs_syscall */
345 PTR sys_setfsuid
346 PTR sys_setfsgid
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000347 PTR sys_32_llseek /* 4140 */
Atsushi Nemoto2fd628f2006-02-21 15:59:00 +0900348 PTR compat_sys_getdents
Linus Torvalds1da177e2005-04-16 15:20:36 -0700349 PTR compat_sys_select
350 PTR sys_flock
351 PTR sys_msync
352 PTR compat_sys_readv /* 4145 */
353 PTR compat_sys_writev
354 PTR sys_cacheflush
355 PTR sys_cachectl
356 PTR sys_sysmips
357 PTR sys_ni_syscall /* 4150 */
358 PTR sys_getsid
359 PTR sys_fdatasync
Eric W. Biedermanaff639c2009-04-03 00:46:47 -0700360 PTR compat_sys_sysctl
Linus Torvalds1da177e2005-04-16 15:20:36 -0700361 PTR sys_mlock
362 PTR sys_munlock /* 4155 */
363 PTR sys_mlockall
364 PTR sys_munlockall
365 PTR sys_sched_setparam
366 PTR sys_sched_getparam
367 PTR sys_sched_setscheduler /* 4160 */
368 PTR sys_sched_getscheduler
369 PTR sys_sched_yield
370 PTR sys_sched_get_priority_max
371 PTR sys_sched_get_priority_min
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000372 PTR sys_32_sched_rr_get_interval /* 4165 */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700373 PTR compat_sys_nanosleep
374 PTR sys_mremap
375 PTR sys_accept
376 PTR sys_bind
377 PTR sys_connect /* 4170 */
378 PTR sys_getpeername
379 PTR sys_getsockname
380 PTR sys_getsockopt
381 PTR sys_listen
Johannes Berg1dacc762009-07-01 11:26:02 +0000382 PTR compat_sys_recv /* 4175 */
383 PTR compat_sys_recvfrom
Linus Torvalds1da177e2005-04-16 15:20:36 -0700384 PTR compat_sys_recvmsg
385 PTR sys_send
386 PTR compat_sys_sendmsg
387 PTR sys_sendto /* 4180 */
388 PTR compat_sys_setsockopt
389 PTR sys_shutdown
390 PTR sys_socket
391 PTR sys_socketpair
392 PTR sys_setresuid /* 4185 */
393 PTR sys_getresuid
394 PTR sys_ni_syscall /* was query_module */
395 PTR sys_poll
Maciej W. Rozyckid547c5c2005-05-06 16:28:55 +0000396 PTR compat_sys_nfsservctl
Linus Torvalds1da177e2005-04-16 15:20:36 -0700397 PTR sys_setresgid /* 4190 */
398 PTR sys_getresgid
399 PTR sys_prctl
400 PTR sys32_rt_sigreturn
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000401 PTR sys_32_rt_sigaction
402 PTR sys_32_rt_sigprocmask /* 4195 */
403 PTR sys_32_rt_sigpending
Linus Torvalds1da177e2005-04-16 15:20:36 -0700404 PTR compat_sys_rt_sigtimedwait
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000405 PTR sys_32_rt_sigqueueinfo
Linus Torvalds1da177e2005-04-16 15:20:36 -0700406 PTR sys32_rt_sigsuspend
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000407 PTR sys_32_pread /* 4200 */
408 PTR sys_32_pwrite
Linus Torvalds1da177e2005-04-16 15:20:36 -0700409 PTR sys_chown
410 PTR sys_getcwd
411 PTR sys_capget
412 PTR sys_capset /* 4205 */
413 PTR sys32_sigaltstack
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000414 PTR sys_32_sendfile
Linus Torvalds1da177e2005-04-16 15:20:36 -0700415 PTR sys_ni_syscall
416 PTR sys_ni_syscall
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000417 PTR sys_mips_mmap2 /* 4210 */
418 PTR sys_32_truncate64
419 PTR sys_32_ftruncate64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700420 PTR sys_newstat
421 PTR sys_newlstat
422 PTR sys_newfstat /* 4215 */
423 PTR sys_pivot_root
424 PTR sys_mincore
425 PTR sys_madvise
426 PTR sys_getdents64
427 PTR compat_sys_fcntl64 /* 4220 */
428 PTR sys_ni_syscall
429 PTR sys_gettid
430 PTR sys32_readahead
431 PTR sys_setxattr
432 PTR sys_lsetxattr /* 4225 */
433 PTR sys_fsetxattr
434 PTR sys_getxattr
435 PTR sys_lgetxattr
436 PTR sys_fgetxattr
437 PTR sys_listxattr /* 4230 */
438 PTR sys_llistxattr
439 PTR sys_flistxattr
440 PTR sys_removexattr
441 PTR sys_lremovexattr
442 PTR sys_fremovexattr /* 4235 */
443 PTR sys_tkill
444 PTR sys_sendfile64
445 PTR compat_sys_futex
446 PTR compat_sys_sched_setaffinity
447 PTR compat_sys_sched_getaffinity /* 4240 */
448 PTR sys_io_setup
449 PTR sys_io_destroy
450 PTR sys_io_getevents
451 PTR sys_io_submit
452 PTR sys_io_cancel /* 4245 */
453 PTR sys_exit_group
Wu Zhangjin80b85852009-10-10 19:19:49 +0800454 PTR sys32_lookup_dcookie
Linus Torvalds1da177e2005-04-16 15:20:36 -0700455 PTR sys_epoll_create
456 PTR sys_epoll_ctl
457 PTR sys_epoll_wait /* 4250 */
458 PTR sys_remap_file_pages
459 PTR sys_set_tid_address
460 PTR sys_restart_syscall
Atsushi Nemoto8676d2e2007-05-18 00:46:13 +0900461 PTR sys32_fadvise64_64
Linus Torvalds1da177e2005-04-16 15:20:36 -0700462 PTR compat_sys_statfs64 /* 4255 */
463 PTR compat_sys_fstatfs64
Ralf Baechle821d3132007-02-27 01:21:17 +0000464 PTR compat_sys_timer_create
Linus Torvalds1da177e2005-04-16 15:20:36 -0700465 PTR compat_sys_timer_settime
466 PTR compat_sys_timer_gettime
467 PTR sys_timer_getoverrun /* 4260 */
468 PTR sys_timer_delete
469 PTR compat_sys_clock_settime
470 PTR compat_sys_clock_gettime
471 PTR compat_sys_clock_getres
472 PTR compat_sys_clock_nanosleep /* 4265 */
473 PTR sys_tgkill
474 PTR compat_sys_utimes
475 PTR sys_ni_syscall /* sys_mbind */
476 PTR sys_ni_syscall /* sys_get_mempolicy */
477 PTR sys_ni_syscall /* 4270 sys_set_mempolicy */
478 PTR compat_sys_mq_open
479 PTR sys_mq_unlink
480 PTR compat_sys_mq_timedsend
481 PTR compat_sys_mq_timedreceive
482 PTR compat_sys_mq_notify /* 4275 */
483 PTR compat_sys_mq_getsetattr
484 PTR sys_ni_syscall /* sys_vserver */
Ralf Baechledbda6ac2009-02-08 16:00:26 +0000485 PTR sys_32_waitid
Linus Torvalds1da177e2005-04-16 15:20:36 -0700486 PTR sys_ni_syscall /* available, was setaltroot */
487 PTR sys_add_key /* 4280 */
488 PTR sys_request_key
489 PTR sys_keyctl
Ralf Baechle3c370262005-04-13 17:43:59 +0000490 PTR sys_set_thread_area
Ralf Baechle7db36c82005-07-13 11:48:45 +0000491 PTR sys_inotify_init
492 PTR sys_inotify_add_watch /* 4285 */
493 PTR sys_inotify_rm_watch
Ralf Baechle72bf8912006-02-08 13:38:50 +0000494 PTR sys_migrate_pages
495 PTR compat_sys_openat
496 PTR sys_mkdirat
497 PTR sys_mknodat /* 4290 */
498 PTR sys_fchownat
499 PTR compat_sys_futimesat
Richard Sandiford63415db2006-09-17 20:30:46 +0100500 PTR sys_newfstatat
Ralf Baechle72bf8912006-02-08 13:38:50 +0000501 PTR sys_unlinkat
502 PTR sys_renameat /* 4295 */
503 PTR sys_linkat
504 PTR sys_symlinkat
505 PTR sys_readlinkat
506 PTR sys_fchmodat
507 PTR sys_faccessat /* 4300 */
Joseph S. Myers99d233f2007-01-10 12:30:50 +0000508 PTR compat_sys_pselect6
Arnaud Patard049a31a2009-10-20 10:27:47 +0200509 PTR compat_sys_ppoll
Ralf Baechle72bf8912006-02-08 13:38:50 +0000510 PTR sys_unshare
Ralf Baechlef115da92006-03-31 09:27:20 +0100511 PTR sys_splice
Ralf Baechlea8d587a2006-04-01 07:49:21 +0100512 PTR sys32_sync_file_range /* 4305 */
Ralf Baechle136d47d2006-04-15 11:16:19 +0200513 PTR sys_tee
Ralf Baechle8d13cb22008-12-03 17:03:27 +0000514 PTR compat_sys_vmsplice
Ralf Baechle722cfd92006-07-02 16:31:14 +0100515 PTR compat_sys_move_pages
Atsushi Nemoto7fdeb042006-09-06 22:42:02 +0900516 PTR compat_sys_set_robust_list
517 PTR compat_sys_get_robust_list /* 4310 */
Nicolas Schichan583bb862006-10-18 15:14:55 +0200518 PTR compat_sys_kexec_load
Ralf Baechle991ea262006-10-29 21:07:40 +0000519 PTR sys_getcpu
Ralf Baechlee016c382007-02-24 21:15:11 +0000520 PTR compat_sys_epoll_pwait
Ralf Baechle08253b32007-03-06 17:04:49 +0000521 PTR sys_ioprio_set
522 PTR sys_ioprio_get /* 4315 */
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900523 PTR compat_sys_utimensat
524 PTR compat_sys_signalfd
Davide Libenzi4d672e72008-02-04 22:27:26 -0800525 PTR sys_ni_syscall
Atsushi Nemoto7a6d4f32007-05-29 23:29:40 +0900526 PTR sys_eventfd
Kyle McMartin422efb12007-09-28 13:15:20 -0400527 PTR sys32_fallocate /* 4320 */
Dmitri Vorobiev6783fe62008-02-19 00:02:37 +0300528 PTR sys_timerfd_create
David Daneyc7d16732009-04-16 09:20:17 -0700529 PTR compat_sys_timerfd_gettime
530 PTR compat_sys_timerfd_settime
Ralf Baechle3885b712008-07-31 11:16:43 +0100531 PTR compat_sys_signalfd4
532 PTR sys_eventfd2 /* 4325 */
533 PTR sys_epoll_create1
534 PTR sys_dup3
535 PTR sys_pipe2
536 PTR sys_inotify_init1
Ralf Baechleddd9e912009-04-02 16:59:24 -0700537 PTR compat_sys_preadv /* 4330 */
538 PTR compat_sys_pwritev
David Daney69f16c92009-06-26 09:53:57 -0700539 PTR compat_sys_rt_tgsigqueueinfo
Ingo Molnarcdd6c482009-09-21 12:02:48 +0200540 PTR sys_perf_event_open
Ralf Baechle54822de2009-08-03 17:27:19 +0100541 PTR sys_accept4
Arnaldo Carvalho de Meloa2e27252009-10-12 23:40:10 -0700542 PTR compat_sys_recvmmsg
Linus Torvalds1da177e2005-04-16 15:20:36 -0700543 .size sys_call_table,.-sys_call_table