Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys More comments on the new signal frame/trampoline



details:   https://anonhg.NetBSD.org/src/rev/659fd1dbc902
branches:  trunk
changeset: 525580:659fd1dbc902
user:      manu <manu%NetBSD.org@localhost>
date:      Sat Apr 13 10:52:59 2002 +0000

description:
More comments on the new signal frame/trampoline

diffstat:

 sys/arch/mips/mips/locore.S   |  8 ++++----
 sys/compat/irix/irix_signal.c |  7 ++++---
 sys/compat/irix/irix_signal.h |  6 +++---
 3 files changed, 11 insertions(+), 10 deletions(-)

diffs (74 lines):

diff -r 5af5b91a13bf -r 659fd1dbc902 sys/arch/mips/mips/locore.S
--- a/sys/arch/mips/mips/locore.S       Sat Apr 13 10:28:36 2002 +0000
+++ b/sys/arch/mips/mips/locore.S       Sat Apr 13 10:52:59 2002 +0000
@@ -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 @@
 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
diff -r 5af5b91a13bf -r 659fd1dbc902 sys/compat/irix/irix_signal.c
--- a/sys/compat/irix/irix_signal.c     Sat Apr 13 10:28:36 2002 +0000
+++ b/sys/compat/irix/irix_signal.c     Sat Apr 13 10:52:59 2002 +0000
@@ -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 @@
         * 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),
diff -r 5af5b91a13bf -r 659fd1dbc902 sys/compat/irix/irix_signal.h
--- a/sys/compat/irix/irix_signal.h     Sat Apr 13 10:28:36 2002 +0000
+++ b/sys/compat/irix/irix_signal.h     Sat Apr 13 10:52:59 2002 +0000
@@ -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 @@
 
 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;



Home | Main Index | Thread Index | Old Index