#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.
This commit is contained in:
christos 2003-09-10 16:48:16 +00:00
parent 0b16bf9a36
commit f7f3566b1e
2 changed files with 14 additions and 2 deletions

View File

@ -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 @@ struct switchframe {
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 sigframe_sigcontext {
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 */

View File

@ -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 @@ struct sigcontext13 {
};
#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 @@ do { \
(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