linux_locore.s revision 68519
152140Sluoqi/* $FreeBSD: head/sys/i386/linux/linux_locore.s 68519 2000-11-09 07:27:55Z marcel $ */ 252140Sluoqi 314331Speter#include "linux_assym.h" /* system definitions */ 468519Smarcel#include <machine/asmacros.h> /* miscellaneous asm macros */ 514331Speter 668519Smarcel#include <linux_syscall.h> /* system call numbers */ 714331Speter 814331SpeterNON_GPROF_ENTRY(linux_sigcode) 960302Sobrien call *LINUX_SIGF_HANDLER(%esp) 1014331Speter leal LINUX_SIGF_SC(%esp),%ebx /* linux scp */ 1152140Sluoqi movl LINUX_SC_GS(%ebx),%gs 1214331Speter push %eax /* fake ret addr */ 1314331Speter movl $LINUX_SYS_linux_sigreturn,%eax /* linux_sigreturn() */ 1452140Sluoqi int $0x80 /* enter kernel with args */ 1552140Sluoqi0: jmp 0b 1650363Smarcel ALIGN_TEXT 1767234Sgallatin/* XXXXX */ 1867234Sgallatin 1967234Sgallatin_linux_rt_sigcode: 2067234Sgallatin call *LINUX_RT_SIGF_HANDLER(%esp) 2167234Sgallatin leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ 2267234Sgallatin movl LINUX_SC_GS(%ebx),%gs 2367234Sgallatin push %eax /* fake ret addr */ 2467234Sgallatin movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ 2567234Sgallatin int $0x80 /* enter kernel with args */ 2667234Sgallatin0: jmp 0b 2767234Sgallatin ALIGN_TEXT 2867234Sgallatin/* XXXXX */ 2914331Speter_linux_esigcode: 3014331Speter 3114331Speter .data 3267234Sgallatin .globl _linux_szsigcode, _linux_sznonrtsigcode 3314331Speter_linux_szsigcode: 3414331Speter .long _linux_esigcode-_linux_sigcode 3567234Sgallatin_linux_sznonrtsigcode: 3667234Sgallatin .long _linux_rt_sigcode-_linux_sigcode 3767234Sgallatin .text 3814331Speter 3967234Sgallatin 4067234Sgallatin 41