linux32_locore.s revision 285830
1/* $FreeBSD: releng/10.2/sys/amd64/linux32/linux32_locore.s 190620 2009-04-01 13:09:26Z kib $ */ 2 3#include "linux32_assym.h" /* system definitions */ 4#include <machine/asmacros.h> /* miscellaneous asm macros */ 5 6#include <amd64/linux32/linux32_syscall.h> /* system call numbers */ 7 8.text 9.code32 10 11NON_GPROF_ENTRY(linux_sigcode) 12 call *LINUX_SIGF_HANDLER(%esp) 13 leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ 14 movl %esp, %ebx /* pass sigframe */ 15 push %eax /* fake ret addr */ 16 movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 17 int $0x80 /* enter kernel with args */ 180: jmp 0b 19 ALIGN_TEXT 20/* XXXXX */ 21linux_rt_sigcode: 22 call *LINUX_RT_SIGF_HANDLER(%esp) 23 leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ 24 leal LINUX_RT_SIGF_SC(%ebx),%ecx /* linux sigcontext */ 25 push %eax /* fake ret addr */ 26 movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ 27 int $0x80 /* enter kernel with args */ 280: jmp 0b 29 ALIGN_TEXT 30/* XXXXX */ 31linux_esigcode: 32 33 .data 34 .globl linux_szsigcode, linux_sznonrtsigcode 35linux_szsigcode: 36 .long linux_esigcode-linux_sigcode 37linux_sznonrtsigcode: 38 .long linux_rt_sigcode-linux_sigcode 39