linux_locore.s revision 14331
114331Speter#include "linux_assym.h" /* system definitions */ 214331Speter#include <machine/asmacros.h> /* miscellaneous asm macros */ 314331Speter 414331Speter#include <i386/linux/linux_syscall.h> /* system call numbers */ 514331Speter 614331SpeterNON_GPROF_ENTRY(linux_sigcode) 714331Speter call LINUX_SIGF_HANDLER(%esp) 814331Speter leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ 914331Speter movl LINUX_SC_FS(%ebx),%ecx 1014331Speter movl LINUX_SC_GS(%ebx),%edx 1114331Speter movl %cx,%fs 1214331Speter movl %dx,%gs 1314331Speter push %eax /* fake ret addr */ 1414331Speter movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 1514331Speter int $0x80 /* enter kernel with args on stack */ 1614331Speter hlt /* never gets here */ 1714331Speter 1814331Speter .align 2 /* long word align */ 1914331Speter_linux_esigcode: 2014331Speter 2114331Speter .data 2214331Speter .globl _linux_szsigcode 2314331Speter_linux_szsigcode: 2414331Speter .long _linux_esigcode-_linux_sigcode 2514331Speter 2614331Speter .text 27