1#include "svr4_assym.h"			/* system definitions */
2#include <machine/asmacros.h>		/* miscellaneous asm macros */
3
4#include <compat/svr4/svr4_syscall.h>		/* system call numbers */
5
6/* $FreeBSD$ */
7
8NON_GPROF_ENTRY(svr4_sigcode)
9	call	*SVR4_SIGF_HANDLER(%esp)
10	leal	SVR4_SIGF_UC(%esp),%eax	/* ucp (the call may have clobbered the
11					   copy at SIGF_UCP(%esp)) */
12#ifdef VM86
13#warning "VM86 doesn't work yet - do you really want this?"
14	testl	$PSL_VM,SVR4_UC_EFLAGS(%eax)
15	jnz	1f
16#endif
17	mov	SVR4_UC_GS(%eax),%gs
181:	pushl	%eax			# pointer to ucontext
19	pushl	$1			# set context
20	movl	$svr4_sys_context,%eax
21	int	$0x80	 		# enter kernel with args on stack
220:	jmp	0b
23
24	ALIGN_TEXT
25svr4_esigcode:
26
27	.data
28	.globl	svr4_szsigcode
29svr4_szsigcode:
30	.long	svr4_esigcode - svr4_sigcode
31
32	.text
33