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