Loading...
1/*
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-99, 2000- 02, 06 Ralf Baechle <ralf@linux-mips.org>
7 * Copyright (C) 2001 MIPS Technologies, Inc.
8 * Copyright (C) 2004 Thiemo Seufer
9 * Copyright (C) 2014 Imagination Technologies Ltd.
10 */
11#include <linux/errno.h>
12#include <asm/asm.h>
13#include <asm/asmmacro.h>
14#include <asm/irqflags.h>
15#include <asm/mipsregs.h>
16#include <asm/regdef.h>
17#include <asm/stackframe.h>
18#include <asm/isadep.h>
19#include <asm/sysmips.h>
20#include <asm/thread_info.h>
21#include <asm/unistd.h>
22#include <asm/asm-offsets.h>
23
24 .align 5
25NESTED(handle_sys, PT_SIZE, sp)
26 .set noat
27 SAVE_SOME
28 TRACE_IRQS_ON_RELOAD
29 STI
30 .set at
31
32 lw t1, PT_EPC(sp) # skip syscall on return
33
34 addiu t1, 4 # skip to next instruction
35 sw t1, PT_EPC(sp)
36
37 sw a3, PT_R26(sp) # save a3 for syscall restarting
38
39 /*
40 * More than four arguments. Try to deal with it by copying the
41 * stack arguments from the user stack to the kernel stack.
42 * This Sucks (TM).
43 */
44 lw t0, PT_R29(sp) # get old user stack pointer
45
46 /*
47 * We intentionally keep the kernel stack a little below the top of
48 * userspace so we don't have to do a slower byte accurate check here.
49 */
50 addu t4, t0, 32
51 bltz t4, bad_stack # -> sp is bad
52
53 /*
54 * Ok, copy the args from the luser stack to the kernel stack.
55 */
56
57 .set push
58 .set noreorder
59 .set nomacro
60
61load_a4: user_lw(t5, 16(t0)) # argument #5 from usp
62load_a5: user_lw(t6, 20(t0)) # argument #6 from usp
63load_a6: user_lw(t7, 24(t0)) # argument #7 from usp
64load_a7: user_lw(t8, 28(t0)) # argument #8 from usp
65loads_done:
66
67 sw t5, 16(sp) # argument #5 to ksp
68 sw t6, 20(sp) # argument #6 to ksp
69 sw t7, 24(sp) # argument #7 to ksp
70 sw t8, 28(sp) # argument #8 to ksp
71 .set pop
72
73 .section __ex_table,"a"
74 PTR_WD load_a4, bad_stack_a4
75 PTR_WD load_a5, bad_stack_a5
76 PTR_WD load_a6, bad_stack_a6
77 PTR_WD load_a7, bad_stack_a7
78 .previous
79
80 lw t0, TI_FLAGS($28) # syscall tracing enabled?
81 li t1, _TIF_WORK_SYSCALL_ENTRY
82 and t0, t1
83 bnez t0, syscall_trace_entry # -> yes
84syscall_common:
85 subu v0, v0, __NR_O32_Linux # check syscall number
86 sltiu t0, v0, __NR_O32_Linux_syscalls
87 beqz t0, illegal_syscall
88
89 sll t0, v0, 2
90 la t1, sys_call_table
91 addu t1, t0
92 lw t2, (t1) # syscall routine
93
94 beqz t2, illegal_syscall
95
96 jalr t2 # Do The Real Thing (TM)
97
98 li t0, -EMAXERRNO - 1 # error?
99 sltu t0, t0, v0
100 sw t0, PT_R7(sp) # set error flag
101 beqz t0, 1f
102
103 lw t1, PT_R2(sp) # syscall number
104 negu v0 # error
105 sw t1, PT_R0(sp) # save it for syscall restarting
1061: sw v0, PT_R2(sp) # result
107
108o32_syscall_exit:
109 j syscall_exit_partial
110
111/* ------------------------------------------------------------------------ */
112
113syscall_trace_entry:
114 SAVE_STATIC
115 move a0, sp
116
117 /*
118 * syscall number is in v0 unless we called syscall(__NR_###)
119 * where the real syscall number is in a0
120 */
121 move a1, v0
122 subu t2, v0, __NR_O32_Linux
123 bnez t2, 1f /* __NR_syscall at offset 0 */
124 lw a1, PT_R4(sp)
125
1261: jal syscall_trace_enter
127
128 bltz v0, 1f # seccomp failed? Skip syscall
129
130 RESTORE_STATIC
131 lw v0, PT_R2(sp) # Restore syscall (maybe modified)
132 lw a0, PT_R4(sp) # Restore argument registers
133 lw a1, PT_R5(sp)
134 lw a2, PT_R6(sp)
135 lw a3, PT_R7(sp)
136 j syscall_common
137
1381: j syscall_exit
139
140/* ------------------------------------------------------------------------ */
141
142 /*
143 * Our open-coded access area sanity test for the stack pointer
144 * failed. We probably should handle this case a bit more drastic.
145 */
146bad_stack:
147 li v0, EFAULT
148 sw v0, PT_R2(sp)
149 li t0, 1 # set error flag
150 sw t0, PT_R7(sp)
151 j o32_syscall_exit
152
153bad_stack_a4:
154 li t5, 0
155 b load_a5
156
157bad_stack_a5:
158 li t6, 0
159 b load_a6
160
161bad_stack_a6:
162 li t7, 0
163 b load_a7
164
165bad_stack_a7:
166 li t8, 0
167 b loads_done
168
169 /*
170 * The system call does not exist in this kernel
171 */
172illegal_syscall:
173 li v0, ENOSYS # error
174 sw v0, PT_R2(sp)
175 li t0, 1 # set error flag
176 sw t0, PT_R7(sp)
177 j o32_syscall_exit
178 END(handle_sys)
179
180 LEAF(sys_syscall)
181 subu t0, a0, __NR_O32_Linux # check syscall number
182 sltiu v0, t0, __NR_O32_Linux_syscalls
183 beqz t0, einval # do not recurse
184 sll t1, t0, 2
185 beqz v0, einval
186 lw t2, sys_call_table(t1) # syscall routine
187
188 move a0, a1 # shift argument registers
189 move a1, a2
190 move a2, a3
191 lw a3, 16(sp)
192 lw t4, 20(sp)
193 lw t5, 24(sp)
194 lw t6, 28(sp)
195 sw t4, 16(sp)
196 sw t5, 20(sp)
197 sw t6, 24(sp)
198 jr t2
199 /* Unreached */
200
201einval: li v0, -ENOSYS
202 jr ra
203 END(sys_syscall)
204
205#ifdef CONFIG_MIPS_MT_FPAFF
206 /*
207 * For FPU affinity scheduling on MIPS MT processors, we need to
208 * intercept sys_sched_xxxaffinity() calls until we get a proper hook
209 * in kernel/sched/core.c. Considered only temporary we only support
210 * these hooks for the 32-bit kernel - there is no MIPS64 MT processor
211 * atm.
212 */
213#define sys_sched_setaffinity mipsmt_sys_sched_setaffinity
214#define sys_sched_getaffinity mipsmt_sys_sched_getaffinity
215#endif /* CONFIG_MIPS_MT_FPAFF */
216
217#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
218#define __SYSCALL(nr, entry) PTR_WD entry
219 .align 2
220 .type sys_call_table, @object
221EXPORT(sys_call_table)
222#include <asm/syscall_table_o32.h>
1/*
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-99, 2000- 02, 06 Ralf Baechle <ralf@linux-mips.org>
7 * Copyright (C) 2001 MIPS Technologies, Inc.
8 * Copyright (C) 2004 Thiemo Seufer
9 * Copyright (C) 2014 Imagination Technologies Ltd.
10 */
11#include <linux/errno.h>
12#include <asm/asm.h>
13#include <asm/asmmacro.h>
14#include <asm/irqflags.h>
15#include <asm/mipsregs.h>
16#include <asm/regdef.h>
17#include <asm/stackframe.h>
18#include <asm/isadep.h>
19#include <asm/sysmips.h>
20#include <asm/thread_info.h>
21#include <asm/unistd.h>
22#include <asm/war.h>
23#include <asm/asm-offsets.h>
24
25/* Highest syscall used of any syscall flavour */
26#define MAX_SYSCALL_NO __NR_O32_Linux + __NR_O32_Linux_syscalls
27
28 .align 5
29NESTED(handle_sys, PT_SIZE, sp)
30 .set noat
31 SAVE_SOME
32 TRACE_IRQS_ON_RELOAD
33 STI
34 .set at
35
36 lw t1, PT_EPC(sp) # skip syscall on return
37
38 addiu t1, 4 # skip to next instruction
39 sw t1, PT_EPC(sp)
40
41 sw a3, PT_R26(sp) # save a3 for syscall restarting
42
43 /*
44 * More than four arguments. Try to deal with it by copying the
45 * stack arguments from the user stack to the kernel stack.
46 * This Sucks (TM).
47 */
48 lw t0, PT_R29(sp) # get old user stack pointer
49
50 /*
51 * We intentionally keep the kernel stack a little below the top of
52 * userspace so we don't have to do a slower byte accurate check here.
53 */
54 lw t5, TI_ADDR_LIMIT($28)
55 addu t4, t0, 32
56 and t5, t4
57 bltz t5, bad_stack # -> sp is bad
58
59 /*
60 * Ok, copy the args from the luser stack to the kernel stack.
61 */
62
63 .set push
64 .set noreorder
65 .set nomacro
66
67load_a4: user_lw(t5, 16(t0)) # argument #5 from usp
68load_a5: user_lw(t6, 20(t0)) # argument #6 from usp
69load_a6: user_lw(t7, 24(t0)) # argument #7 from usp
70load_a7: user_lw(t8, 28(t0)) # argument #8 from usp
71loads_done:
72
73 sw t5, 16(sp) # argument #5 to ksp
74 sw t6, 20(sp) # argument #6 to ksp
75 sw t7, 24(sp) # argument #7 to ksp
76 sw t8, 28(sp) # argument #8 to ksp
77 .set pop
78
79 .section __ex_table,"a"
80 PTR load_a4, bad_stack_a4
81 PTR load_a5, bad_stack_a5
82 PTR load_a6, bad_stack_a6
83 PTR load_a7, bad_stack_a7
84 .previous
85
86 lw t0, TI_FLAGS($28) # syscall tracing enabled?
87 li t1, _TIF_WORK_SYSCALL_ENTRY
88 and t0, t1
89 bnez t0, syscall_trace_entry # -> yes
90syscall_common:
91 subu v0, v0, __NR_O32_Linux # check syscall number
92 sltiu t0, v0, __NR_O32_Linux_syscalls + 1
93 beqz t0, illegal_syscall
94
95 sll t0, v0, 2
96 la t1, sys_call_table
97 addu t1, t0
98 lw t2, (t1) # syscall routine
99
100 beqz t2, illegal_syscall
101
102 jalr t2 # Do The Real Thing (TM)
103
104 li t0, -EMAXERRNO - 1 # error?
105 sltu t0, t0, v0
106 sw t0, PT_R7(sp) # set error flag
107 beqz t0, 1f
108
109 lw t1, PT_R2(sp) # syscall number
110 negu v0 # error
111 sw t1, PT_R0(sp) # save it for syscall restarting
1121: sw v0, PT_R2(sp) # result
113
114o32_syscall_exit:
115 j syscall_exit_partial
116
117/* ------------------------------------------------------------------------ */
118
119syscall_trace_entry:
120 SAVE_STATIC
121 move a0, sp
122
123 /*
124 * syscall number is in v0 unless we called syscall(__NR_###)
125 * where the real syscall number is in a0
126 */
127 move a1, v0
128 subu t2, v0, __NR_O32_Linux
129 bnez t2, 1f /* __NR_syscall at offset 0 */
130 lw a1, PT_R4(sp)
131
1321: jal syscall_trace_enter
133
134 bltz v0, 1f # seccomp failed? Skip syscall
135
136 RESTORE_STATIC
137 lw v0, PT_R2(sp) # Restore syscall (maybe modified)
138 lw a0, PT_R4(sp) # Restore argument registers
139 lw a1, PT_R5(sp)
140 lw a2, PT_R6(sp)
141 lw a3, PT_R7(sp)
142 j syscall_common
143
1441: j syscall_exit
145
146/* ------------------------------------------------------------------------ */
147
148 /*
149 * Our open-coded access area sanity test for the stack pointer
150 * failed. We probably should handle this case a bit more drastic.
151 */
152bad_stack:
153 li v0, EFAULT
154 sw v0, PT_R2(sp)
155 li t0, 1 # set error flag
156 sw t0, PT_R7(sp)
157 j o32_syscall_exit
158
159bad_stack_a4:
160 li t5, 0
161 b load_a5
162
163bad_stack_a5:
164 li t6, 0
165 b load_a6
166
167bad_stack_a6:
168 li t7, 0
169 b load_a7
170
171bad_stack_a7:
172 li t8, 0
173 b loads_done
174
175 /*
176 * The system call does not exist in this kernel
177 */
178illegal_syscall:
179 li v0, ENOSYS # error
180 sw v0, PT_R2(sp)
181 li t0, 1 # set error flag
182 sw t0, PT_R7(sp)
183 j o32_syscall_exit
184 END(handle_sys)
185
186 LEAF(sys_syscall)
187 subu t0, a0, __NR_O32_Linux # check syscall number
188 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
189 beqz t0, einval # do not recurse
190 sll t1, t0, 2
191 beqz v0, einval
192 lw t2, sys_call_table(t1) # syscall routine
193
194 move a0, a1 # shift argument registers
195 move a1, a2
196 move a2, a3
197 lw a3, 16(sp)
198 lw t4, 20(sp)
199 lw t5, 24(sp)
200 lw t6, 28(sp)
201 sw t4, 16(sp)
202 sw t5, 20(sp)
203 sw t6, 24(sp)
204 jr t2
205 /* Unreached */
206
207einval: li v0, -ENOSYS
208 jr ra
209 END(sys_syscall)
210
211 .align 2
212 .type sys_call_table, @object
213EXPORT(sys_call_table)
214 PTR sys_syscall /* 4000 */
215 PTR sys_exit
216 PTR __sys_fork
217 PTR sys_read
218 PTR sys_write
219 PTR sys_open /* 4005 */
220 PTR sys_close
221 PTR sys_waitpid
222 PTR sys_creat
223 PTR sys_link
224 PTR sys_unlink /* 4010 */
225 PTR sys_execve
226 PTR sys_chdir
227 PTR sys_time
228 PTR sys_mknod
229 PTR sys_chmod /* 4015 */
230 PTR sys_lchown
231 PTR sys_ni_syscall
232 PTR sys_ni_syscall /* was sys_stat */
233 PTR sys_lseek
234 PTR sys_getpid /* 4020 */
235 PTR sys_mount
236 PTR sys_oldumount
237 PTR sys_setuid
238 PTR sys_getuid
239 PTR sys_stime /* 4025 */
240 PTR sys_ptrace
241 PTR sys_alarm
242 PTR sys_ni_syscall /* was sys_fstat */
243 PTR sys_pause
244 PTR sys_utime /* 4030 */
245 PTR sys_ni_syscall
246 PTR sys_ni_syscall
247 PTR sys_access
248 PTR sys_nice
249 PTR sys_ni_syscall /* 4035 */
250 PTR sys_sync
251 PTR sys_kill
252 PTR sys_rename
253 PTR sys_mkdir
254 PTR sys_rmdir /* 4040 */
255 PTR sys_dup
256 PTR sysm_pipe
257 PTR sys_times
258 PTR sys_ni_syscall
259 PTR sys_brk /* 4045 */
260 PTR sys_setgid
261 PTR sys_getgid
262 PTR sys_ni_syscall /* was signal(2) */
263 PTR sys_geteuid
264 PTR sys_getegid /* 4050 */
265 PTR sys_acct
266 PTR sys_umount
267 PTR sys_ni_syscall
268 PTR sys_ioctl
269 PTR sys_fcntl /* 4055 */
270 PTR sys_ni_syscall
271 PTR sys_setpgid
272 PTR sys_ni_syscall
273 PTR sys_olduname
274 PTR sys_umask /* 4060 */
275 PTR sys_chroot
276 PTR sys_ustat
277 PTR sys_dup2
278 PTR sys_getppid
279 PTR sys_getpgrp /* 4065 */
280 PTR sys_setsid
281 PTR sys_sigaction
282 PTR sys_sgetmask
283 PTR sys_ssetmask
284 PTR sys_setreuid /* 4070 */
285 PTR sys_setregid
286 PTR sys_sigsuspend
287 PTR sys_sigpending
288 PTR sys_sethostname
289 PTR sys_setrlimit /* 4075 */
290 PTR sys_getrlimit
291 PTR sys_getrusage
292 PTR sys_gettimeofday
293 PTR sys_settimeofday
294 PTR sys_getgroups /* 4080 */
295 PTR sys_setgroups
296 PTR sys_ni_syscall /* old_select */
297 PTR sys_symlink
298 PTR sys_ni_syscall /* was sys_lstat */
299 PTR sys_readlink /* 4085 */
300 PTR sys_uselib
301 PTR sys_swapon
302 PTR sys_reboot
303 PTR sys_old_readdir
304 PTR sys_mips_mmap /* 4090 */
305 PTR sys_munmap
306 PTR sys_truncate
307 PTR sys_ftruncate
308 PTR sys_fchmod
309 PTR sys_fchown /* 4095 */
310 PTR sys_getpriority
311 PTR sys_setpriority
312 PTR sys_ni_syscall
313 PTR sys_statfs
314 PTR sys_fstatfs /* 4100 */
315 PTR sys_ni_syscall /* was ioperm(2) */
316 PTR sys_socketcall
317 PTR sys_syslog
318 PTR sys_setitimer
319 PTR sys_getitimer /* 4105 */
320 PTR sys_newstat
321 PTR sys_newlstat
322 PTR sys_newfstat
323 PTR sys_uname
324 PTR sys_ni_syscall /* 4110 was iopl(2) */
325 PTR sys_vhangup
326 PTR sys_ni_syscall /* was sys_idle() */
327 PTR sys_ni_syscall /* was sys_vm86 */
328 PTR sys_wait4
329 PTR sys_swapoff /* 4115 */
330 PTR sys_sysinfo
331 PTR sys_ipc
332 PTR sys_fsync
333 PTR sys_sigreturn
334 PTR __sys_clone /* 4120 */
335 PTR sys_setdomainname
336 PTR sys_newuname
337 PTR sys_ni_syscall /* sys_modify_ldt */
338 PTR sys_adjtimex
339 PTR sys_mprotect /* 4125 */
340 PTR sys_sigprocmask
341 PTR sys_ni_syscall /* was create_module */
342 PTR sys_init_module
343 PTR sys_delete_module
344 PTR sys_ni_syscall /* 4130 was get_kernel_syms */
345 PTR sys_quotactl
346 PTR sys_getpgid
347 PTR sys_fchdir
348 PTR sys_bdflush
349 PTR sys_sysfs /* 4135 */
350 PTR sys_personality
351 PTR sys_ni_syscall /* for afs_syscall */
352 PTR sys_setfsuid
353 PTR sys_setfsgid
354 PTR sys_llseek /* 4140 */
355 PTR sys_getdents
356 PTR sys_select
357 PTR sys_flock
358 PTR sys_msync
359 PTR sys_readv /* 4145 */
360 PTR sys_writev
361 PTR sys_cacheflush
362 PTR sys_cachectl
363 PTR __sys_sysmips
364 PTR sys_ni_syscall /* 4150 */
365 PTR sys_getsid
366 PTR sys_fdatasync
367 PTR sys_sysctl
368 PTR sys_mlock
369 PTR sys_munlock /* 4155 */
370 PTR sys_mlockall
371 PTR sys_munlockall
372 PTR sys_sched_setparam
373 PTR sys_sched_getparam
374 PTR sys_sched_setscheduler /* 4160 */
375 PTR sys_sched_getscheduler
376 PTR sys_sched_yield
377 PTR sys_sched_get_priority_max
378 PTR sys_sched_get_priority_min
379 PTR sys_sched_rr_get_interval /* 4165 */
380 PTR sys_nanosleep
381 PTR sys_mremap
382 PTR sys_accept
383 PTR sys_bind
384 PTR sys_connect /* 4170 */
385 PTR sys_getpeername
386 PTR sys_getsockname
387 PTR sys_getsockopt
388 PTR sys_listen
389 PTR sys_recv /* 4175 */
390 PTR sys_recvfrom
391 PTR sys_recvmsg
392 PTR sys_send
393 PTR sys_sendmsg
394 PTR sys_sendto /* 4180 */
395 PTR sys_setsockopt
396 PTR sys_shutdown
397 PTR sys_socket
398 PTR sys_socketpair
399 PTR sys_setresuid /* 4185 */
400 PTR sys_getresuid
401 PTR sys_ni_syscall /* was sys_query_module */
402 PTR sys_poll
403 PTR sys_ni_syscall /* was nfsservctl */
404 PTR sys_setresgid /* 4190 */
405 PTR sys_getresgid
406 PTR sys_prctl
407 PTR sys_rt_sigreturn
408 PTR sys_rt_sigaction
409 PTR sys_rt_sigprocmask /* 4195 */
410 PTR sys_rt_sigpending
411 PTR sys_rt_sigtimedwait
412 PTR sys_rt_sigqueueinfo
413 PTR sys_rt_sigsuspend
414 PTR sys_pread64 /* 4200 */
415 PTR sys_pwrite64
416 PTR sys_chown
417 PTR sys_getcwd
418 PTR sys_capget
419 PTR sys_capset /* 4205 */
420 PTR sys_sigaltstack
421 PTR sys_sendfile
422 PTR sys_ni_syscall
423 PTR sys_ni_syscall
424 PTR sys_mips_mmap2 /* 4210 */
425 PTR sys_truncate64
426 PTR sys_ftruncate64
427 PTR sys_stat64
428 PTR sys_lstat64
429 PTR sys_fstat64 /* 4215 */
430 PTR sys_pivot_root
431 PTR sys_mincore
432 PTR sys_madvise
433 PTR sys_getdents64
434 PTR sys_fcntl64 /* 4220 */
435 PTR sys_ni_syscall
436 PTR sys_gettid
437 PTR sys_readahead
438 PTR sys_setxattr
439 PTR sys_lsetxattr /* 4225 */
440 PTR sys_fsetxattr
441 PTR sys_getxattr
442 PTR sys_lgetxattr
443 PTR sys_fgetxattr
444 PTR sys_listxattr /* 4230 */
445 PTR sys_llistxattr
446 PTR sys_flistxattr
447 PTR sys_removexattr
448 PTR sys_lremovexattr
449 PTR sys_fremovexattr /* 4235 */
450 PTR sys_tkill
451 PTR sys_sendfile64
452 PTR sys_futex
453#ifdef CONFIG_MIPS_MT_FPAFF
454 /*
455 * For FPU affinity scheduling on MIPS MT processors, we need to
456 * intercept sys_sched_xxxaffinity() calls until we get a proper hook
457 * in kernel/sched/core.c. Considered only temporary we only support
458 * these hooks for the 32-bit kernel - there is no MIPS64 MT processor
459 * atm.
460 */
461 PTR mipsmt_sys_sched_setaffinity
462 PTR mipsmt_sys_sched_getaffinity
463#else
464 PTR sys_sched_setaffinity
465 PTR sys_sched_getaffinity /* 4240 */
466#endif /* CONFIG_MIPS_MT_FPAFF */
467 PTR sys_io_setup
468 PTR sys_io_destroy
469 PTR sys_io_getevents
470 PTR sys_io_submit
471 PTR sys_io_cancel /* 4245 */
472 PTR sys_exit_group
473 PTR sys_lookup_dcookie
474 PTR sys_epoll_create
475 PTR sys_epoll_ctl
476 PTR sys_epoll_wait /* 4250 */
477 PTR sys_remap_file_pages
478 PTR sys_set_tid_address
479 PTR sys_restart_syscall
480 PTR sys_fadvise64_64
481 PTR sys_statfs64 /* 4255 */
482 PTR sys_fstatfs64
483 PTR sys_timer_create
484 PTR sys_timer_settime
485 PTR sys_timer_gettime
486 PTR sys_timer_getoverrun /* 4260 */
487 PTR sys_timer_delete
488 PTR sys_clock_settime
489 PTR sys_clock_gettime
490 PTR sys_clock_getres
491 PTR sys_clock_nanosleep /* 4265 */
492 PTR sys_tgkill
493 PTR sys_utimes
494 PTR sys_mbind
495 PTR sys_get_mempolicy
496 PTR sys_set_mempolicy /* 4270 */
497 PTR sys_mq_open
498 PTR sys_mq_unlink
499 PTR sys_mq_timedsend
500 PTR sys_mq_timedreceive
501 PTR sys_mq_notify /* 4275 */
502 PTR sys_mq_getsetattr
503 PTR sys_ni_syscall /* sys_vserver */
504 PTR sys_waitid
505 PTR sys_ni_syscall /* available, was setaltroot */
506 PTR sys_add_key /* 4280 */
507 PTR sys_request_key
508 PTR sys_keyctl
509 PTR sys_set_thread_area
510 PTR sys_inotify_init
511 PTR sys_inotify_add_watch /* 4285 */
512 PTR sys_inotify_rm_watch
513 PTR sys_migrate_pages
514 PTR sys_openat
515 PTR sys_mkdirat
516 PTR sys_mknodat /* 4290 */
517 PTR sys_fchownat
518 PTR sys_futimesat
519 PTR sys_fstatat64
520 PTR sys_unlinkat
521 PTR sys_renameat /* 4295 */
522 PTR sys_linkat
523 PTR sys_symlinkat
524 PTR sys_readlinkat
525 PTR sys_fchmodat
526 PTR sys_faccessat /* 4300 */
527 PTR sys_pselect6
528 PTR sys_ppoll
529 PTR sys_unshare
530 PTR sys_splice
531 PTR sys_sync_file_range /* 4305 */
532 PTR sys_tee
533 PTR sys_vmsplice
534 PTR sys_move_pages
535 PTR sys_set_robust_list
536 PTR sys_get_robust_list /* 4310 */
537 PTR sys_kexec_load
538 PTR sys_getcpu
539 PTR sys_epoll_pwait
540 PTR sys_ioprio_set
541 PTR sys_ioprio_get /* 4315 */
542 PTR sys_utimensat
543 PTR sys_signalfd
544 PTR sys_ni_syscall /* was timerfd */
545 PTR sys_eventfd
546 PTR sys_fallocate /* 4320 */
547 PTR sys_timerfd_create
548 PTR sys_timerfd_gettime
549 PTR sys_timerfd_settime
550 PTR sys_signalfd4
551 PTR sys_eventfd2 /* 4325 */
552 PTR sys_epoll_create1
553 PTR sys_dup3
554 PTR sys_pipe2
555 PTR sys_inotify_init1
556 PTR sys_preadv /* 4330 */
557 PTR sys_pwritev
558 PTR sys_rt_tgsigqueueinfo
559 PTR sys_perf_event_open
560 PTR sys_accept4
561 PTR sys_recvmmsg /* 4335 */
562 PTR sys_fanotify_init
563 PTR sys_fanotify_mark
564 PTR sys_prlimit64
565 PTR sys_name_to_handle_at
566 PTR sys_open_by_handle_at /* 4340 */
567 PTR sys_clock_adjtime
568 PTR sys_syncfs
569 PTR sys_sendmmsg
570 PTR sys_setns
571 PTR sys_process_vm_readv /* 4345 */
572 PTR sys_process_vm_writev
573 PTR sys_kcmp
574 PTR sys_finit_module
575 PTR sys_sched_setattr
576 PTR sys_sched_getattr /* 4350 */
577 PTR sys_renameat2
578 PTR sys_seccomp
579 PTR sys_getrandom
580 PTR sys_memfd_create
581 PTR sys_bpf /* 4355 */
582 PTR sys_execveat
583 PTR sys_userfaultfd
584 PTR sys_membarrier
585 PTR sys_mlock2
586 PTR sys_copy_file_range /* 4360 */
587 PTR sys_preadv2
588 PTR sys_pwritev2
589 PTR sys_pkey_mprotect
590 PTR sys_pkey_alloc
591 PTR sys_pkey_free /* 4365 */
592 PTR sys_statx