Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/i386/include #ifdef struct sigframe_sigcontext and ...



details:   https://anonhg.NetBSD.org/src/rev/78f5149f4f4b
branches:  trunk
changeset: 551706:78f5149f4f4b
user:      christos <christos%NetBSD.org@localhost>
date:      Wed Sep 10 16:48:16 2003 +0000

description:
#ifdef struct sigframe_sigcontext and struct sigcontext, so that only code
that really needs them, get them.
XXX1: We need to fix the vm86 api.
XXX2: We need to fix the ibcs2 signal delivery mechanism.

diffstat:

 sys/arch/i386/include/frame.h  |  7 ++++++-
 sys/arch/i386/include/signal.h |  9 ++++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diffs (58 lines):

diff -r 0a7ccca706d1 -r 78f5149f4f4b sys/arch/i386/include/frame.h
--- a/sys/arch/i386/include/frame.h     Wed Sep 10 16:46:59 2003 +0000
+++ b/sys/arch/i386/include/frame.h     Wed Sep 10 16:48:16 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: frame.h,v 1.22 2003/09/06 22:05:49 christos Exp $      */
+/*     $NetBSD: frame.h,v 1.23 2003/09/10 16:48:16 christos Exp $      */
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -148,6 +148,10 @@
        int     sf_eip;
 };
 
+#if (defined(COMPAT_16) || defined(COMPAT_IBCS2)) && defined(_KERNEL)
+/*
+ * XXX: Really COMPAT_IBCS2 should not be using our old signal frame.
+ */
 /*
  * Signal frame
  */
@@ -158,6 +162,7 @@
        struct  sigcontext *sf_scp;     /* "scp" argument for handler */
        struct  sigcontext sf_sc;       /* actual saved context */
 };
+#endif
 
 struct sigframe_siginfo {
        int             sf_ra;          /* return address for handler */
diff -r 0a7ccca706d1 -r 78f5149f4f4b sys/arch/i386/include/signal.h
--- a/sys/arch/i386/include/signal.h    Wed Sep 10 16:46:59 2003 +0000
+++ b/sys/arch/i386/include/signal.h    Wed Sep 10 16:48:16 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: signal.h,v 1.18 2003/09/06 22:05:49 christos Exp $     */
+/*     $NetBSD: signal.h,v 1.19 2003/09/10 16:48:16 christos Exp $     */
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1991 Regents of the University of California.
@@ -81,6 +81,12 @@
 };
 #endif
 
+#if defined(COMPAT_16) || defined(_KERNEL)
+/*
+ * We limit this to kernel use only, so that legacy code will break.
+ * XXX: We need to fix vm86 syscall, not to use sigcontext but __gregset_t
+ * + sigset_t, but that is an API change.
+ */
 struct sigcontext {
        int     sc_gs;
        int     sc_fs;
@@ -159,6 +165,7 @@
        (uc)->uc_mcontext.__gregs[_REG_TRAPNO] = (sc)->sc_trapno;       \
        (uc)->uc_mcontext.__gregs[_REG_ERR] = (sc)->sc_err;             \
 } while (/*CONSTCOND*/0)
+#endif
 
 #define sc_sp sc_esp
 #define sc_fp sc_ebp



Home | Main Index | Thread Index | Old Index