3 #include "linux_assym.h" /* system definitions */
4 #include <machine/asmacros.h> /* miscellaneous asm macros */
6 #include <i386/linux/linux_syscall.h> /* system call numbers */
16 ENTRY(linux_vdso_sigcode)
19 .cfi_def_cfa %esp, LINUX_SIGF_SC
20 .cfi_offset %gs, L_SC_GS
21 .cfi_offset %fs, L_SC_FS
22 .cfi_offset %es, L_SC_ES
23 .cfi_offset %ds, L_SC_DS
24 .cfi_offset %cs, L_SC_CS
25 .cfi_offset %ss, L_SC_SS
26 .cfi_offset %flags, L_SC_EFLAGS
27 .cfi_offset %edi, L_SC_EDI
28 .cfi_offset %esi, L_SC_ESI
29 .cfi_offset %ebp, L_SC_EBP
30 .cfi_offset %ebx, L_SC_EBX
31 .cfi_offset %edx, L_SC_EDX
32 .cfi_offset %ecx, L_SC_ECX
33 .cfi_offset %eax, L_SC_EAX
34 .cfi_offset %eip, L_SC_EIP
35 .cfi_offset %esp, L_SC_ESP
37 movl %esp, %ebx /* sigframe for sigreturn */
38 call *%edi /* call signal handler */
39 popl %eax /* gcc unwind code need this */
40 .cfi_def_cfa %esp, LINUX_SIGF_SC-4
41 movl $LINUX_SYS_linux_sigreturn, %eax
45 END(linux_vdso_sigcode)
47 ENTRY(linux_vdso_rt_sigcode)
50 .cfi_def_cfa %esp, LINUX_RT_SIGF_UC + LINUX_RT_SIGF_SC
51 .cfi_offset %gs, L_SC_GS
52 .cfi_offset %fs, L_SC_FS
53 .cfi_offset %es, L_SC_ES
54 .cfi_offset %ds, L_SC_DS
55 .cfi_offset %cs, L_SC_CS
56 .cfi_offset %ss, L_SC_SS
57 .cfi_offset %flags, L_SC_EFLAGS
58 .cfi_offset %edi, L_SC_EDI
59 .cfi_offset %esi, L_SC_ESI
60 .cfi_offset %ebp, L_SC_EBP
61 .cfi_offset %ebx, L_SC_EBX
62 .cfi_offset %edx, L_SC_EDX
63 .cfi_offset %ecx, L_SC_ECX
64 .cfi_offset %eax, L_SC_EAX
65 .cfi_offset %eip, L_SC_EIP
66 .cfi_offset %esp, L_SC_ESP
68 leal LINUX_RT_SIGF_UC(%esp), %ebx /* linux ucontext for rt_sigreturn */
69 call *%edi /* call signal handler */
70 movl $LINUX_SYS_linux_rt_sigreturn, %eax
74 END(linux_vdso_rt_sigcode)
76 ENTRY(__kernel_sigreturn)
79 popl %eax /* gcc unwind code need this */
80 movl $LINUX_SYS_linux_sigreturn, %eax
84 END(__kernel_sigreturn)
86 ENTRY(__kernel_rt_sigreturn)
89 movl $LINUX_SYS_linux_rt_sigreturn, %eax
93 END(__kernel_rt_sigreturn)
95 ENTRY(__kernel_vsyscall)
100 END(__kernel_vsyscall)
103 .section .note.Linux, "a",@note
104 .long 2f - 1f /* namesz */
106 .long 4f - 3f /* descsz */
113 .long LINUX_VERSION_CODE