1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-28 16:43:09 +00:00

Use struct __ucontext in prototypes and associated functions instead of

ucontext_t.  Forward declare struct __ucontext in <sys/signal.h> and
remove reliance on <sys/ucontext.h> being included.

While I'm here, also hide osigcontext types from userland; suggested
by bde.

Namespace pollution noticed by: Kevin Day <toasty@shell.dragondata.com>
This commit is contained in:
Daniel Eischen 2002-02-17 17:40:34 +00:00
parent efec00ac60
commit 0270d57aef
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=90776
14 changed files with 44 additions and 12 deletions

View File

@ -128,6 +128,7 @@
#include <vm/vm_pager.h>
#include <sys/user.h>
#include <sys/ptrace.h>
#include <sys/ucontext.h>
#include <machine/clock.h>
#include <machine/md_var.h>
#include <machine/reg.h>
@ -1506,7 +1507,7 @@ osigreturn(struct thread *td,
int
sigreturn(struct thread *td,
struct sigreturn_args /* {
ucontext_t *sigcntxp;
const struct __ucontext *sigcntxp;
} */ *uap)
{
ucontext_t uc, *ucp;

View File

@ -31,15 +31,17 @@
#ifndef _MACHINE_SIGFRAME_H_
#define _MACHINE_SIGFRAME_H_ 1
#ifdef _KERNEL
struct osigframe {
struct osigcontext sf_sc;
osiginfo_t sf_si;
};
#endif
struct sigframe {
unsigned long __spare__;
ucontext_t sf_uc;
siginfo_t sf_si;
unsigned long __spare__;
struct __ucontext sf_uc;
siginfo_t sf_si;
};
#endif /* _MACHINE_SIGFRAME_H_ */

View File

@ -41,6 +41,10 @@ typedef long sig_atomic_t;
*/
#define MINSIGSTKSZ (1024 * 4)
/*
* Only the kernel should need these old type definitions.
*/
#ifdef _KERNEL
/*
* Information pushed on stack when a signal is delivered.
* This is used by the kernel to restore state following
@ -70,6 +74,7 @@ struct osigcontext {
unsigned long sc_traparg_a2; /* a2 argument to trap at exception */
long sc_xxx2[3]; /* sc_fp_trap_pc, sc_fp_trigger_sum, sc_fp_trigger_inst */
};
#endif
/*
* The sequence of the fields should match those in

View File

@ -50,6 +50,7 @@
#include <sys/mutex.h>
#include <sys/socket.h>
#include <sys/resourcevar.h>
#include <sys/ucontext.h>
#include <sys/user.h>
#include <machine/bootinfo.h>
#include <machine/tss.h>

View File

@ -72,6 +72,7 @@
#include <sys/msgbuf.h>
#include <sys/sysent.h>
#include <sys/sysctl.h>
#include <sys/ucontext.h>
#include <sys/vmmeter.h>
#include <sys/bus.h>
#include <sys/eventhandler.h>
@ -706,7 +707,7 @@ int
sigreturn(td, uap)
struct thread *td;
struct sigreturn_args /* {
ucontext_t *sigcntxp;
const __ucontext *sigcntxp;
} */ *uap;
{
struct proc *p = td->td_proc;

View File

@ -34,7 +34,7 @@
/*
* Signal frames, arguments passed to application signal handlers.
*/
#ifdef _KERNEL
struct osigframe {
/*
* The first four members may be used by applications.
@ -69,6 +69,7 @@ struct osigframe {
/* In the SA_SIGINFO case, sf_arg2 points here. */
osiginfo_t sf_siginfo;
};
#endif
struct sigframe {
/*

View File

@ -53,6 +53,10 @@ typedef int sig_atomic_t;
#include <machine/trap.h> /* codes for SIGILL, SIGFPE */
/*
* Only the kernel should need these old type definitions.
*/
#ifdef _KERNEL
/*
* Information pushed on stack when a signal is delivered.
* This is used by the kernel to restore state following
@ -85,6 +89,7 @@ struct osigcontext {
int sc_trapno;
int sc_err;
};
#endif
/*
* The sequence of the fields/registers in struct sigcontext should match

View File

@ -50,6 +50,7 @@
#include <sys/mutex.h>
#include <sys/socket.h>
#include <sys/resourcevar.h>
#include <sys/ucontext.h>
#include <sys/user.h>
#include <machine/bootinfo.h>
#include <machine/tss.h>

View File

@ -72,6 +72,7 @@
#include <sys/msgbuf.h>
#include <sys/sysent.h>
#include <sys/sysctl.h>
#include <sys/ucontext.h>
#include <sys/vmmeter.h>
#include <sys/bus.h>
#include <sys/eventhandler.h>
@ -706,7 +707,7 @@ int
sigreturn(td, uap)
struct thread *td;
struct sigreturn_args /* {
ucontext_t *sigcntxp;
const __ucontext *sigcntxp;
} */ *uap;
{
struct proc *p = td->td_proc;

View File

@ -34,7 +34,7 @@
/*
* Signal frames, arguments passed to application signal handlers.
*/
#ifdef _KERNEL
struct osigframe {
/*
* The first four members may be used by applications.
@ -69,6 +69,7 @@ struct osigframe {
/* In the SA_SIGINFO case, sf_arg2 points here. */
osiginfo_t sf_siginfo;
};
#endif
struct sigframe {
/*

View File

@ -53,6 +53,10 @@ typedef int sig_atomic_t;
#include <machine/trap.h> /* codes for SIGILL, SIGFPE */
/*
* Only the kernel should need these old type definitions.
*/
#ifdef _KERNEL
/*
* Information pushed on stack when a signal is delivered.
* This is used by the kernel to restore state following
@ -85,6 +89,7 @@ struct osigcontext {
int sc_trapno;
int sc_err;
};
#endif
/*
* The sequence of the fields/registers in struct sigcontext should match

View File

@ -247,8 +247,11 @@ typedef struct sigaltstack {
#define SS_DISABLE 0x0004 /* disable taking signals on alternate stack */
#define SIGSTKSZ (MINSIGSTKSZ + 32768) /* recommended stack size */
/* Have enough typedefs for this now. XXX */
#include <sys/ucontext.h>
/*
* Forward declaration for __ucontext so that sigreturn can use it
* without having to include <ucontext.h>.
*/
struct __ucontext;
/*
* 4.3 compatibility:

View File

@ -247,8 +247,11 @@ typedef struct sigaltstack {
#define SS_DISABLE 0x0004 /* disable taking signals on alternate stack */
#define SIGSTKSZ (MINSIGSTKSZ + 32768) /* recommended stack size */
/* Have enough typedefs for this now. XXX */
#include <sys/ucontext.h>
/*
* Forward declaration for __ucontext so that sigreturn can use it
* without having to include <ucontext.h>.
*/
struct __ucontext;
/*
* 4.3 compatibility:

View File

@ -60,6 +60,7 @@ struct sigacts {
sigset_t ps_usertramp; /* SunOS compat; libc sigtramp XXX */
};
#ifdef _KERNEL
/*
* Compatibility.
*/
@ -80,6 +81,7 @@ struct osigaction {
};
typedef void __osiginfohandler_t __P((int, osiginfo_t *, void *));
#endif /* _KERNEL */
/* additional signal action values, used only temporarily/internally */
#define SIG_CATCH ((__sighandler_t *)2)