linux_locore.s revision 14331
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 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 27