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:
parent
efec00ac60
commit
0270d57aef
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=90776
@ -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;
|
||||
|
@ -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_ */
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
/*
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
/*
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user