1999-01-30 06:29:48 +00:00
|
|
|
#include "svr4_assym.h" /* system definitions */
|
|
|
|
#include <machine/asmacros.h> /* miscellaneous asm macros */
|
|
|
|
|
2000-08-31 22:54:09 +00:00
|
|
|
#include <compat/svr4/svr4_syscall.h> /* system call numbers */
|
1999-01-30 06:29:48 +00:00
|
|
|
|
1999-08-28 01:08:13 +00:00
|
|
|
/* $FreeBSD$ */
|
1999-07-30 12:47:17 +00:00
|
|
|
|
1999-01-30 06:29:48 +00:00
|
|
|
NON_GPROF_ENTRY(svr4_sigcode)
|
2000-05-10 01:21:15 +00:00
|
|
|
call *SVR4_SIGF_HANDLER(%esp)
|
2003-04-21 16:30:12 +00:00
|
|
|
leal SVR4_SIGF_UC(%esp),%eax /* ucp (the call may have clobbered the
|
|
|
|
copy at SIGF_UCP(%esp)) */
|
1999-06-02 15:35:46 +00:00
|
|
|
#ifdef VM86
|
2000-01-15 15:23:14 +00:00
|
|
|
#warning "VM86 doesn't work yet - do you really want this?"
|
1999-01-30 06:29:48 +00:00
|
|
|
testl $PSL_VM,SVR4_UC_EFLAGS(%eax)
|
|
|
|
jnz 1f
|
1999-06-02 15:35:46 +00:00
|
|
|
#endif
|
2009-01-31 11:37:21 +00:00
|
|
|
mov SVR4_UC_GS(%eax),%gs
|
1999-10-11 20:33:17 +00:00
|
|
|
1: pushl %eax # pointer to ucontext
|
|
|
|
pushl $1 # set context
|
2001-02-25 06:29:04 +00:00
|
|
|
movl $svr4_sys_context,%eax
|
1999-01-30 06:29:48 +00:00
|
|
|
int $0x80 # enter kernel with args on stack
|
1999-10-11 20:33:17 +00:00
|
|
|
0: jmp 0b
|
1999-01-30 06:29:48 +00:00
|
|
|
|
1999-08-25 22:55:56 +00:00
|
|
|
ALIGN_TEXT
|
1999-01-30 06:29:48 +00:00
|
|
|
svr4_esigcode:
|
|
|
|
|
|
|
|
.data
|
2001-02-25 06:29:04 +00:00
|
|
|
.globl svr4_szsigcode
|
|
|
|
svr4_szsigcode:
|
|
|
|
.long svr4_esigcode - svr4_sigcode
|
1999-01-30 06:29:48 +00:00
|
|
|
|
|
|
|
.text
|