linux_locore.s (14331) | linux_locore.s (46129) |
---|---|
1#include "linux_assym.h" /* system definitions */ 2#include <machine/asmacros.h> /* miscellaneous asm macros */ 3 4#include <i386/linux/linux_syscall.h> /* system call numbers */ 5 6NON_GPROF_ENTRY(linux_sigcode) 7 call LINUX_SIGF_HANDLER(%esp) 8 leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ | 1#include "linux_assym.h" /* system definitions */ 2#include <machine/asmacros.h> /* miscellaneous asm macros */ 3 4#include <i386/linux/linux_syscall.h> /* system call numbers */ 5 6NON_GPROF_ENTRY(linux_sigcode) 7 call LINUX_SIGF_HANDLER(%esp) 8 leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ |
9 movl LINUX_SC_FS(%ebx),%ecx | |
10 movl LINUX_SC_GS(%ebx),%edx | 9 movl LINUX_SC_GS(%ebx),%edx |
11 movl %cx,%fs | |
12 movl %dx,%gs 13 push %eax /* fake ret addr */ 14 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 15 int $0x80 /* enter kernel with args on stack */ 16 hlt /* never gets here */ 17 18 .align 2 /* long word align */ 19_linux_esigcode: 20 21 .data 22 .globl _linux_szsigcode 23_linux_szsigcode: 24 .long _linux_esigcode-_linux_sigcode 25 26 .text | 10 movl %dx,%gs 11 push %eax /* fake ret addr */ 12 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 13 int $0x80 /* enter kernel with args on stack */ 14 hlt /* never gets here */ 15 16 .align 2 /* long word align */ 17_linux_esigcode: 18 19 .data 20 .globl _linux_szsigcode 21_linux_szsigcode: 22 .long _linux_esigcode-_linux_sigcode 23 24 .text |