linux_locore.s revision 68519
150276Speter/* $FreeBSD: head/sys/i386/linux/linux_locore.s 68519 2000-11-09 07:27:55Z marcel $ */ 276726Speter 350276Speter#include "linux_assym.h" /* system definitions */ 450276Speter#include <machine/asmacros.h> /* miscellaneous asm macros */ 550276Speter 650276Speter#include <linux_syscall.h> /* system call numbers */ 750276Speter 850276SpeterNON_GPROF_ENTRY(linux_sigcode) 950276Speter call *LINUX_SIGF_HANDLER(%esp) 1050276Speter leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ 1150276Speter movl LINUX_SC_GS(%ebx),%gs 1250276Speter push %eax /* fake ret addr */ 1350276Speter movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 1450276Speter int $0x80 /* enter kernel with args */ 1550276Speter0: jmp 0b 1650276Speter ALIGN_TEXT 1750276Speter/* XXXXX */ 1850276Speter 1950276Speter_linux_rt_sigcode: 2050276Speter call *LINUX_RT_SIGF_HANDLER(%esp) 2150276Speter leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ 2250276Speter movl LINUX_SC_GS(%ebx),%gs 2350276Speter push %eax /* fake ret addr */ 2450276Speter movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ 2550276Speter int $0x80 /* enter kernel with args */ 2650276Speter0: jmp 0b 2750276Speter ALIGN_TEXT 2850276Speter/* XXXXX */ 2950276Speter_linux_esigcode: 3050276Speter 3150276Speter .data 3250276Speter .globl _linux_szsigcode, _linux_sznonrtsigcode 3350276Speter_linux_szsigcode: 3450276Speter .long _linux_esigcode-_linux_sigcode 3576726Speter_linux_sznonrtsigcode: 3650276Speter .long _linux_rt_sigcode-_linux_sigcode 3750276Speter .text 3850276Speter 3950276Speter 4050276Speter 4150276Speter