Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #include <asm/asmmacro.h> |
| 2 | #include <asm/ia32.h> |
Sam Ravnborg | 39e01cb | 2005-09-09 22:03:13 +0200 | [diff] [blame] | 3 | #include <asm/asm-offsets.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 4 | #include <asm/signal.h> |
| 5 | #include <asm/thread_info.h> |
| 6 | |
| 7 | #include "../kernel/minstate.h" |
| 8 | |
| 9 | /* |
| 10 | * execve() is special because in case of success, we need to |
| 11 | * setup a null register window frame (in case an IA-32 process |
| 12 | * is exec'ing an IA-64 program). |
| 13 | */ |
| 14 | ENTRY(ia32_execve) |
| 15 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(3) |
| 16 | alloc loc1=ar.pfs,3,2,4,0 |
| 17 | mov loc0=rp |
| 18 | .body |
| 19 | zxt4 out0=in0 // filename |
| 20 | ;; // stop bit between alloc and call |
| 21 | zxt4 out1=in1 // argv |
| 22 | zxt4 out2=in2 // envp |
| 23 | add out3=16,sp // regs |
| 24 | br.call.sptk.few rp=sys32_execve |
| 25 | 1: cmp.ge p6,p0=r8,r0 |
| 26 | mov ar.pfs=loc1 // restore ar.pfs |
| 27 | ;; |
| 28 | (p6) mov ar.pfs=r0 // clear ar.pfs in case of success |
| 29 | sxt4 r8=r8 // return 64-bit result |
| 30 | mov rp=loc0 |
| 31 | br.ret.sptk.few rp |
| 32 | END(ia32_execve) |
| 33 | |
| 34 | ENTRY(ia32_clone) |
| 35 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(5) |
| 36 | alloc r16=ar.pfs,5,2,6,0 |
| 37 | DO_SAVE_SWITCH_STACK |
| 38 | mov loc0=rp |
| 39 | mov loc1=r16 // save ar.pfs across do_fork |
| 40 | .body |
| 41 | zxt4 out1=in1 // newsp |
| 42 | mov out3=16 // stacksize (compensates for 16-byte scratch area) |
| 43 | adds out2=IA64_SWITCH_STACK_SIZE+16,sp // out2 = ®s |
| 44 | mov out0=in0 // out0 = clone_flags |
| 45 | zxt4 out4=in2 // out4 = parent_tidptr |
| 46 | zxt4 out5=in4 // out5 = child_tidptr |
| 47 | br.call.sptk.many rp=do_fork |
| 48 | .ret0: .restore sp |
| 49 | adds sp=IA64_SWITCH_STACK_SIZE,sp // pop the switch stack |
| 50 | mov ar.pfs=loc1 |
| 51 | mov rp=loc0 |
| 52 | br.ret.sptk.many rp |
| 53 | END(ia32_clone) |
| 54 | |
| 55 | ENTRY(sys32_rt_sigsuspend) |
| 56 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(8) |
| 57 | alloc loc1=ar.pfs,8,2,3,0 // preserve all eight input regs |
| 58 | mov loc0=rp |
| 59 | mov out0=in0 // mask |
| 60 | mov out1=in1 // sigsetsize |
| 61 | mov out2=sp // out2 = &sigscratch |
| 62 | .fframe 16 |
| 63 | adds sp=-16,sp // allocate dummy "sigscratch" |
| 64 | ;; |
| 65 | .body |
| 66 | br.call.sptk.many rp=ia32_rt_sigsuspend |
| 67 | 1: .restore sp |
| 68 | adds sp=16,sp |
| 69 | mov rp=loc0 |
| 70 | mov ar.pfs=loc1 |
| 71 | br.ret.sptk.many rp |
| 72 | END(sys32_rt_sigsuspend) |
| 73 | |
| 74 | ENTRY(sys32_sigsuspend) |
| 75 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(8) |
| 76 | alloc loc1=ar.pfs,8,2,3,0 // preserve all eight input regs |
| 77 | mov loc0=rp |
| 78 | mov out0=in2 // mask (first two args are ignored) |
| 79 | ;; |
| 80 | mov out1=sp // out1 = &sigscratch |
| 81 | .fframe 16 |
| 82 | adds sp=-16,sp // allocate dummy "sigscratch" |
| 83 | .body |
| 84 | br.call.sptk.many rp=ia32_sigsuspend |
| 85 | 1: .restore sp |
| 86 | adds sp=16,sp |
| 87 | mov rp=loc0 |
| 88 | mov ar.pfs=loc1 |
| 89 | br.ret.sptk.many rp |
| 90 | END(sys32_sigsuspend) |
| 91 | |
| 92 | GLOBAL_ENTRY(ia32_ret_from_clone) |
| 93 | PT_REGS_UNWIND_INFO(0) |
| 94 | { /* |
| 95 | * Some versions of gas generate bad unwind info if the first instruction of a |
| 96 | * procedure doesn't go into the first slot of a bundle. This is a workaround. |
| 97 | */ |
| 98 | nop.m 0 |
| 99 | nop.i 0 |
| 100 | /* |
| 101 | * We need to call schedule_tail() to complete the scheduling process. |
| 102 | * Called by ia64_switch_to after do_fork()->copy_thread(). r8 contains the |
| 103 | * address of the previously executing task. |
| 104 | */ |
| 105 | br.call.sptk.many rp=ia64_invoke_schedule_tail |
| 106 | } |
| 107 | .ret1: |
| 108 | adds r2=TI_FLAGS+IA64_TASK_SIZE,r13 |
| 109 | ;; |
| 110 | ld4 r2=[r2] |
| 111 | ;; |
| 112 | mov r8=0 |
| 113 | and r2=_TIF_SYSCALL_TRACEAUDIT,r2 |
| 114 | ;; |
| 115 | cmp.ne p6,p0=r2,r0 |
| 116 | (p6) br.cond.spnt .ia32_strace_check_retval |
| 117 | ;; // prevent RAW on r8 |
| 118 | END(ia32_ret_from_clone) |
| 119 | // fall thrugh |
| 120 | GLOBAL_ENTRY(ia32_ret_from_syscall) |
| 121 | PT_REGS_UNWIND_INFO(0) |
| 122 | |
| 123 | cmp.ge p6,p7=r8,r0 // syscall executed successfully? |
| 124 | adds r2=IA64_PT_REGS_R8_OFFSET+16,sp // r2 = &pt_regs.r8 |
| 125 | ;; |
| 126 | alloc r3=ar.pfs,0,0,0,0 // drop the syscall argument frame |
| 127 | st8 [r2]=r8 // store return value in slot for r8 |
| 128 | br.cond.sptk.many ia64_leave_kernel |
| 129 | END(ia32_ret_from_syscall) |
| 130 | |
| 131 | // |
| 132 | // Invoke a system call, but do some tracing before and after the call. |
| 133 | // We MUST preserve the current register frame throughout this routine |
| 134 | // because some system calls (such as ia64_execve) directly |
| 135 | // manipulate ar.pfs. |
| 136 | // |
| 137 | // Input: |
| 138 | // r8 = syscall number |
| 139 | // b6 = syscall entry point |
| 140 | // |
| 141 | GLOBAL_ENTRY(ia32_trace_syscall) |
| 142 | PT_REGS_UNWIND_INFO(0) |
| 143 | mov r3=-38 |
| 144 | adds r2=IA64_PT_REGS_R8_OFFSET+16,sp |
| 145 | ;; |
| 146 | st8 [r2]=r3 // initialize return code to -ENOSYS |
| 147 | br.call.sptk.few rp=syscall_trace_enter // give parent a chance to catch syscall args |
| 148 | .ret2: // Need to reload arguments (they may be changed by the tracing process) |
| 149 | adds r2=IA64_PT_REGS_R1_OFFSET+16,sp // r2 = &pt_regs.r1 |
| 150 | adds r3=IA64_PT_REGS_R13_OFFSET+16,sp // r3 = &pt_regs.r13 |
| 151 | mov r15=IA32_NR_syscalls |
| 152 | ;; |
| 153 | ld4 r8=[r2],IA64_PT_REGS_R9_OFFSET-IA64_PT_REGS_R1_OFFSET |
| 154 | movl r16=ia32_syscall_table |
| 155 | ;; |
| 156 | ld4 r33=[r2],8 // r9 == ecx |
| 157 | ld4 r37=[r3],16 // r13 == ebp |
| 158 | cmp.ltu.unc p6,p7=r8,r15 |
| 159 | ;; |
| 160 | ld4 r34=[r2],8 // r10 == edx |
| 161 | ld4 r36=[r3],8 // r15 == edi |
| 162 | (p6) shladd r16=r8,3,r16 // force ni_syscall if not valid syscall number |
| 163 | ;; |
| 164 | ld8 r16=[r16] |
| 165 | ;; |
| 166 | ld4 r32=[r2],8 // r11 == ebx |
| 167 | mov b6=r16 |
| 168 | ld4 r35=[r3],8 // r14 == esi |
| 169 | br.call.sptk.few rp=b6 // do the syscall |
| 170 | .ia32_strace_check_retval: |
| 171 | cmp.lt p6,p0=r8,r0 // syscall failed? |
| 172 | adds r2=IA64_PT_REGS_R8_OFFSET+16,sp // r2 = &pt_regs.r8 |
| 173 | ;; |
| 174 | st8.spill [r2]=r8 // store return value in slot for r8 |
| 175 | br.call.sptk.few rp=syscall_trace_leave // give parent a chance to catch return value |
| 176 | .ret4: alloc r2=ar.pfs,0,0,0,0 // drop the syscall argument frame |
| 177 | br.cond.sptk.many ia64_leave_kernel |
| 178 | END(ia32_trace_syscall) |
| 179 | |
| 180 | GLOBAL_ENTRY(sys32_vfork) |
| 181 | alloc r16=ar.pfs,2,2,4,0;; |
| 182 | mov out0=IA64_CLONE_VFORK|IA64_CLONE_VM|SIGCHLD // out0 = clone_flags |
| 183 | br.cond.sptk.few .fork1 // do the work |
| 184 | END(sys32_vfork) |
| 185 | |
| 186 | GLOBAL_ENTRY(sys32_fork) |
| 187 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2) |
| 188 | alloc r16=ar.pfs,2,2,4,0 |
| 189 | mov out0=SIGCHLD // out0 = clone_flags |
| 190 | ;; |
| 191 | .fork1: |
| 192 | mov loc0=rp |
| 193 | mov loc1=r16 // save ar.pfs across do_fork |
| 194 | DO_SAVE_SWITCH_STACK |
| 195 | |
| 196 | .body |
| 197 | |
| 198 | mov out1=0 |
| 199 | mov out3=0 |
| 200 | adds out2=IA64_SWITCH_STACK_SIZE+16,sp // out2 = ®s |
| 201 | br.call.sptk.few rp=do_fork |
| 202 | .ret5: .restore sp |
| 203 | adds sp=IA64_SWITCH_STACK_SIZE,sp // pop the switch stack |
| 204 | mov ar.pfs=loc1 |
| 205 | mov rp=loc0 |
| 206 | br.ret.sptk.many rp |
| 207 | END(sys32_fork) |
| 208 | |
| 209 | .rodata |
| 210 | .align 8 |
| 211 | .globl ia32_syscall_table |
| 212 | ia32_syscall_table: |
| 213 | data8 sys_ni_syscall /* 0 - old "setup(" system call*/ |
| 214 | data8 sys_exit |
| 215 | data8 sys32_fork |
| 216 | data8 sys_read |
| 217 | data8 sys_write |
Miklos Szeredi | e922efc | 2005-09-06 15:18:25 -0700 | [diff] [blame] | 218 | data8 compat_sys_open /* 5 */ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 219 | data8 sys_close |
| 220 | data8 sys32_waitpid |
| 221 | data8 sys_creat |
| 222 | data8 sys_link |
| 223 | data8 sys_unlink /* 10 */ |
| 224 | data8 ia32_execve |
| 225 | data8 sys_chdir |
| 226 | data8 compat_sys_time |
| 227 | data8 sys_mknod |
| 228 | data8 sys_chmod /* 15 */ |
| 229 | data8 sys_lchown /* 16-bit version */ |
| 230 | data8 sys_ni_syscall /* old break syscall holder */ |
| 231 | data8 sys_ni_syscall |
| 232 | data8 sys32_lseek |
| 233 | data8 sys_getpid /* 20 */ |
| 234 | data8 compat_sys_mount |
| 235 | data8 sys_oldumount |
| 236 | data8 sys_setuid /* 16-bit version */ |
| 237 | data8 sys_getuid /* 16-bit version */ |
| 238 | data8 compat_sys_stime /* 25 */ |
| 239 | data8 sys32_ptrace |
| 240 | data8 sys32_alarm |
| 241 | data8 sys_ni_syscall |
| 242 | data8 sys32_pause |
| 243 | data8 compat_sys_utime /* 30 */ |
| 244 | data8 sys_ni_syscall /* old stty syscall holder */ |
| 245 | data8 sys_ni_syscall /* old gtty syscall holder */ |
| 246 | data8 sys_access |
| 247 | data8 sys_nice |
| 248 | data8 sys_ni_syscall /* 35 */ /* old ftime syscall holder */ |
| 249 | data8 sys_sync |
| 250 | data8 sys_kill |
| 251 | data8 sys_rename |
| 252 | data8 sys_mkdir |
| 253 | data8 sys_rmdir /* 40 */ |
| 254 | data8 sys_dup |
| 255 | data8 sys32_pipe |
| 256 | data8 compat_sys_times |
| 257 | data8 sys_ni_syscall /* old prof syscall holder */ |
| 258 | data8 sys32_brk /* 45 */ |
| 259 | data8 sys_setgid /* 16-bit version */ |
| 260 | data8 sys_getgid /* 16-bit version */ |
| 261 | data8 sys32_signal |
| 262 | data8 sys_geteuid /* 16-bit version */ |
| 263 | data8 sys_getegid /* 16-bit version */ /* 50 */ |
| 264 | data8 sys_acct |
| 265 | data8 sys_umount /* recycled never used phys( */ |
| 266 | data8 sys_ni_syscall /* old lock syscall holder */ |
| 267 | data8 compat_sys_ioctl |
| 268 | data8 compat_sys_fcntl /* 55 */ |
| 269 | data8 sys_ni_syscall /* old mpx syscall holder */ |
| 270 | data8 sys_setpgid |
| 271 | data8 sys_ni_syscall /* old ulimit syscall holder */ |
| 272 | data8 sys_ni_syscall |
| 273 | data8 sys_umask /* 60 */ |
| 274 | data8 sys_chroot |
| 275 | data8 sys_ustat |
| 276 | data8 sys_dup2 |
| 277 | data8 sys_getppid |
| 278 | data8 sys_getpgrp /* 65 */ |
| 279 | data8 sys_setsid |
| 280 | data8 sys32_sigaction |
| 281 | data8 sys_ni_syscall |
| 282 | data8 sys_ni_syscall |
| 283 | data8 sys_setreuid /* 16-bit version */ /* 70 */ |
| 284 | data8 sys_setregid /* 16-bit version */ |
| 285 | data8 sys32_sigsuspend |
| 286 | data8 compat_sys_sigpending |
| 287 | data8 sys_sethostname |
| 288 | data8 compat_sys_setrlimit /* 75 */ |
| 289 | data8 compat_sys_old_getrlimit |
| 290 | data8 compat_sys_getrusage |
| 291 | data8 sys32_gettimeofday |
| 292 | data8 sys32_settimeofday |
| 293 | data8 sys32_getgroups16 /* 80 */ |
| 294 | data8 sys32_setgroups16 |
| 295 | data8 sys32_old_select |
| 296 | data8 sys_symlink |
| 297 | data8 sys_ni_syscall |
| 298 | data8 sys_readlink /* 85 */ |
| 299 | data8 sys_uselib |
| 300 | data8 sys_swapon |
| 301 | data8 sys_reboot |
| 302 | data8 sys32_readdir |
| 303 | data8 sys32_mmap /* 90 */ |
| 304 | data8 sys32_munmap |
| 305 | data8 sys_truncate |
| 306 | data8 sys_ftruncate |
| 307 | data8 sys_fchmod |
| 308 | data8 sys_fchown /* 16-bit version */ /* 95 */ |
| 309 | data8 sys_getpriority |
| 310 | data8 sys_setpriority |
| 311 | data8 sys_ni_syscall /* old profil syscall holder */ |
| 312 | data8 compat_sys_statfs |
| 313 | data8 compat_sys_fstatfs /* 100 */ |
| 314 | data8 sys_ni_syscall /* ioperm */ |
| 315 | data8 compat_sys_socketcall |
| 316 | data8 sys_syslog |
| 317 | data8 compat_sys_setitimer |
| 318 | data8 compat_sys_getitimer /* 105 */ |
| 319 | data8 compat_sys_newstat |
| 320 | data8 compat_sys_newlstat |
| 321 | data8 compat_sys_newfstat |
| 322 | data8 sys_ni_syscall |
| 323 | data8 sys_ni_syscall /* iopl */ /* 110 */ |
| 324 | data8 sys_vhangup |
| 325 | data8 sys_ni_syscall /* used to be sys_idle */ |
| 326 | data8 sys_ni_syscall |
| 327 | data8 compat_sys_wait4 |
| 328 | data8 sys_swapoff /* 115 */ |
| 329 | data8 sys32_sysinfo |
| 330 | data8 sys32_ipc |
| 331 | data8 sys_fsync |
| 332 | data8 sys32_sigreturn |
| 333 | data8 ia32_clone /* 120 */ |
| 334 | data8 sys_setdomainname |
| 335 | data8 sys32_newuname |
| 336 | data8 sys32_modify_ldt |
| 337 | data8 sys_ni_syscall /* adjtimex */ |
| 338 | data8 sys32_mprotect /* 125 */ |
| 339 | data8 compat_sys_sigprocmask |
| 340 | data8 sys_ni_syscall /* create_module */ |
| 341 | data8 sys_ni_syscall /* init_module */ |
| 342 | data8 sys_ni_syscall /* delete_module */ |
| 343 | data8 sys_ni_syscall /* get_kernel_syms */ /* 130 */ |
| 344 | data8 sys_quotactl |
| 345 | data8 sys_getpgid |
| 346 | data8 sys_fchdir |
| 347 | data8 sys_ni_syscall /* sys_bdflush */ |
| 348 | data8 sys_sysfs /* 135 */ |
| 349 | data8 sys32_personality |
| 350 | data8 sys_ni_syscall /* for afs_syscall */ |
| 351 | data8 sys_setfsuid /* 16-bit version */ |
| 352 | data8 sys_setfsgid /* 16-bit version */ |
| 353 | data8 sys_llseek /* 140 */ |
| 354 | data8 compat_sys_getdents |
| 355 | data8 compat_sys_select |
| 356 | data8 sys_flock |
| 357 | data8 sys32_msync |
| 358 | data8 compat_sys_readv /* 145 */ |
| 359 | data8 compat_sys_writev |
| 360 | data8 sys_getsid |
| 361 | data8 sys_fdatasync |
| 362 | data8 sys32_sysctl |
| 363 | data8 sys_mlock /* 150 */ |
| 364 | data8 sys_munlock |
| 365 | data8 sys_mlockall |
| 366 | data8 sys_munlockall |
| 367 | data8 sys_sched_setparam |
| 368 | data8 sys_sched_getparam /* 155 */ |
| 369 | data8 sys_sched_setscheduler |
| 370 | data8 sys_sched_getscheduler |
| 371 | data8 sys_sched_yield |
| 372 | data8 sys_sched_get_priority_max |
| 373 | data8 sys_sched_get_priority_min /* 160 */ |
| 374 | data8 sys32_sched_rr_get_interval |
| 375 | data8 compat_sys_nanosleep |
| 376 | data8 sys32_mremap |
| 377 | data8 sys_setresuid /* 16-bit version */ |
| 378 | data8 sys32_getresuid16 /* 16-bit version */ /* 165 */ |
| 379 | data8 sys_ni_syscall /* vm86 */ |
| 380 | data8 sys_ni_syscall /* sys_query_module */ |
| 381 | data8 sys_poll |
| 382 | data8 sys_ni_syscall /* nfsservctl */ |
| 383 | data8 sys_setresgid /* 170 */ |
| 384 | data8 sys32_getresgid16 |
| 385 | data8 sys_prctl |
| 386 | data8 sys32_rt_sigreturn |
| 387 | data8 sys32_rt_sigaction |
| 388 | data8 sys32_rt_sigprocmask /* 175 */ |
| 389 | data8 sys_rt_sigpending |
| 390 | data8 compat_sys_rt_sigtimedwait |
| 391 | data8 sys32_rt_sigqueueinfo |
| 392 | data8 sys32_rt_sigsuspend |
| 393 | data8 sys32_pread /* 180 */ |
| 394 | data8 sys32_pwrite |
| 395 | data8 sys_chown /* 16-bit version */ |
| 396 | data8 sys_getcwd |
| 397 | data8 sys_capget |
| 398 | data8 sys_capset /* 185 */ |
| 399 | data8 sys32_sigaltstack |
| 400 | data8 sys32_sendfile |
| 401 | data8 sys_ni_syscall /* streams1 */ |
| 402 | data8 sys_ni_syscall /* streams2 */ |
| 403 | data8 sys32_vfork /* 190 */ |
| 404 | data8 compat_sys_getrlimit |
| 405 | data8 sys32_mmap2 |
| 406 | data8 sys32_truncate64 |
| 407 | data8 sys32_ftruncate64 |
| 408 | data8 sys32_stat64 /* 195 */ |
| 409 | data8 sys32_lstat64 |
| 410 | data8 sys32_fstat64 |
| 411 | data8 sys_lchown |
| 412 | data8 sys_getuid |
| 413 | data8 sys_getgid /* 200 */ |
| 414 | data8 sys_geteuid |
| 415 | data8 sys_getegid |
| 416 | data8 sys_setreuid |
| 417 | data8 sys_setregid |
| 418 | data8 sys_getgroups /* 205 */ |
| 419 | data8 sys_setgroups |
| 420 | data8 sys_fchown |
| 421 | data8 sys_setresuid |
| 422 | data8 sys_getresuid |
| 423 | data8 sys_setresgid /* 210 */ |
| 424 | data8 sys_getresgid |
| 425 | data8 sys_chown |
| 426 | data8 sys_setuid |
| 427 | data8 sys_setgid |
| 428 | data8 sys_setfsuid /* 215 */ |
| 429 | data8 sys_setfsgid |
| 430 | data8 sys_pivot_root |
| 431 | data8 sys_mincore |
| 432 | data8 sys_madvise |
| 433 | data8 compat_sys_getdents64 /* 220 */ |
| 434 | data8 compat_sys_fcntl64 |
| 435 | data8 sys_ni_syscall /* reserved for TUX */ |
| 436 | data8 sys_ni_syscall /* reserved for Security */ |
| 437 | data8 sys_gettid |
| 438 | data8 sys_readahead /* 225 */ |
| 439 | data8 sys_setxattr |
| 440 | data8 sys_lsetxattr |
| 441 | data8 sys_fsetxattr |
| 442 | data8 sys_getxattr |
| 443 | data8 sys_lgetxattr /* 230 */ |
| 444 | data8 sys_fgetxattr |
| 445 | data8 sys_listxattr |
| 446 | data8 sys_llistxattr |
| 447 | data8 sys_flistxattr |
| 448 | data8 sys_removexattr /* 235 */ |
| 449 | data8 sys_lremovexattr |
| 450 | data8 sys_fremovexattr |
| 451 | data8 sys_tkill |
| 452 | data8 sys_sendfile64 |
| 453 | data8 compat_sys_futex /* 240 */ |
| 454 | data8 compat_sys_sched_setaffinity |
| 455 | data8 compat_sys_sched_getaffinity |
| 456 | data8 sys32_set_thread_area |
| 457 | data8 sys32_get_thread_area |
| 458 | data8 compat_sys_io_setup /* 245 */ |
| 459 | data8 sys_io_destroy |
| 460 | data8 compat_sys_io_getevents |
| 461 | data8 compat_sys_io_submit |
| 462 | data8 sys_io_cancel |
| 463 | data8 sys_fadvise64 /* 250 */ |
| 464 | data8 sys_ni_syscall |
| 465 | data8 sys_exit_group |
| 466 | data8 sys_lookup_dcookie |
| 467 | data8 sys_epoll_create |
| 468 | data8 sys32_epoll_ctl /* 255 */ |
| 469 | data8 sys32_epoll_wait |
| 470 | data8 sys_remap_file_pages |
| 471 | data8 sys_set_tid_address |
Christoph Hellwig | 3a0f69d | 2006-01-09 20:52:08 -0800 | [diff] [blame] | 472 | data8 compat_sys_timer_create |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 473 | data8 compat_sys_timer_settime /* 260 */ |
| 474 | data8 compat_sys_timer_gettime |
| 475 | data8 sys_timer_getoverrun |
| 476 | data8 sys_timer_delete |
| 477 | data8 compat_sys_clock_settime |
| 478 | data8 compat_sys_clock_gettime /* 265 */ |
| 479 | data8 compat_sys_clock_getres |
| 480 | data8 compat_sys_clock_nanosleep |
| 481 | data8 compat_sys_statfs64 |
| 482 | data8 compat_sys_fstatfs64 |
| 483 | data8 sys_tgkill /* 270 */ |
| 484 | data8 compat_sys_utimes |
| 485 | data8 sys32_fadvise64_64 |
| 486 | data8 sys_ni_syscall |
| 487 | data8 sys_ni_syscall |
| 488 | data8 sys_ni_syscall /* 275 */ |
| 489 | data8 sys_ni_syscall |
| 490 | data8 compat_sys_mq_open |
| 491 | data8 sys_mq_unlink |
| 492 | data8 compat_sys_mq_timedsend |
| 493 | data8 compat_sys_mq_timedreceive /* 280 */ |
| 494 | data8 compat_sys_mq_notify |
| 495 | data8 compat_sys_mq_getsetattr |
| 496 | data8 sys_ni_syscall /* reserved for kexec */ |
| 497 | data8 compat_sys_waitid |
| 498 | |
| 499 | // guard against failures to increase IA32_NR_syscalls |
| 500 | .org ia32_syscall_table + 8*IA32_NR_syscalls |