linux_locore.s revision 67234
1/* $FreeBSD: head/sys/i386/linux/linux_locore.s 67234 2000-10-17 00:00:20Z gallatin $ */ 2 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 */ 11 movl LINUX_SC_GS(%ebx),%gs 12 push %eax /* fake ret addr */ 13 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 14 int $0x80 /* enter kernel with args */ 150: jmp 0b 16 ALIGN_TEXT 17/* XXXXX */ 18 19_linux_rt_sigcode: 20 call *LINUX_RT_SIGF_HANDLER(%esp) 21 leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ 22 movl LINUX_SC_GS(%ebx),%gs 23 push %eax /* fake ret addr */ 24 movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ 25 int $0x80 /* enter kernel with args */ 260: jmp 0b 27 ALIGN_TEXT 28/* XXXXX */ 29_linux_esigcode: 30 31 .data 32 .globl _linux_szsigcode, _linux_sznonrtsigcode 33_linux_szsigcode: 34 .long _linux_esigcode-_linux_sigcode 35_linux_sznonrtsigcode: 36 .long _linux_rt_sigcode-_linux_sigcode 37 .text 38 39 40 41