| 1/* $FreeBSD: head/sys/i386/linux/linux_locore.s 52140 1999-10-11 20:33:17Z luoqi $ */ 2
|
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 */
| 3#include "linux_assym.h" /* system definitions */ 4#include <machine/asmacros.h> /* miscellaneous asm macros */ 5 6#include <i386/linux/linux_syscall.h> /* system call numbers */ 7 8NON_GPROF_ENTRY(linux_sigcode) 9 call LINUX_SIGF_HANDLER(%esp) 10 leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */
|
9 movl LINUX_SC_GS(%ebx),%edx 10 movl %dx,%gs
| 11 movl LINUX_SC_GS(%ebx),%gs
|
11 push %eax /* fake ret addr */ 12 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */
| 12 push %eax /* fake ret addr */ 13 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */
|
13 int $0x80 /* enter kernel with args on stack */ 14 hlt /* never gets here */
| 14 int $0x80 /* enter kernel with args */ 150: jmp 0b
|
15 ALIGN_TEXT 16_linux_esigcode: 17 18 .data 19 .globl _linux_szsigcode 20_linux_szsigcode: 21 .long _linux_esigcode-_linux_sigcode 22 23 .text
| 16 ALIGN_TEXT 17_linux_esigcode: 18 19 .data 20 .globl _linux_szsigcode 21_linux_szsigcode: 22 .long _linux_esigcode-_linux_sigcode 23 24 .text
|