diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:17:21 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:17:21 -0400 |
commit | 2db55d344e529492545cb3b755c7e9ba8e4fa94e (patch) | |
tree | fea163affb8eec3d927acb498cb3aa1b13c053b8 /arch/x86_64/ia32/ia32entry.S | |
parent | 33fc6d51336046bd6e8c7d1a42faff881fa6fb45 (diff) |
x86_64: move ia32
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86_64/ia32/ia32entry.S')
-rw-r--r-- | arch/x86_64/ia32/ia32entry.S | 736 |
1 files changed, 0 insertions, 736 deletions
diff --git a/arch/x86_64/ia32/ia32entry.S b/arch/x86_64/ia32/ia32entry.S deleted file mode 100644 index 18b231810908..000000000000 --- a/arch/x86_64/ia32/ia32entry.S +++ /dev/null | |||
@@ -1,736 +0,0 @@ | |||
1 | /* | ||
2 | * Compatibility mode system call entry point for x86-64. | ||
3 | * | ||
4 | * Copyright 2000-2002 Andi Kleen, SuSE Labs. | ||
5 | */ | ||
6 | |||
7 | #include <asm/dwarf2.h> | ||
8 | #include <asm/calling.h> | ||
9 | #include <asm/asm-offsets.h> | ||
10 | #include <asm/current.h> | ||
11 | #include <asm/errno.h> | ||
12 | #include <asm/ia32_unistd.h> | ||
13 | #include <asm/thread_info.h> | ||
14 | #include <asm/segment.h> | ||
15 | #include <asm/vsyscall32.h> | ||
16 | #include <asm/irqflags.h> | ||
17 | #include <linux/linkage.h> | ||
18 | |||
19 | #define IA32_NR_syscalls ((ia32_syscall_end - ia32_sys_call_table)/8) | ||
20 | |||
21 | .macro IA32_ARG_FIXUP noebp=0 | ||
22 | movl %edi,%r8d | ||
23 | .if \noebp | ||
24 | .else | ||
25 | movl %ebp,%r9d | ||
26 | .endif | ||
27 | xchg %ecx,%esi | ||
28 | movl %ebx,%edi | ||
29 | movl %edx,%edx /* zero extension */ | ||
30 | .endm | ||
31 | |||
32 | /* clobbers %eax */ | ||
33 | .macro CLEAR_RREGS | ||
34 | xorl %eax,%eax | ||
35 | movq %rax,R11(%rsp) | ||
36 | movq %rax,R10(%rsp) | ||
37 | movq %rax,R9(%rsp) | ||
38 | movq %rax,R8(%rsp) | ||
39 | .endm | ||
40 | |||
41 | .macro LOAD_ARGS32 offset | ||
42 | movl \offset(%rsp),%r11d | ||
43 | movl \offset+8(%rsp),%r10d | ||
44 | movl \offset+16(%rsp),%r9d | ||
45 | movl \offset+24(%rsp),%r8d | ||
46 | movl \offset+40(%rsp),%ecx | ||
47 | movl \offset+48(%rsp),%edx | ||
48 | movl \offset+56(%rsp),%esi | ||
49 | movl \offset+64(%rsp),%edi | ||
50 | movl \offset+72(%rsp),%eax | ||
51 | .endm | ||
52 | |||
53 | .macro CFI_STARTPROC32 simple | ||
54 | CFI_STARTPROC \simple | ||
55 | CFI_UNDEFINED r8 | ||
56 | CFI_UNDEFINED r9 | ||
57 | CFI_UNDEFINED r10 | ||
58 | CFI_UNDEFINED r11 | ||
59 | CFI_UNDEFINED r12 | ||
60 | CFI_UNDEFINED r13 | ||
61 | CFI_UNDEFINED r14 | ||
62 | CFI_UNDEFINED r15 | ||
63 | .endm | ||
64 | |||
65 | /* | ||
66 | * 32bit SYSENTER instruction entry. | ||
67 | * | ||
68 | * Arguments: | ||
69 | * %eax System call number. | ||
70 | * %ebx Arg1 | ||
71 | * %ecx Arg2 | ||
72 | * %edx Arg3 | ||
73 | * %esi Arg4 | ||
74 | * %edi Arg5 | ||
75 | * %ebp user stack | ||
76 | * 0(%ebp) Arg6 | ||
77 | * | ||
78 | * Interrupts off. | ||
79 | * | ||
80 | * This is purely a fast path. For anything complicated we use the int 0x80 | ||
81 | * path below. Set up a complete hardware stack frame to share code | ||
82 | * with the int 0x80 path. | ||
83 | */ | ||
84 | ENTRY(ia32_sysenter_target) | ||
85 | CFI_STARTPROC32 simple | ||
86 | CFI_SIGNAL_FRAME | ||
87 | CFI_DEF_CFA rsp,0 | ||
88 | CFI_REGISTER rsp,rbp | ||
89 | swapgs | ||
90 | movq %gs:pda_kernelstack, %rsp | ||
91 | addq $(PDA_STACKOFFSET),%rsp | ||
92 | /* | ||
93 | * No need to follow this irqs on/off section: the syscall | ||
94 | * disabled irqs, here we enable it straight after entry: | ||
95 | */ | ||
96 | sti | ||
97 | movl %ebp,%ebp /* zero extension */ | ||
98 | pushq $__USER32_DS | ||
99 | CFI_ADJUST_CFA_OFFSET 8 | ||
100 | /*CFI_REL_OFFSET ss,0*/ | ||
101 | pushq %rbp | ||
102 | CFI_ADJUST_CFA_OFFSET 8 | ||
103 | CFI_REL_OFFSET rsp,0 | ||
104 | pushfq | ||
105 | CFI_ADJUST_CFA_OFFSET 8 | ||
106 | /*CFI_REL_OFFSET rflags,0*/ | ||
107 | movl $VSYSCALL32_SYSEXIT, %r10d | ||
108 | CFI_REGISTER rip,r10 | ||
109 | pushq $__USER32_CS | ||
110 | CFI_ADJUST_CFA_OFFSET 8 | ||
111 | /*CFI_REL_OFFSET cs,0*/ | ||
112 | movl %eax, %eax | ||
113 | pushq %r10 | ||
114 | CFI_ADJUST_CFA_OFFSET 8 | ||
115 | CFI_REL_OFFSET rip,0 | ||
116 | pushq %rax | ||
117 | CFI_ADJUST_CFA_OFFSET 8 | ||
118 | cld | ||
119 | SAVE_ARGS 0,0,1 | ||
120 | /* no need to do an access_ok check here because rbp has been | ||
121 | 32bit zero extended */ | ||
122 | 1: movl (%rbp),%r9d | ||
123 | .section __ex_table,"a" | ||
124 | .quad 1b,ia32_badarg | ||
125 | .previous | ||
126 | GET_THREAD_INFO(%r10) | ||
127 | orl $TS_COMPAT,threadinfo_status(%r10) | ||
128 | testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10) | ||
129 | CFI_REMEMBER_STATE | ||
130 | jnz sysenter_tracesys | ||
131 | sysenter_do_call: | ||
132 | cmpl $(IA32_NR_syscalls-1),%eax | ||
133 | ja ia32_badsys | ||
134 | IA32_ARG_FIXUP 1 | ||
135 | call *ia32_sys_call_table(,%rax,8) | ||
136 | movq %rax,RAX-ARGOFFSET(%rsp) | ||
137 | GET_THREAD_INFO(%r10) | ||
138 | cli | ||
139 | TRACE_IRQS_OFF | ||
140 | testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) | ||
141 | jnz int_ret_from_sys_call | ||
142 | andl $~TS_COMPAT,threadinfo_status(%r10) | ||
143 | /* clear IF, that popfq doesn't enable interrupts early */ | ||
144 | andl $~0x200,EFLAGS-R11(%rsp) | ||
145 | RESTORE_ARGS 1,24,1,1,1,1 | ||
146 | popfq | ||
147 | CFI_ADJUST_CFA_OFFSET -8 | ||
148 | /*CFI_RESTORE rflags*/ | ||
149 | popq %rcx /* User %esp */ | ||
150 | CFI_ADJUST_CFA_OFFSET -8 | ||
151 | CFI_REGISTER rsp,rcx | ||
152 | movl $VSYSCALL32_SYSEXIT,%edx /* User %eip */ | ||
153 | CFI_REGISTER rip,rdx | ||
154 | TRACE_IRQS_ON | ||
155 | swapgs | ||
156 | sti /* sti only takes effect after the next instruction */ | ||
157 | /* sysexit */ | ||
158 | .byte 0xf, 0x35 | ||
159 | |||
160 | sysenter_tracesys: | ||
161 | CFI_RESTORE_STATE | ||
162 | SAVE_REST | ||
163 | CLEAR_RREGS | ||
164 | movq $-ENOSYS,RAX(%rsp) /* really needed? */ | ||
165 | movq %rsp,%rdi /* &pt_regs -> arg1 */ | ||
166 | call syscall_trace_enter | ||
167 | LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ | ||
168 | RESTORE_REST | ||
169 | movl %ebp, %ebp | ||
170 | /* no need to do an access_ok check here because rbp has been | ||
171 | 32bit zero extended */ | ||
172 | 1: movl (%rbp),%r9d | ||
173 | .section __ex_table,"a" | ||
174 | .quad 1b,ia32_badarg | ||
175 | .previous | ||
176 | jmp sysenter_do_call | ||
177 | CFI_ENDPROC | ||
178 | ENDPROC(ia32_sysenter_target) | ||
179 | |||
180 | /* | ||
181 | * 32bit SYSCALL instruction entry. | ||
182 | * | ||
183 | * Arguments: | ||
184 | * %eax System call number. | ||
185 | * %ebx Arg1 | ||
186 | * %ecx return EIP | ||
187 | * %edx Arg3 | ||
188 | * %esi Arg4 | ||
189 | * %edi Arg5 | ||
190 | * %ebp Arg2 [note: not saved in the stack frame, should not be touched] | ||
191 | * %esp user stack | ||
192 | * 0(%esp) Arg6 | ||
193 | * | ||
194 | * Interrupts off. | ||
195 | * | ||
196 | * This is purely a fast path. For anything complicated we use the int 0x80 | ||
197 | * path below. Set up a complete hardware stack frame to share code | ||
198 | * with the int 0x80 path. | ||
199 | */ | ||
200 | ENTRY(ia32_cstar_target) | ||
201 | CFI_STARTPROC32 simple | ||
202 | CFI_SIGNAL_FRAME | ||
203 | CFI_DEF_CFA rsp,PDA_STACKOFFSET | ||
204 | CFI_REGISTER rip,rcx | ||
205 | /*CFI_REGISTER rflags,r11*/ | ||
206 | swapgs | ||
207 | movl %esp,%r8d | ||
208 | CFI_REGISTER rsp,r8 | ||
209 | movq %gs:pda_kernelstack,%rsp | ||
210 | /* | ||
211 | * No need to follow this irqs on/off section: the syscall | ||
212 | * disabled irqs and here we enable it straight after entry: | ||
213 | */ | ||
214 | sti | ||
215 | SAVE_ARGS 8,1,1 | ||
216 | movl %eax,%eax /* zero extension */ | ||
217 | movq %rax,ORIG_RAX-ARGOFFSET(%rsp) | ||
218 | movq %rcx,RIP-ARGOFFSET(%rsp) | ||
219 | CFI_REL_OFFSET rip,RIP-ARGOFFSET | ||
220 | movq %rbp,RCX-ARGOFFSET(%rsp) /* this lies slightly to ptrace */ | ||
221 | movl %ebp,%ecx | ||
222 | movq $__USER32_CS,CS-ARGOFFSET(%rsp) | ||
223 | movq $__USER32_DS,SS-ARGOFFSET(%rsp) | ||
224 | movq %r11,EFLAGS-ARGOFFSET(%rsp) | ||
225 | /*CFI_REL_OFFSET rflags,EFLAGS-ARGOFFSET*/ | ||
226 | movq %r8,RSP-ARGOFFSET(%rsp) | ||
227 | CFI_REL_OFFSET rsp,RSP-ARGOFFSET | ||
228 | /* no need to do an access_ok check here because r8 has been | ||
229 | 32bit zero extended */ | ||
230 | /* hardware stack frame is complete now */ | ||
231 | 1: movl (%r8),%r9d | ||
232 | .section __ex_table,"a" | ||
233 | .quad 1b,ia32_badarg | ||
234 | .previous | ||
235 | GET_THREAD_INFO(%r10) | ||
236 | orl $TS_COMPAT,threadinfo_status(%r10) | ||
237 | testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10) | ||
238 | CFI_REMEMBER_STATE | ||
239 | jnz cstar_tracesys | ||
240 | cstar_do_call: | ||
241 | cmpl $IA32_NR_syscalls-1,%eax | ||
242 | ja ia32_badsys | ||
243 | IA32_ARG_FIXUP 1 | ||
244 | call *ia32_sys_call_table(,%rax,8) | ||
245 | movq %rax,RAX-ARGOFFSET(%rsp) | ||
246 | GET_THREAD_INFO(%r10) | ||
247 | cli | ||
248 | TRACE_IRQS_OFF | ||
249 | testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) | ||
250 | jnz int_ret_from_sys_call | ||
251 | andl $~TS_COMPAT,threadinfo_status(%r10) | ||
252 | RESTORE_ARGS 1,-ARG_SKIP,1,1,1 | ||
253 | movl RIP-ARGOFFSET(%rsp),%ecx | ||
254 | CFI_REGISTER rip,rcx | ||
255 | movl EFLAGS-ARGOFFSET(%rsp),%r11d | ||
256 | /*CFI_REGISTER rflags,r11*/ | ||
257 | TRACE_IRQS_ON | ||
258 | movl RSP-ARGOFFSET(%rsp),%esp | ||
259 | CFI_RESTORE rsp | ||
260 | swapgs | ||
261 | sysretl | ||
262 | |||
263 | cstar_tracesys: | ||
264 | CFI_RESTORE_STATE | ||
265 | SAVE_REST | ||
266 | CLEAR_RREGS | ||
267 | movq $-ENOSYS,RAX(%rsp) /* really needed? */ | ||
268 | movq %rsp,%rdi /* &pt_regs -> arg1 */ | ||
269 | call syscall_trace_enter | ||
270 | LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ | ||
271 | RESTORE_REST | ||
272 | movl RSP-ARGOFFSET(%rsp), %r8d | ||
273 | /* no need to do an access_ok check here because r8 has been | ||
274 | 32bit zero extended */ | ||
275 | 1: movl (%r8),%r9d | ||
276 | .section __ex_table,"a" | ||
277 | .quad 1b,ia32_badarg | ||
278 | .previous | ||
279 | jmp cstar_do_call | ||
280 | END(ia32_cstar_target) | ||
281 | |||
282 | ia32_badarg: | ||
283 | movq $-EFAULT,%rax | ||
284 | jmp ia32_sysret | ||
285 | CFI_ENDPROC | ||
286 | |||
287 | /* | ||
288 | * Emulated IA32 system calls via int 0x80. | ||
289 | * | ||
290 | * Arguments: | ||
291 | * %eax System call number. | ||
292 | * %ebx Arg1 | ||
293 | * %ecx Arg2 | ||
294 | * %edx Arg3 | ||
295 | * %esi Arg4 | ||
296 | * %edi Arg5 | ||
297 | * %ebp Arg6 [note: not saved in the stack frame, should not be touched] | ||
298 | * | ||
299 | * Notes: | ||
300 | * Uses the same stack frame as the x86-64 version. | ||
301 | * All registers except %eax must be saved (but ptrace may violate that) | ||
302 | * Arguments are zero extended. For system calls that want sign extension and | ||
303 | * take long arguments a wrapper is needed. Most calls can just be called | ||
304 | * directly. | ||
305 | * Assumes it is only called from user space and entered with interrupts off. | ||
306 | */ | ||
307 | |||
308 | ENTRY(ia32_syscall) | ||
309 | CFI_STARTPROC32 simple | ||
310 | CFI_SIGNAL_FRAME | ||
311 | CFI_DEF_CFA rsp,SS+8-RIP | ||
312 | /*CFI_REL_OFFSET ss,SS-RIP*/ | ||
313 | CFI_REL_OFFSET rsp,RSP-RIP | ||
314 | /*CFI_REL_OFFSET rflags,EFLAGS-RIP*/ | ||
315 | /*CFI_REL_OFFSET cs,CS-RIP*/ | ||
316 | CFI_REL_OFFSET rip,RIP-RIP | ||
317 | swapgs | ||
318 | /* | ||
319 | * No need to follow this irqs on/off section: the syscall | ||
320 | * disabled irqs and here we enable it straight after entry: | ||
321 | */ | ||
322 | sti | ||
323 | movl %eax,%eax | ||
324 | pushq %rax | ||
325 | CFI_ADJUST_CFA_OFFSET 8 | ||
326 | cld | ||
327 | /* note the registers are not zero extended to the sf. | ||
328 | this could be a problem. */ | ||
329 | SAVE_ARGS 0,0,1 | ||
330 | GET_THREAD_INFO(%r10) | ||
331 | orl $TS_COMPAT,threadinfo_status(%r10) | ||
332 | testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10) | ||
333 | jnz ia32_tracesys | ||
334 | ia32_do_syscall: | ||
335 | cmpl $(IA32_NR_syscalls-1),%eax | ||
336 | ja ia32_badsys | ||
337 | IA32_ARG_FIXUP | ||
338 | call *ia32_sys_call_table(,%rax,8) # xxx: rip relative | ||
339 | ia32_sysret: | ||
340 | movq %rax,RAX-ARGOFFSET(%rsp) | ||
341 | jmp int_ret_from_sys_call | ||
342 | |||
343 | ia32_tracesys: | ||
344 | SAVE_REST | ||
345 | CLEAR_RREGS | ||
346 | movq $-ENOSYS,RAX(%rsp) /* really needed? */ | ||
347 | movq %rsp,%rdi /* &pt_regs -> arg1 */ | ||
348 | call syscall_trace_enter | ||
349 | LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ | ||
350 | RESTORE_REST | ||
351 | jmp ia32_do_syscall | ||
352 | END(ia32_syscall) | ||
353 | |||
354 | ia32_badsys: | ||
355 | movq $0,ORIG_RAX-ARGOFFSET(%rsp) | ||
356 | movq $-ENOSYS,RAX-ARGOFFSET(%rsp) | ||
357 | jmp int_ret_from_sys_call | ||
358 | |||
359 | quiet_ni_syscall: | ||
360 | movq $-ENOSYS,%rax | ||
361 | ret | ||
362 | CFI_ENDPROC | ||
363 | |||
364 | .macro PTREGSCALL label, func, arg | ||
365 | .globl \label | ||
366 | \label: | ||
367 | leaq \func(%rip),%rax | ||
368 | leaq -ARGOFFSET+8(%rsp),\arg /* 8 for return address */ | ||
369 | jmp ia32_ptregs_common | ||
370 | .endm | ||
371 | |||
372 | CFI_STARTPROC32 | ||
373 | |||
374 | PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn, %rdi | ||
375 | PTREGSCALL stub32_sigreturn, sys32_sigreturn, %rdi | ||
376 | PTREGSCALL stub32_sigaltstack, sys32_sigaltstack, %rdx | ||
377 | PTREGSCALL stub32_sigsuspend, sys32_sigsuspend, %rcx | ||
378 | PTREGSCALL stub32_execve, sys32_execve, %rcx | ||
379 | PTREGSCALL stub32_fork, sys_fork, %rdi | ||
380 | PTREGSCALL stub32_clone, sys32_clone, %rdx | ||
381 | PTREGSCALL stub32_vfork, sys_vfork, %rdi | ||
382 | PTREGSCALL stub32_iopl, sys_iopl, %rsi | ||
383 | PTREGSCALL stub32_rt_sigsuspend, sys_rt_sigsuspend, %rdx | ||
384 | |||
385 | ENTRY(ia32_ptregs_common) | ||
386 | popq %r11 | ||
387 | CFI_ENDPROC | ||
388 | CFI_STARTPROC32 simple | ||
389 | CFI_SIGNAL_FRAME | ||
390 | CFI_DEF_CFA rsp,SS+8-ARGOFFSET | ||
391 | CFI_REL_OFFSET rax,RAX-ARGOFFSET | ||
392 | CFI_REL_OFFSET rcx,RCX-ARGOFFSET | ||
393 | CFI_REL_OFFSET rdx,RDX-ARGOFFSET | ||
394 | CFI_REL_OFFSET rsi,RSI-ARGOFFSET | ||
395 | CFI_REL_OFFSET rdi,RDI-ARGOFFSET | ||
396 | CFI_REL_OFFSET rip,RIP-ARGOFFSET | ||
397 | /* CFI_REL_OFFSET cs,CS-ARGOFFSET*/ | ||
398 | /* CFI_REL_OFFSET rflags,EFLAGS-ARGOFFSET*/ | ||
399 | CFI_REL_OFFSET rsp,RSP-ARGOFFSET | ||
400 | /* CFI_REL_OFFSET ss,SS-ARGOFFSET*/ | ||
401 | SAVE_REST | ||
402 | call *%rax | ||
403 | RESTORE_REST | ||
404 | jmp ia32_sysret /* misbalances the return cache */ | ||
405 | CFI_ENDPROC | ||
406 | END(ia32_ptregs_common) | ||
407 | |||
408 | .section .rodata,"a" | ||
409 | .align 8 | ||
410 | ia32_sys_call_table: | ||
411 | .quad sys_restart_syscall | ||
412 | .quad sys_exit | ||
413 | .quad stub32_fork | ||
414 | .quad sys_read | ||
415 | .quad sys_write | ||
416 | .quad compat_sys_open /* 5 */ | ||
417 | .quad sys_close | ||
418 | .quad sys32_waitpid | ||
419 | .quad sys_creat | ||
420 | .quad sys_link | ||
421 | .quad sys_unlink /* 10 */ | ||
422 | .quad stub32_execve | ||
423 | .quad sys_chdir | ||
424 | .quad compat_sys_time | ||
425 | .quad sys_mknod | ||
426 | .quad sys_chmod /* 15 */ | ||
427 | .quad sys_lchown16 | ||
428 | .quad quiet_ni_syscall /* old break syscall holder */ | ||
429 | .quad sys_stat | ||
430 | .quad sys32_lseek | ||
431 | .quad sys_getpid /* 20 */ | ||
432 | .quad compat_sys_mount /* mount */ | ||
433 | .quad sys_oldumount /* old_umount */ | ||
434 | .quad sys_setuid16 | ||
435 | .quad sys_getuid16 | ||
436 | .quad compat_sys_stime /* stime */ /* 25 */ | ||
437 | .quad sys32_ptrace /* ptrace */ | ||
438 | .quad sys_alarm | ||
439 | .quad sys_fstat /* (old)fstat */ | ||
440 | .quad sys_pause | ||
441 | .quad compat_sys_utime /* 30 */ | ||
442 | .quad quiet_ni_syscall /* old stty syscall holder */ | ||
443 | .quad quiet_ni_syscall /* old gtty syscall holder */ | ||
444 | .quad sys_access | ||
445 | .quad sys_nice | ||
446 | .quad quiet_ni_syscall /* 35 */ /* old ftime syscall holder */ | ||
447 | .quad sys_sync | ||
448 | .quad sys32_kill | ||
449 | .quad sys_rename | ||
450 | .quad sys_mkdir | ||
451 | .quad sys_rmdir /* 40 */ | ||
452 | .quad sys_dup | ||
453 | .quad sys32_pipe | ||
454 | .quad compat_sys_times | ||
455 | .quad quiet_ni_syscall /* old prof syscall holder */ | ||
456 | .quad sys_brk /* 45 */ | ||
457 | .quad sys_setgid16 | ||
458 | .quad sys_getgid16 | ||
459 | .quad sys_signal | ||
460 | .quad sys_geteuid16 | ||
461 | .quad sys_getegid16 /* 50 */ | ||
462 | .quad sys_acct | ||
463 | .quad sys_umount /* new_umount */ | ||
464 | .quad quiet_ni_syscall /* old lock syscall holder */ | ||
465 | .quad compat_sys_ioctl | ||
466 | .quad compat_sys_fcntl64 /* 55 */ | ||
467 | .quad quiet_ni_syscall /* old mpx syscall holder */ | ||
468 | .quad sys_setpgid | ||
469 | .quad quiet_ni_syscall /* old ulimit syscall holder */ | ||
470 | .quad sys32_olduname | ||
471 | .quad sys_umask /* 60 */ | ||
472 | .quad sys_chroot | ||
473 | .quad sys32_ustat | ||
474 | .quad sys_dup2 | ||
475 | .quad sys_getppid | ||
476 | .quad sys_getpgrp /* 65 */ | ||
477 | .quad sys_setsid | ||
478 | .quad sys32_sigaction | ||
479 | .quad sys_sgetmask | ||
480 | .quad sys_ssetmask | ||
481 | .quad sys_setreuid16 /* 70 */ | ||
482 | .quad sys_setregid16 | ||
483 | .quad stub32_sigsuspend | ||
484 | .quad compat_sys_sigpending | ||
485 | .quad sys_sethostname | ||
486 | .quad compat_sys_setrlimit /* 75 */ | ||
487 | .quad compat_sys_old_getrlimit /* old_getrlimit */ | ||
488 | .quad compat_sys_getrusage | ||
489 | .quad sys32_gettimeofday | ||
490 | .quad sys32_settimeofday | ||
491 | .quad sys_getgroups16 /* 80 */ | ||
492 | .quad sys_setgroups16 | ||
493 | .quad sys32_old_select | ||
494 | .quad sys_symlink | ||
495 | .quad sys_lstat | ||
496 | .quad sys_readlink /* 85 */ | ||
497 | .quad sys_uselib | ||
498 | .quad sys_swapon | ||
499 | .quad sys_reboot | ||
500 | .quad compat_sys_old_readdir | ||
501 | .quad sys32_mmap /* 90 */ | ||
502 | .quad sys_munmap | ||
503 | .quad sys_truncate | ||
504 | .quad sys_ftruncate | ||
505 | .quad sys_fchmod | ||
506 | .quad sys_fchown16 /* 95 */ | ||
507 | .quad sys_getpriority | ||
508 | .quad sys_setpriority | ||
509 | .quad quiet_ni_syscall /* old profil syscall holder */ | ||
510 | .quad compat_sys_statfs | ||
511 | .quad compat_sys_fstatfs /* 100 */ | ||
512 | .quad sys_ioperm | ||
513 | .quad compat_sys_socketcall | ||
514 | .quad sys_syslog | ||
515 | .quad compat_sys_setitimer | ||
516 | .quad compat_sys_getitimer /* 105 */ | ||
517 | .quad compat_sys_newstat | ||
518 | .quad compat_sys_newlstat | ||
519 | .quad compat_sys_newfstat | ||
520 | .quad sys32_uname | ||
521 | .quad stub32_iopl /* 110 */ | ||
522 | .quad sys_vhangup | ||
523 | .quad quiet_ni_syscall /* old "idle" system call */ | ||
524 | .quad sys32_vm86_warning /* vm86old */ | ||
525 | .quad compat_sys_wait4 | ||
526 | .quad sys_swapoff /* 115 */ | ||
527 | .quad compat_sys_sysinfo | ||
528 | .quad sys32_ipc | ||
529 | .quad sys_fsync | ||
530 | .quad stub32_sigreturn | ||
531 | .quad stub32_clone /* 120 */ | ||
532 | .quad sys_setdomainname | ||
533 | .quad sys_uname | ||
534 | .quad sys_modify_ldt | ||
535 | .quad compat_sys_adjtimex | ||
536 | .quad sys32_mprotect /* 125 */ | ||
537 | .quad compat_sys_sigprocmask | ||
538 | .quad quiet_ni_syscall /* create_module */ | ||
539 | .quad sys_init_module | ||
540 | .quad sys_delete_module | ||
541 | .quad quiet_ni_syscall /* 130 get_kernel_syms */ | ||
542 | .quad sys32_quotactl | ||
543 | .quad sys_getpgid | ||
544 | .quad sys_fchdir | ||
545 | .quad quiet_ni_syscall /* bdflush */ | ||
546 | .quad sys_sysfs /* 135 */ | ||
547 | .quad sys_personality | ||
548 | .quad quiet_ni_syscall /* for afs_syscall */ | ||
549 | .quad sys_setfsuid16 | ||
550 | .quad sys_setfsgid16 | ||
551 | .quad sys_llseek /* 140 */ | ||
552 | .quad compat_sys_getdents | ||
553 | .quad compat_sys_select | ||
554 | .quad sys_flock | ||
555 | .quad sys_msync | ||
556 | .quad compat_sys_readv /* 145 */ | ||
557 | .quad compat_sys_writev | ||
558 | .quad sys_getsid | ||
559 | .quad sys_fdatasync | ||
560 | .quad sys32_sysctl /* sysctl */ | ||
561 | .quad sys_mlock /* 150 */ | ||
562 | .quad sys_munlock | ||
563 | .quad sys_mlockall | ||
564 | .quad sys_munlockall | ||
565 | .quad sys_sched_setparam | ||
566 | .quad sys_sched_getparam /* 155 */ | ||
567 | .quad sys_sched_setscheduler | ||
568 | .quad sys_sched_getscheduler | ||
569 | .quad sys_sched_yield | ||
570 | .quad sys_sched_get_priority_max | ||
571 | .quad sys_sched_get_priority_min /* 160 */ | ||
572 | .quad sys32_sched_rr_get_interval | ||
573 | .quad compat_sys_nanosleep | ||
574 | .quad sys_mremap | ||
575 | .quad sys_setresuid16 | ||
576 | .quad sys_getresuid16 /* 165 */ | ||
577 | .quad sys32_vm86_warning /* vm86 */ | ||
578 | .quad quiet_ni_syscall /* query_module */ | ||
579 | .quad sys_poll | ||
580 | .quad compat_sys_nfsservctl | ||
581 | .quad sys_setresgid16 /* 170 */ | ||
582 | .quad sys_getresgid16 | ||
583 | .quad sys_prctl | ||
584 | .quad stub32_rt_sigreturn | ||
585 | .quad sys32_rt_sigaction | ||
586 | .quad sys32_rt_sigprocmask /* 175 */ | ||
587 | .quad sys32_rt_sigpending | ||
588 | .quad compat_sys_rt_sigtimedwait | ||
589 | .quad sys32_rt_sigqueueinfo | ||
590 | .quad stub32_rt_sigsuspend | ||
591 | .quad sys32_pread /* 180 */ | ||
592 | .quad sys32_pwrite | ||
593 | .quad sys_chown16 | ||
594 | .quad sys_getcwd | ||
595 | .quad sys_capget | ||
596 | .quad sys_capset | ||
597 | .quad stub32_sigaltstack | ||
598 | .quad sys32_sendfile | ||
599 | .quad quiet_ni_syscall /* streams1 */ | ||
600 | .quad quiet_ni_syscall /* streams2 */ | ||
601 | .quad stub32_vfork /* 190 */ | ||
602 | .quad compat_sys_getrlimit | ||
603 | .quad sys32_mmap2 | ||
604 | .quad sys32_truncate64 | ||
605 | .quad sys32_ftruncate64 | ||
606 | .quad sys32_stat64 /* 195 */ | ||
607 | .quad sys32_lstat64 | ||
608 | .quad sys32_fstat64 | ||
609 | .quad sys_lchown | ||
610 | .quad sys_getuid | ||
611 | .quad sys_getgid /* 200 */ | ||
612 | .quad sys_geteuid | ||
613 | .quad sys_getegid | ||
614 | .quad sys_setreuid | ||
615 | .quad sys_setregid | ||
616 | .quad sys_getgroups /* 205 */ | ||
617 | .quad sys_setgroups | ||
618 | .quad sys_fchown | ||
619 | .quad sys_setresuid | ||
620 | .quad sys_getresuid | ||
621 | .quad sys_setresgid /* 210 */ | ||
622 | .quad sys_getresgid | ||
623 | .quad sys_chown | ||
624 | .quad sys_setuid | ||
625 | .quad sys_setgid | ||
626 | .quad sys_setfsuid /* 215 */ | ||
627 | .quad sys_setfsgid | ||
628 | .quad sys_pivot_root | ||
629 | .quad sys_mincore | ||
630 | .quad sys_madvise | ||
631 | .quad compat_sys_getdents64 /* 220 getdents64 */ | ||
632 | .quad compat_sys_fcntl64 | ||
633 | .quad quiet_ni_syscall /* tux */ | ||
634 | .quad quiet_ni_syscall /* security */ | ||
635 | .quad sys_gettid | ||
636 | .quad sys32_readahead /* 225 */ | ||
637 | .quad sys_setxattr | ||
638 | .quad sys_lsetxattr | ||
639 | .quad sys_fsetxattr | ||
640 | .quad sys_getxattr | ||
641 | .quad sys_lgetxattr /* 230 */ | ||
642 | .quad sys_fgetxattr | ||
643 | .quad sys_listxattr | ||
644 | .quad sys_llistxattr | ||
645 | .quad sys_flistxattr | ||
646 | .quad sys_removexattr /* 235 */ | ||
647 | .quad sys_lremovexattr | ||
648 | .quad sys_fremovexattr | ||
649 | .quad sys_tkill | ||
650 | .quad sys_sendfile64 | ||
651 | .quad compat_sys_futex /* 240 */ | ||
652 | .quad compat_sys_sched_setaffinity | ||
653 | .quad compat_sys_sched_getaffinity | ||
654 | .quad sys32_set_thread_area | ||
655 | .quad sys32_get_thread_area | ||
656 | .quad compat_sys_io_setup /* 245 */ | ||
657 | .quad sys_io_destroy | ||
658 | .quad compat_sys_io_getevents | ||
659 | .quad compat_sys_io_submit | ||
660 | .quad sys_io_cancel | ||
661 | .quad sys32_fadvise64 /* 250 */ | ||
662 | .quad quiet_ni_syscall /* free_huge_pages */ | ||
663 | .quad sys_exit_group | ||
664 | .quad sys32_lookup_dcookie | ||
665 | .quad sys_epoll_create | ||
666 | .quad sys_epoll_ctl /* 255 */ | ||
667 | .quad sys_epoll_wait | ||
668 | .quad sys_remap_file_pages | ||
669 | .quad sys_set_tid_address | ||
670 | .quad compat_sys_timer_create | ||
671 | .quad compat_sys_timer_settime /* 260 */ | ||
672 | .quad compat_sys_timer_gettime | ||
673 | .quad sys_timer_getoverrun | ||
674 | .quad sys_timer_delete | ||
675 | .quad compat_sys_clock_settime | ||
676 | .quad compat_sys_clock_gettime /* 265 */ | ||
677 | .quad compat_sys_clock_getres | ||
678 | .quad compat_sys_clock_nanosleep | ||
679 | .quad compat_sys_statfs64 | ||
680 | .quad compat_sys_fstatfs64 | ||
681 | .quad sys_tgkill /* 270 */ | ||
682 | .quad compat_sys_utimes | ||
683 | .quad sys32_fadvise64_64 | ||
684 | .quad quiet_ni_syscall /* sys_vserver */ | ||
685 | .quad sys_mbind | ||
686 | .quad compat_sys_get_mempolicy /* 275 */ | ||
687 | .quad sys_set_mempolicy | ||
688 | .quad compat_sys_mq_open | ||
689 | .quad sys_mq_unlink | ||
690 | .quad compat_sys_mq_timedsend | ||
691 | .quad compat_sys_mq_timedreceive /* 280 */ | ||
692 | .quad compat_sys_mq_notify | ||
693 | .quad compat_sys_mq_getsetattr | ||
694 | .quad compat_sys_kexec_load /* reserved for kexec */ | ||
695 | .quad compat_sys_waitid | ||
696 | .quad quiet_ni_syscall /* 285: sys_altroot */ | ||
697 | .quad sys_add_key | ||
698 | .quad sys_request_key | ||
699 | .quad sys_keyctl | ||
700 | .quad sys_ioprio_set | ||
701 | .quad sys_ioprio_get /* 290 */ | ||
702 | .quad sys_inotify_init | ||
703 | .quad sys_inotify_add_watch | ||
704 | .quad sys_inotify_rm_watch | ||
705 | .quad sys_migrate_pages | ||
706 | .quad compat_sys_openat /* 295 */ | ||
707 | .quad sys_mkdirat | ||
708 | .quad sys_mknodat | ||
709 | .quad sys_fchownat | ||
710 | .quad compat_sys_futimesat | ||
711 | .quad sys32_fstatat /* 300 */ | ||
712 | .quad sys_unlinkat | ||
713 | .quad sys_renameat | ||
714 | .quad sys_linkat | ||
715 | .quad sys_symlinkat | ||
716 | .quad sys_readlinkat /* 305 */ | ||
717 | .quad sys_fchmodat | ||
718 | .quad sys_faccessat | ||
719 | .quad compat_sys_pselect6 | ||
720 | .quad compat_sys_ppoll | ||
721 | .quad sys_unshare /* 310 */ | ||
722 | .quad compat_sys_set_robust_list | ||
723 | .quad compat_sys_get_robust_list | ||
724 | .quad sys_splice | ||
725 | .quad sys32_sync_file_range | ||
726 | .quad sys_tee /* 315 */ | ||
727 | .quad compat_sys_vmsplice | ||
728 | .quad compat_sys_move_pages | ||
729 | .quad sys_getcpu | ||
730 | .quad sys_epoll_pwait | ||
731 | .quad compat_sys_utimensat /* 320 */ | ||
732 | .quad compat_sys_signalfd | ||
733 | .quad compat_sys_timerfd | ||
734 | .quad sys_eventfd | ||
735 | .quad sys32_fallocate | ||
736 | ia32_syscall_end: | ||