More comments on the new signal frame/trampoline

This commit is contained in:
manu 2002-04-13 10:52:59 +00:00
parent 0cdadad2cd
commit c56e133974
3 changed files with 11 additions and 10 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.S,v 1.136 2002/04/12 18:44:57 manu Exp $ */
/* $NetBSD: locore.S,v 1.137 2002/04/13 10:52:59 manu Exp $ */
/*
* Copyright (c) 1992, 1993
@ -207,13 +207,13 @@ XLEAF(linux_esigcode)
LEAF_NOPROFILE(irix_sigcode)
# lw t1,32(sp)
# lw t0,28(sp)
# sw t1,0(t0)
# sw t1,0(t0) # *sf.isf_uep = sf.isf_errno
lw a0,40(sp)
lw a1,44(sp)
lw a2,36(sp)
li v0, IRIX_SYS_sigreturn + SYSCALL_SHIFT
syscall # sigreturn(scp, ucp, sig)
break 0 # just in case sigreturn fails
syscall # sigreturn(sf.isf_scp, sf.isf_ucp, sf.isf_signo)
break 0 # just in case sigreturn fails
END(irix_sigcode)
XLEAF(irix_esigcode)
#undef SYSCALL_SHIFT

View File

@ -1,4 +1,4 @@
/* $NetBSD: irix_signal.c,v 1.12 2002/04/12 18:44:58 manu Exp $ */
/* $NetBSD: irix_signal.c,v 1.13 2002/04/13 10:53:00 manu Exp $ */
/*-
* Copyright (c) 1994, 2001-2002 The NetBSD Foundation, Inc.
@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: irix_signal.c,v 1.12 2002/04/12 18:44:58 manu Exp $");
__KERNEL_RCSID(0, "$NetBSD: irix_signal.c,v 1.13 2002/04/13 10:53:00 manu Exp $");
#include <sys/types.h>
#include <sys/signal.h>
@ -233,7 +233,8 @@ irix_sendsig(catcher, sig, mask, code)
* errno in userspace. This is used by the signal
* trampoline. No idea how to emulate this for now...
*/
/* sf.isf_errno = 0; */
/* sf.isf_uep = NULL; */
/* sf.isf_errno = 0 */
/*
* Compute the new stack address after copying sigframe (hold by sp),

View File

@ -1,4 +1,4 @@
/* $NetBSD: irix_signal.h,v 1.8 2002/04/12 18:44:58 manu Exp $ */
/* $NetBSD: irix_signal.h,v 1.9 2002/04/13 10:53:00 manu Exp $ */
/*-
* Copyright (c) 2001-2002 The NetBSD Foundation, Inc.
@ -160,8 +160,8 @@ typedef struct irix_irix5_siginfo {
struct irix_sigframe {
int isf_pad1[7];
int *isf_errno;
int isf_pad2;
int *isf_uep; /* Pointer to errno in userspace */
int isf_errno;
int isf_signo;
struct irix_sigcontext *isf_scp;
struct irix_ucontext *isf_ucp;