1 /* 1 /* 2 * This file is subject to the terms and condi 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the mai 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 4 * for more details. 5 * 5 * 6 * Copyright (C) 1995 - 2000, 2001 by Ralf Bae 6 * Copyright (C) 1995 - 2000, 2001 by Ralf Baechle 7 * Copyright (C) 1999, 2000 Silicon Graphics, 7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc. 8 * Copyright (C) 2001 MIPS Technologies, Inc. 8 * Copyright (C) 2001 MIPS Technologies, Inc. 9 * Copyright (C) 2004 Thiemo Seufer 9 * Copyright (C) 2004 Thiemo Seufer 10 * 10 * 11 * Hairy, the userspace application uses a dif 11 * Hairy, the userspace application uses a different argument passing 12 * convention than the kernel, so we have to t 12 * convention than the kernel, so we have to translate things from o32 13 * to ABI64 calling convention. 64-bit syscal 13 * to ABI64 calling convention. 64-bit syscalls are also processed 14 * here for now. 14 * here for now. 15 */ 15 */ 16 #include <linux/errno.h> 16 #include <linux/errno.h> 17 #include <asm/asm.h> 17 #include <asm/asm.h> 18 #include <asm/asmmacro.h> 18 #include <asm/asmmacro.h> 19 #include <asm/irqflags.h> 19 #include <asm/irqflags.h> 20 #include <asm/mipsregs.h> 20 #include <asm/mipsregs.h> 21 #include <asm/regdef.h> 21 #include <asm/regdef.h> 22 #include <asm/stackframe.h> 22 #include <asm/stackframe.h> 23 #include <asm/thread_info.h> 23 #include <asm/thread_info.h> 24 #include <asm/unistd.h> 24 #include <asm/unistd.h> 25 #include <asm/sysmips.h> 25 #include <asm/sysmips.h> 26 26 27 .align 5 27 .align 5 28 NESTED(handle_sys, PT_SIZE, sp) 28 NESTED(handle_sys, PT_SIZE, sp) 29 .set noat 29 .set noat 30 SAVE_SOME 30 SAVE_SOME 31 TRACE_IRQS_ON_RELOAD 31 TRACE_IRQS_ON_RELOAD 32 STI 32 STI 33 .set at 33 .set at 34 ld t1, PT_EPC(sp) # skip 34 ld t1, PT_EPC(sp) # skip syscall on return 35 35 36 dsubu t0, v0, __NR_O32_Linux # chec 36 dsubu t0, v0, __NR_O32_Linux # check syscall number 37 sltiu t0, t0, __NR_O32_Linux_syscall !! 37 sltiu t0, t0, __NR_O32_Linux_syscalls + 1 38 daddiu t1, 4 # skip 38 daddiu t1, 4 # skip to next instruction 39 sd t1, PT_EPC(sp) 39 sd t1, PT_EPC(sp) 40 beqz t0, not_o32_scall 40 beqz t0, not_o32_scall 41 #if 0 41 #if 0 42 SAVE_ALL 42 SAVE_ALL 43 move a1, v0 43 move a1, v0 44 ASM_PRINT("Scall %ld\n") !! 44 PRINT("Scall %ld\n") 45 RESTORE_ALL 45 RESTORE_ALL 46 #endif 46 #endif 47 47 48 /* We don't want to stumble over broke 48 /* We don't want to stumble over broken sign extensions from 49 userland. O32 does never use the up 49 userland. O32 does never use the upper half. */ 50 sll a0, a0, 0 50 sll a0, a0, 0 51 sll a1, a1, 0 51 sll a1, a1, 0 52 sll a2, a2, 0 52 sll a2, a2, 0 53 sll a3, a3, 0 53 sll a3, a3, 0 54 54 55 sd a3, PT_R26(sp) # save 55 sd a3, PT_R26(sp) # save a3 for syscall restarting 56 56 57 /* 57 /* 58 * More than four arguments. Try to d 58 * More than four arguments. Try to deal with it by copying the 59 * stack arguments from the user stack 59 * stack arguments from the user stack to the kernel stack. 60 * This Sucks (TM). 60 * This Sucks (TM). 61 * 61 * 62 * We intentionally keep the kernel st 62 * We intentionally keep the kernel stack a little below the top of 63 * userspace so we don't have to do a 63 * userspace so we don't have to do a slower byte accurate check here. 64 */ 64 */ 65 ld t0, PT_R29(sp) # get 65 ld t0, PT_R29(sp) # get old user stack pointer 66 daddu t1, t0, 32 66 daddu t1, t0, 32 67 bltz t1, bad_stack 67 bltz t1, bad_stack 68 68 69 load_a4: lw a4, 16(t0) # argu 69 load_a4: lw a4, 16(t0) # argument #5 from usp 70 load_a5: lw a5, 20(t0) # argu 70 load_a5: lw a5, 20(t0) # argument #6 from usp 71 load_a6: lw a6, 24(t0) # argu 71 load_a6: lw a6, 24(t0) # argument #7 from usp 72 load_a7: lw a7, 28(t0) # argu 72 load_a7: lw a7, 28(t0) # argument #8 from usp 73 loads_done: 73 loads_done: 74 74 75 .section __ex_table,"a" 75 .section __ex_table,"a" 76 PTR_WD load_a4, bad_stack_a4 !! 76 PTR load_a4, bad_stack_a4 77 PTR_WD load_a5, bad_stack_a5 !! 77 PTR load_a5, bad_stack_a5 78 PTR_WD load_a6, bad_stack_a6 !! 78 PTR load_a6, bad_stack_a6 79 PTR_WD load_a7, bad_stack_a7 !! 79 PTR load_a7, bad_stack_a7 80 .previous 80 .previous 81 81 82 /* << 83 * absolute syscall number is in v0 un << 84 * where the real syscall number is in << 85 * note: NR_syscall is the first O32 s << 86 * only defined when compiling with -m << 87 * therefore __NR_O32_Linux is used (4 << 88 */ << 89 << 90 subu t2, v0, __NR_O32_Linux << 91 bnez t2, 1f /* __NR_syscall at offs << 92 LONG_S a0, TI_SYSCALL($28) # Save << 93 b 2f << 94 1: << 95 LONG_S v0, TI_SYSCALL($28) # Save << 96 2: << 97 << 98 li t1, _TIF_WORK_SYSCALL_ENTRY 82 li t1, _TIF_WORK_SYSCALL_ENTRY 99 LONG_L t0, TI_FLAGS($28) # sysc 83 LONG_L t0, TI_FLAGS($28) # syscall tracing enabled? 100 and t0, t1, t0 84 and t0, t1, t0 101 bnez t0, trace_a_syscall 85 bnez t0, trace_a_syscall 102 86 103 syscall_common: 87 syscall_common: 104 dsll t0, v0, 3 # offs 88 dsll t0, v0, 3 # offset into table 105 ld t2, (sys32_call_table - (__NR_ 89 ld t2, (sys32_call_table - (__NR_O32_Linux * 8))(t0) 106 90 107 jalr t2 # Do T 91 jalr t2 # Do The Real Thing (TM) 108 92 109 li t0, -EMAXERRNO - 1 # erro 93 li t0, -EMAXERRNO - 1 # error? 110 sltu t0, t0, v0 94 sltu t0, t0, v0 111 sd t0, PT_R7(sp) # set 95 sd t0, PT_R7(sp) # set error flag 112 beqz t0, 1f 96 beqz t0, 1f 113 97 114 ld t1, PT_R2(sp) # sysc 98 ld t1, PT_R2(sp) # syscall number 115 dnegu v0 # erro 99 dnegu v0 # error 116 sd t1, PT_R0(sp) # save 100 sd t1, PT_R0(sp) # save it for syscall restarting 117 1: sd v0, PT_R2(sp) # resu 101 1: sd v0, PT_R2(sp) # result 118 102 119 o32_syscall_exit: 103 o32_syscall_exit: 120 j syscall_exit_partial 104 j syscall_exit_partial 121 105 122 /* ------------------------------------------- 106 /* ------------------------------------------------------------------------ */ 123 107 124 trace_a_syscall: 108 trace_a_syscall: 125 SAVE_STATIC 109 SAVE_STATIC 126 sd a4, PT_R8(sp) # Save 110 sd a4, PT_R8(sp) # Save argument registers 127 sd a5, PT_R9(sp) 111 sd a5, PT_R9(sp) 128 sd a6, PT_R10(sp) 112 sd a6, PT_R10(sp) 129 sd a7, PT_R11(sp) # For 113 sd a7, PT_R11(sp) # For indirect syscalls 130 114 131 move a0, sp 115 move a0, sp 132 jal syscall_trace_enter !! 116 /* >> 117 * absolute syscall number is in v0 unless we called syscall(__NR_###) >> 118 * 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 */ >> 123 .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 ld a1, PT_R4(sp) /* Arg1 for __NR_syscall case */ >> 129 .set pop >> 130 >> 131 1: jal syscall_trace_enter 133 132 134 bltz v0, 1f # secc 133 bltz v0, 1f # seccomp failed? Skip syscall 135 134 136 RESTORE_STATIC 135 RESTORE_STATIC 137 ld v0, PT_R2(sp) # Rest 136 ld v0, PT_R2(sp) # Restore syscall (maybe modified) 138 ld a0, PT_R4(sp) # Rest 137 ld a0, PT_R4(sp) # Restore argument registers 139 ld a1, PT_R5(sp) 138 ld a1, PT_R5(sp) 140 ld a2, PT_R6(sp) 139 ld a2, PT_R6(sp) 141 ld a3, PT_R7(sp) 140 ld a3, PT_R7(sp) 142 ld a4, PT_R8(sp) 141 ld a4, PT_R8(sp) 143 ld a5, PT_R9(sp) 142 ld a5, PT_R9(sp) 144 ld a6, PT_R10(sp) 143 ld a6, PT_R10(sp) 145 ld a7, PT_R11(sp) # For 144 ld a7, PT_R11(sp) # For indirect syscalls 146 145 147 dsubu t0, v0, __NR_O32_Linux # chec 146 dsubu t0, v0, __NR_O32_Linux # check (new) syscall number 148 sltiu t0, t0, __NR_O32_Linux_syscall !! 147 sltiu t0, t0, __NR_O32_Linux_syscalls + 1 149 beqz t0, not_o32_scall 148 beqz t0, not_o32_scall 150 149 151 j syscall_common 150 j syscall_common 152 151 153 1: j syscall_exit 152 1: j syscall_exit 154 153 155 /* ------------------------------------------- 154 /* ------------------------------------------------------------------------ */ 156 155 157 /* 156 /* 158 * The stackpointer for a call with mo 157 * The stackpointer for a call with more than 4 arguments is bad. 159 */ 158 */ 160 bad_stack: 159 bad_stack: 161 li v0, EFAULT 160 li v0, EFAULT 162 sd v0, PT_R2(sp) 161 sd v0, PT_R2(sp) 163 li t0, 1 # set 162 li t0, 1 # set error flag 164 sd t0, PT_R7(sp) 163 sd t0, PT_R7(sp) 165 j o32_syscall_exit 164 j o32_syscall_exit 166 165 167 bad_stack_a4: 166 bad_stack_a4: 168 li a4, 0 167 li a4, 0 169 b load_a5 168 b load_a5 170 169 171 bad_stack_a5: 170 bad_stack_a5: 172 li a5, 0 171 li a5, 0 173 b load_a6 172 b load_a6 174 173 175 bad_stack_a6: 174 bad_stack_a6: 176 li a6, 0 175 li a6, 0 177 b load_a7 176 b load_a7 178 177 179 bad_stack_a7: 178 bad_stack_a7: 180 li a7, 0 179 li a7, 0 181 b loads_done 180 b loads_done 182 181 183 not_o32_scall: 182 not_o32_scall: 184 /* 183 /* 185 * This is not an o32 compatibility sy 184 * This is not an o32 compatibility syscall, pass it on 186 * to the 64-bit syscall handlers. 185 * to the 64-bit syscall handlers. 187 */ 186 */ 188 #ifdef CONFIG_MIPS32_N32 187 #ifdef CONFIG_MIPS32_N32 189 j handle_sysn32 188 j handle_sysn32 190 #else 189 #else 191 j handle_sys64 190 j handle_sys64 192 #endif 191 #endif 193 END(handle_sys) 192 END(handle_sys) 194 193 195 LEAF(sys32_syscall) 194 LEAF(sys32_syscall) 196 subu t0, a0, __NR_O32_Linux # chec 195 subu t0, a0, __NR_O32_Linux # check syscall number 197 sltiu v0, t0, __NR_O32_Linux_syscall !! 196 sltiu v0, t0, __NR_O32_Linux_syscalls + 1 198 beqz t0, einval # do n 197 beqz t0, einval # do not recurse 199 dsll t1, t0, 3 198 dsll t1, t0, 3 200 beqz v0, einval 199 beqz v0, einval 201 ld t2, sys32_call_table(t1) 200 ld t2, sys32_call_table(t1) # syscall routine >> 201 sd a0, PT_R2(sp) # call routine directly on restart 202 202 203 move a0, a1 # shif 203 move a0, a1 # shift argument registers 204 move a1, a2 204 move a1, a2 205 move a2, a3 205 move a2, a3 206 move a3, a4 206 move a3, a4 207 move a4, a5 207 move a4, a5 208 move a5, a6 208 move a5, a6 209 move a6, a7 209 move a6, a7 >> 210 sd a0, PT_R4(sp) # ... and push back a0 - a3, some >> 211 sd a1, PT_R5(sp) # syscalls expect them there >> 212 sd a2, PT_R6(sp) >> 213 sd a3, PT_R7(sp) >> 214 sd a3, PT_R26(sp) # update a3 for syscall restarting 210 jr t2 215 jr t2 211 /* Unreached */ 216 /* Unreached */ 212 217 213 einval: li v0, -ENOSYS 218 einval: li v0, -ENOSYS 214 jr ra 219 jr ra 215 END(sys32_syscall) 220 END(sys32_syscall) 216 221 217 #define __SYSCALL_WITH_COMPAT(nr, native, comp << 218 #define __SYSCALL(nr, entry) PTR_WD entry << 219 .align 3 222 .align 3 220 .type sys32_call_table,@object 223 .type sys32_call_table,@object 221 EXPORT(sys32_call_table) 224 EXPORT(sys32_call_table) 222 #include <asm/syscall_table_o32.h> !! 225 PTR sys32_syscall /* 4000 */ >> 226 PTR sys_exit >> 227 PTR __sys_fork >> 228 PTR sys_read >> 229 PTR sys_write >> 230 PTR compat_sys_open /* 4005 */ >> 231 PTR sys_close >> 232 PTR sys_waitpid >> 233 PTR sys_creat >> 234 PTR sys_link >> 235 PTR sys_unlink /* 4010 */ >> 236 PTR compat_sys_execve >> 237 PTR sys_chdir >> 238 PTR compat_sys_time >> 239 PTR sys_mknod >> 240 PTR sys_chmod /* 4015 */ >> 241 PTR sys_lchown >> 242 PTR sys_ni_syscall >> 243 PTR sys_ni_syscall /* was sys_stat */ >> 244 PTR sys_lseek >> 245 PTR sys_getpid /* 4020 */ >> 246 PTR compat_sys_mount >> 247 PTR sys_oldumount >> 248 PTR sys_setuid >> 249 PTR sys_getuid >> 250 PTR compat_sys_stime /* 4025 */ >> 251 PTR compat_sys_ptrace >> 252 PTR sys_alarm >> 253 PTR sys_ni_syscall /* was sys_fstat */ >> 254 PTR sys_pause >> 255 PTR compat_sys_utime /* 4030 */ >> 256 PTR sys_ni_syscall >> 257 PTR sys_ni_syscall >> 258 PTR sys_access >> 259 PTR sys_nice >> 260 PTR sys_ni_syscall /* 4035 */ >> 261 PTR sys_sync >> 262 PTR sys_kill >> 263 PTR sys_rename >> 264 PTR sys_mkdir >> 265 PTR sys_rmdir /* 4040 */ >> 266 PTR sys_dup >> 267 PTR sysm_pipe >> 268 PTR compat_sys_times >> 269 PTR sys_ni_syscall >> 270 PTR sys_brk /* 4045 */ >> 271 PTR sys_setgid >> 272 PTR sys_getgid >> 273 PTR sys_ni_syscall /* was signal 2 */ >> 274 PTR sys_geteuid >> 275 PTR sys_getegid /* 4050 */ >> 276 PTR sys_acct >> 277 PTR sys_umount >> 278 PTR sys_ni_syscall >> 279 PTR compat_sys_ioctl >> 280 PTR compat_sys_fcntl /* 4055 */ >> 281 PTR sys_ni_syscall >> 282 PTR sys_setpgid >> 283 PTR sys_ni_syscall >> 284 PTR sys_olduname >> 285 PTR sys_umask /* 4060 */ >> 286 PTR sys_chroot >> 287 PTR compat_sys_ustat >> 288 PTR sys_dup2 >> 289 PTR sys_getppid >> 290 PTR sys_getpgrp /* 4065 */ >> 291 PTR sys_setsid >> 292 PTR sys_32_sigaction >> 293 PTR sys_sgetmask >> 294 PTR sys_ssetmask >> 295 PTR sys_setreuid /* 4070 */ >> 296 PTR sys_setregid >> 297 PTR sys32_sigsuspend >> 298 PTR compat_sys_sigpending >> 299 PTR sys_sethostname >> 300 PTR compat_sys_setrlimit /* 4075 */ >> 301 PTR compat_sys_getrlimit >> 302 PTR compat_sys_getrusage >> 303 PTR compat_sys_gettimeofday >> 304 PTR compat_sys_settimeofday >> 305 PTR sys_getgroups /* 4080 */ >> 306 PTR sys_setgroups >> 307 PTR sys_ni_syscall /* old_select */ >> 308 PTR sys_symlink >> 309 PTR sys_ni_syscall /* was sys_lstat */ >> 310 PTR sys_readlink /* 4085 */ >> 311 PTR sys_uselib >> 312 PTR sys_swapon >> 313 PTR sys_reboot >> 314 PTR compat_sys_old_readdir >> 315 PTR sys_mips_mmap /* 4090 */ >> 316 PTR sys_munmap >> 317 PTR compat_sys_truncate >> 318 PTR compat_sys_ftruncate >> 319 PTR sys_fchmod >> 320 PTR sys_fchown /* 4095 */ >> 321 PTR sys_getpriority >> 322 PTR sys_setpriority >> 323 PTR sys_ni_syscall >> 324 PTR compat_sys_statfs >> 325 PTR compat_sys_fstatfs /* 4100 */ >> 326 PTR sys_ni_syscall /* sys_ioperm */ >> 327 PTR compat_sys_socketcall >> 328 PTR sys_syslog >> 329 PTR compat_sys_setitimer >> 330 PTR compat_sys_getitimer /* 4105 */ >> 331 PTR compat_sys_newstat >> 332 PTR compat_sys_newlstat >> 333 PTR compat_sys_newfstat >> 334 PTR sys_uname >> 335 PTR sys_ni_syscall /* sys_ioperm *//* 4110 */ >> 336 PTR sys_vhangup >> 337 PTR sys_ni_syscall /* was sys_idle */ >> 338 PTR sys_ni_syscall /* sys_vm86 */ >> 339 PTR compat_sys_wait4 >> 340 PTR sys_swapoff /* 4115 */ >> 341 PTR compat_sys_sysinfo >> 342 PTR compat_sys_ipc >> 343 PTR sys_fsync >> 344 PTR sys32_sigreturn >> 345 PTR __sys_clone /* 4120 */ >> 346 PTR sys_setdomainname >> 347 PTR sys_newuname >> 348 PTR sys_ni_syscall /* sys_modify_ldt */ >> 349 PTR compat_sys_adjtimex >> 350 PTR sys_mprotect /* 4125 */ >> 351 PTR compat_sys_sigprocmask >> 352 PTR sys_ni_syscall /* was creat_module */ >> 353 PTR sys_init_module >> 354 PTR sys_delete_module >> 355 PTR sys_ni_syscall /* 4130, get_kernel_syms */ >> 356 PTR sys_quotactl >> 357 PTR sys_getpgid >> 358 PTR sys_fchdir >> 359 PTR sys_bdflush >> 360 PTR sys_sysfs /* 4135 */ >> 361 PTR sys_32_personality >> 362 PTR sys_ni_syscall /* for afs_syscall */ >> 363 PTR sys_setfsuid >> 364 PTR sys_setfsgid >> 365 PTR sys_32_llseek /* 4140 */ >> 366 PTR compat_sys_getdents >> 367 PTR compat_sys_select >> 368 PTR sys_flock >> 369 PTR sys_msync >> 370 PTR compat_sys_readv /* 4145 */ >> 371 PTR compat_sys_writev >> 372 PTR sys_cacheflush >> 373 PTR sys_cachectl >> 374 PTR __sys_sysmips >> 375 PTR sys_ni_syscall /* 4150 */ >> 376 PTR sys_getsid >> 377 PTR sys_fdatasync >> 378 PTR compat_sys_sysctl >> 379 PTR sys_mlock >> 380 PTR sys_munlock /* 4155 */ >> 381 PTR sys_mlockall >> 382 PTR sys_munlockall >> 383 PTR sys_sched_setparam >> 384 PTR sys_sched_getparam >> 385 PTR sys_sched_setscheduler /* 4160 */ >> 386 PTR sys_sched_getscheduler >> 387 PTR sys_sched_yield >> 388 PTR sys_sched_get_priority_max >> 389 PTR sys_sched_get_priority_min >> 390 PTR compat_sys_sched_rr_get_interval /* 4165 */ >> 391 PTR compat_sys_nanosleep >> 392 PTR sys_mremap >> 393 PTR sys_accept >> 394 PTR sys_bind >> 395 PTR sys_connect /* 4170 */ >> 396 PTR sys_getpeername >> 397 PTR sys_getsockname >> 398 PTR compat_sys_getsockopt >> 399 PTR sys_listen >> 400 PTR compat_sys_recv /* 4175 */ >> 401 PTR compat_sys_recvfrom >> 402 PTR compat_sys_recvmsg >> 403 PTR sys_send >> 404 PTR compat_sys_sendmsg >> 405 PTR sys_sendto /* 4180 */ >> 406 PTR compat_sys_setsockopt >> 407 PTR sys_shutdown >> 408 PTR sys_socket >> 409 PTR sys_socketpair >> 410 PTR sys_setresuid /* 4185 */ >> 411 PTR sys_getresuid >> 412 PTR sys_ni_syscall /* was query_module */ >> 413 PTR sys_poll >> 414 PTR sys_ni_syscall /* was nfsservctl */ >> 415 PTR sys_setresgid /* 4190 */ >> 416 PTR sys_getresgid >> 417 PTR sys_prctl >> 418 PTR sys32_rt_sigreturn >> 419 PTR compat_sys_rt_sigaction >> 420 PTR compat_sys_rt_sigprocmask /* 4195 */ >> 421 PTR compat_sys_rt_sigpending >> 422 PTR compat_sys_rt_sigtimedwait >> 423 PTR compat_sys_rt_sigqueueinfo >> 424 PTR compat_sys_rt_sigsuspend >> 425 PTR sys_32_pread /* 4200 */ >> 426 PTR sys_32_pwrite >> 427 PTR sys_chown >> 428 PTR sys_getcwd >> 429 PTR sys_capget >> 430 PTR sys_capset /* 4205 */ >> 431 PTR compat_sys_sigaltstack >> 432 PTR compat_sys_sendfile >> 433 PTR sys_ni_syscall >> 434 PTR sys_ni_syscall >> 435 PTR sys_mips_mmap2 /* 4210 */ >> 436 PTR sys_32_truncate64 >> 437 PTR sys_32_ftruncate64 >> 438 PTR sys_newstat >> 439 PTR sys_newlstat >> 440 PTR sys_newfstat /* 4215 */ >> 441 PTR sys_pivot_root >> 442 PTR sys_mincore >> 443 PTR sys_madvise >> 444 PTR sys_getdents64 >> 445 PTR compat_sys_fcntl64 /* 4220 */ >> 446 PTR sys_ni_syscall >> 447 PTR sys_gettid >> 448 PTR sys32_readahead >> 449 PTR sys_setxattr >> 450 PTR sys_lsetxattr /* 4225 */ >> 451 PTR sys_fsetxattr >> 452 PTR sys_getxattr >> 453 PTR sys_lgetxattr >> 454 PTR sys_fgetxattr >> 455 PTR sys_listxattr /* 4230 */ >> 456 PTR sys_llistxattr >> 457 PTR sys_flistxattr >> 458 PTR sys_removexattr >> 459 PTR sys_lremovexattr >> 460 PTR sys_fremovexattr /* 4235 */ >> 461 PTR sys_tkill >> 462 PTR sys_sendfile64 >> 463 PTR compat_sys_futex >> 464 PTR compat_sys_sched_setaffinity >> 465 PTR compat_sys_sched_getaffinity /* 4240 */ >> 466 PTR compat_sys_io_setup >> 467 PTR sys_io_destroy >> 468 PTR compat_sys_io_getevents >> 469 PTR compat_sys_io_submit >> 470 PTR sys_io_cancel /* 4245 */ >> 471 PTR sys_exit_group >> 472 PTR compat_sys_lookup_dcookie >> 473 PTR sys_epoll_create >> 474 PTR sys_epoll_ctl >> 475 PTR sys_epoll_wait /* 4250 */ >> 476 PTR sys_remap_file_pages >> 477 PTR sys_set_tid_address >> 478 PTR sys_restart_syscall >> 479 PTR sys32_fadvise64_64 >> 480 PTR compat_sys_statfs64 /* 4255 */ >> 481 PTR compat_sys_fstatfs64 >> 482 PTR compat_sys_timer_create >> 483 PTR compat_sys_timer_settime >> 484 PTR compat_sys_timer_gettime >> 485 PTR sys_timer_getoverrun /* 4260 */ >> 486 PTR sys_timer_delete >> 487 PTR compat_sys_clock_settime >> 488 PTR compat_sys_clock_gettime >> 489 PTR compat_sys_clock_getres >> 490 PTR compat_sys_clock_nanosleep /* 4265 */ >> 491 PTR sys_tgkill >> 492 PTR compat_sys_utimes >> 493 PTR compat_sys_mbind >> 494 PTR compat_sys_get_mempolicy >> 495 PTR compat_sys_set_mempolicy /* 4270 */ >> 496 PTR compat_sys_mq_open >> 497 PTR sys_mq_unlink >> 498 PTR compat_sys_mq_timedsend >> 499 PTR compat_sys_mq_timedreceive >> 500 PTR compat_sys_mq_notify /* 4275 */ >> 501 PTR compat_sys_mq_getsetattr >> 502 PTR sys_ni_syscall /* sys_vserver */ >> 503 PTR compat_sys_waitid >> 504 PTR sys_ni_syscall /* available, was setaltroot */ >> 505 PTR sys_add_key /* 4280 */ >> 506 PTR sys_request_key >> 507 PTR compat_sys_keyctl >> 508 PTR sys_set_thread_area >> 509 PTR sys_inotify_init >> 510 PTR sys_inotify_add_watch /* 4285 */ >> 511 PTR sys_inotify_rm_watch >> 512 PTR compat_sys_migrate_pages >> 513 PTR compat_sys_openat >> 514 PTR sys_mkdirat >> 515 PTR sys_mknodat /* 4290 */ >> 516 PTR sys_fchownat >> 517 PTR compat_sys_futimesat >> 518 PTR sys_newfstatat >> 519 PTR sys_unlinkat >> 520 PTR sys_renameat /* 4295 */ >> 521 PTR sys_linkat >> 522 PTR sys_symlinkat >> 523 PTR sys_readlinkat >> 524 PTR sys_fchmodat >> 525 PTR sys_faccessat /* 4300 */ >> 526 PTR compat_sys_pselect6 >> 527 PTR compat_sys_ppoll >> 528 PTR sys_unshare >> 529 PTR sys_splice >> 530 PTR sys32_sync_file_range /* 4305 */ >> 531 PTR sys_tee >> 532 PTR compat_sys_vmsplice >> 533 PTR compat_sys_move_pages >> 534 PTR compat_sys_set_robust_list >> 535 PTR compat_sys_get_robust_list /* 4310 */ >> 536 PTR compat_sys_kexec_load >> 537 PTR sys_getcpu >> 538 PTR compat_sys_epoll_pwait >> 539 PTR sys_ioprio_set >> 540 PTR sys_ioprio_get /* 4315 */ >> 541 PTR compat_sys_utimensat >> 542 PTR compat_sys_signalfd >> 543 PTR sys_ni_syscall /* was timerfd */ >> 544 PTR sys_eventfd >> 545 PTR sys32_fallocate /* 4320 */ >> 546 PTR sys_timerfd_create >> 547 PTR compat_sys_timerfd_gettime >> 548 PTR compat_sys_timerfd_settime >> 549 PTR compat_sys_signalfd4 >> 550 PTR sys_eventfd2 /* 4325 */ >> 551 PTR sys_epoll_create1 >> 552 PTR sys_dup3 >> 553 PTR sys_pipe2 >> 554 PTR sys_inotify_init1 >> 555 PTR compat_sys_preadv /* 4330 */ >> 556 PTR compat_sys_pwritev >> 557 PTR compat_sys_rt_tgsigqueueinfo >> 558 PTR sys_perf_event_open >> 559 PTR sys_accept4 >> 560 PTR compat_sys_recvmmsg /* 4335 */ >> 561 PTR sys_fanotify_init >> 562 PTR compat_sys_fanotify_mark >> 563 PTR sys_prlimit64 >> 564 PTR sys_name_to_handle_at >> 565 PTR compat_sys_open_by_handle_at /* 4340 */ >> 566 PTR compat_sys_clock_adjtime >> 567 PTR sys_syncfs >> 568 PTR compat_sys_sendmmsg >> 569 PTR sys_setns >> 570 PTR compat_sys_process_vm_readv /* 4345 */ >> 571 PTR compat_sys_process_vm_writev >> 572 PTR sys_kcmp >> 573 PTR sys_finit_module >> 574 PTR sys_sched_setattr >> 575 PTR sys_sched_getattr /* 4350 */ >> 576 PTR sys_renameat2 >> 577 PTR sys_seccomp >> 578 PTR sys_getrandom >> 579 PTR sys_memfd_create >> 580 PTR sys_bpf /* 4355 */ >> 581 PTR compat_sys_execveat >> 582 PTR sys_userfaultfd >> 583 PTR sys_membarrier >> 584 PTR sys_mlock2 >> 585 .size sys32_call_table,.-sys32_call_table
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.