Rename struct ucontext tag (bug 21457).
The ucontext_t type has a tag struct ucontext. As with previous such issues for siginfo_t and stack_t, this tag is not permitted by POSIX (is not in a reserved namespace), and so namespace conformance means breaking C++ name mangling for this type. In this case, the type does need to have some tag rather than just a typedef name, because it includes a pointer to itself. This patch uses struct ucontext_t as the new tag, so the type is mangled as ucontext_t (the POSIX *_t reservation applies in all namespaces, not just the namespace of ordinary identifiers). Another reserved name such as struct __ucontext could of course be used. Because of other namespace issues, this patch does not by itself fix bug 21457 or allow any XFAILs to be removed. Tested for x86_64, and with build-many-glibcs.py. [BZ #21457] * sysdeps/arm/sys/ucontext.h (struct ucontext): Rename to struct ucontext_t. * sysdeps/generic/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/i386/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/m68k/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/mips/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/arm/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/sh/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/tile/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/powerpc/powerpc32/backtrace.c (struct rt_signal_frame_32): Likewise. * sysdeps/powerpc/powerpc64/backtrace.c (struct signal_frame_64): Likewise. * sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h (struct kernel_rt_sigframe): Likewise. * sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/arm/register-dump.h (register_dump): Likewise. * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/hppa/profil-counter.h (__profil_counter): Likewise. * sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h (struct kernel_rt_sigframe): Likewise. * sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h (struct kernel_rt_sigframe): Likewise. * sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/sh/makecontext.S (__makecontext): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c (__start_context): Likewise. * sysdeps/unix/sysv/linux/tile/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump): Likewise. * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (SIGCONTEXT): Likewise.
This commit is contained in:
parent
c86ed71d63
commit
251287734e
68
ChangeLog
68
ChangeLog
|
@ -1,5 +1,73 @@
|
|||
2017-06-26 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #21457]
|
||||
* sysdeps/arm/sys/ucontext.h (struct ucontext): Rename to struct
|
||||
ucontext_t.
|
||||
* sysdeps/generic/sys/ucontext.h (struct ucontext): Likewise.
|
||||
* sysdeps/i386/sys/ucontext.h (struct ucontext): Likewise.
|
||||
* sysdeps/m68k/sys/ucontext.h (struct ucontext): Likewise.
|
||||
* sysdeps/mips/sys/ucontext.h (struct ucontext): Likewise.
|
||||
* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (struct
|
||||
ucontext): Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/ia64/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (struct
|
||||
ucontext): Likewise.
|
||||
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/tile/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86/sys/ucontext.h (struct ucontext):
|
||||
Likewise.
|
||||
* sysdeps/powerpc/powerpc32/backtrace.c (struct
|
||||
rt_signal_frame_32): Likewise.
|
||||
* sysdeps/powerpc/powerpc64/backtrace.c (struct signal_frame_64):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h (struct
|
||||
kernel_rt_sigframe): Likewise.
|
||||
* sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h (SIGCONTEXT):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/register-dump.h (register_dump):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h (SIGCONTEXT):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/profil-counter.h
|
||||
(__profil_counter): Likewise.
|
||||
* sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
|
||||
(SIGCONTEXT): Likewise.
|
||||
* sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h (struct
|
||||
kernel_rt_sigframe): Likewise.
|
||||
* sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h (struct
|
||||
kernel_rt_sigframe): Likewise.
|
||||
* sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h (SIGCONTEXT):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/sh/makecontext.S (__makecontext):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
|
||||
(__start_context): Likewise.
|
||||
* sysdeps/unix/sysv/linux/tile/sigcontextinfo.h (SIGCONTEXT):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump):
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (SIGCONTEXT):
|
||||
Likewise.
|
||||
|
||||
* sysdeps/i386/Implies: Add ieee754/float128.
|
||||
* sysdeps/x86_64/Implies: Likewise.
|
||||
* sysdeps/x86/bits/floatn.h: New file.
|
||||
|
|
3
NEWS
3
NEWS
|
@ -94,6 +94,9 @@ Version 2.26
|
|||
* The stack_t type no longer has the name struct sigaltstack. This changes
|
||||
the C++ name mangling for interfaces involving this type.
|
||||
|
||||
* The ucontext_t type no longer has the name struct ucontext. This changes
|
||||
the C++ name mangling for interfaces involving this type.
|
||||
|
||||
* The synchronization that pthread_spin_unlock performs has been changed
|
||||
to now be equivalent to a C11 atomic store with release memory order to
|
||||
the spin lock's memory location. This ensures correct synchronization
|
||||
|
|
|
@ -98,10 +98,10 @@ typedef struct
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
sigset_t uc_sigmask;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -32,10 +32,10 @@
|
|||
typedef struct sigcontext mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -126,10 +126,10 @@ typedef struct
|
|||
#undef __ctxt
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
sigset_t uc_sigmask;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -113,10 +113,10 @@ typedef struct
|
|||
#endif
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
sigset_t uc_sigmask;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -159,14 +159,14 @@ typedef struct
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
unsigned long int uc_flags;
|
||||
#else
|
||||
__uint64_t uc_flags;
|
||||
#endif
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
sigset_t uc_sigmask;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -64,7 +64,7 @@ is_sigtramp_address (void *nip)
|
|||
struct rt_signal_frame_32 {
|
||||
char dummy[SIGNAL_FRAMESIZE + 16];
|
||||
siginfo_t info;
|
||||
struct ucontext uc;
|
||||
ucontext_t uc;
|
||||
/* We don't care about the rest, since IP value is at 'uc' field. */
|
||||
};
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ struct layout
|
|||
struct signal_frame_64 {
|
||||
#define SIGNAL_FRAMESIZE 128
|
||||
char dummy[SIGNAL_FRAMESIZE];
|
||||
struct ucontext uc;
|
||||
ucontext_t uc;
|
||||
/* We don't care about the rest, since the IP value is at 'uc' field. */
|
||||
};
|
||||
|
||||
|
|
|
@ -21,5 +21,5 @@
|
|||
struct kernel_rt_sigframe
|
||||
{
|
||||
siginfo_t info;
|
||||
struct ucontext uc;
|
||||
ucontext_t uc;
|
||||
};
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <stdint.h>
|
||||
#include <sys/ucontext.h>
|
||||
|
||||
#define SIGCONTEXT siginfo_t *_si, struct ucontext *
|
||||
#define SIGCONTEXT siginfo_t *_si, ucontext_t *
|
||||
#define GET_PC(ctx) ((void *) (uintptr_t) (ctx)->uc_mcontext.pc)
|
||||
|
||||
/* There is no reliable way to get the sigcontext unless we use a
|
||||
|
|
|
@ -47,10 +47,10 @@ typedef elf_fpregset_t fpregset_t;
|
|||
typedef struct sigcontext mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
sigset_t uc_sigmask;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -54,10 +54,10 @@ typedef fpreg_t fpregset_t[__NFPREG];
|
|||
typedef struct sigcontext mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
unsigned long __uc_osf_sigmask;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -44,7 +44,7 @@ hexvalue (unsigned long int value, char *buf, size_t len)
|
|||
}
|
||||
|
||||
static void
|
||||
register_dump (int fd, const struct ucontext *ctx)
|
||||
register_dump (int fd, const ucontext_t *ctx)
|
||||
{
|
||||
char regs[21][8];
|
||||
struct iovec iov[97];
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#include <sys/ucontext.h>
|
||||
|
||||
#define SIGCONTEXT siginfo_t *_si, struct ucontext *
|
||||
#define SIGCONTEXT siginfo_t *_si, ucontext_t *
|
||||
#define SIGCONTEXT_EXTRA_ARGS _si,
|
||||
|
||||
/* The sigcontext structure changed between 2.0 and 2.1 kernels. On any
|
||||
|
|
|
@ -101,10 +101,10 @@ typedef struct _libc_fpstate fpregset_t;
|
|||
typedef struct sigcontext mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
static void
|
||||
__profil_counter (int signr, siginfo_t *si, struct ucontext *uctx)
|
||||
__profil_counter (int signr, siginfo_t *si, ucontext_t *uctx)
|
||||
{
|
||||
unsigned long ip = uctx->uc_mcontext.sc_iaoq[0] & ~0x3;
|
||||
profil_count ((void *) ip);
|
||||
|
|
|
@ -55,10 +55,10 @@ typedef struct fpregset
|
|||
typedef struct sigcontext mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -43,7 +43,7 @@ typedef struct sigcontext mcontext_t;
|
|||
# define _SC_GR0_OFFSET 0xc8 /* pray that this is correct... */
|
||||
#endif
|
||||
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
union
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ typedef struct ucontext
|
|||
struct
|
||||
{
|
||||
unsigned long _pad[_SC_GR0_OFFSET/8];
|
||||
struct ucontext *_link; /* this should overlay sc_gr[0] */
|
||||
struct ucontext_t *_link; /* this should overlay sc_gr[0] */
|
||||
}
|
||||
_uc;
|
||||
}
|
||||
|
|
|
@ -118,10 +118,10 @@ typedef struct
|
|||
#endif
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
unsigned long uc_filler[80];
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define SIGCONTEXT int _code, struct ucontext *
|
||||
#define SIGCONTEXT int _code, ucontext_t *
|
||||
#define SIGCONTEXT_EXTRA_ARGS _code,
|
||||
#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs.pc)
|
||||
#define GET_FRAME(ctx) ((void *) (ctx)->uc_mcontext.regs.sp)
|
||||
|
|
|
@ -6,7 +6,7 @@ typedef struct kernel_rt_sigframe
|
|||
uint32_t rs_ass[4];
|
||||
uint32_t rs_code[2];
|
||||
siginfo_t rs_info;
|
||||
struct ucontext rs_uc;
|
||||
ucontext_t rs_uc;
|
||||
uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
|
||||
}
|
||||
kernel_rt_sigframe_t;
|
||||
|
|
|
@ -113,10 +113,10 @@ typedef struct
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -22,5 +22,5 @@
|
|||
struct kernel_rt_sigframe
|
||||
{
|
||||
siginfo_t info;
|
||||
struct ucontext uc;
|
||||
ucontext_t uc;
|
||||
};
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <sys/ucontext.h>
|
||||
#include "kernel-features.h"
|
||||
|
||||
#define SIGCONTEXT siginfo_t *_si, struct ucontext *
|
||||
#define SIGCONTEXT siginfo_t *_si, ucontext_t *
|
||||
#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs[27])
|
||||
|
||||
/* There is no reliable way to get the sigcontext unless we use a
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* struct ucontext definition, Nios II version.
|
||||
/* ucontext_t definition, Nios II version.
|
||||
Copyright (C) 2015-2017 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
|
@ -50,10 +50,10 @@ typedef struct mcontext
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -148,10 +148,10 @@ typedef struct {
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
#if __WORDSIZE == 32
|
||||
/*
|
||||
|
|
|
@ -83,10 +83,10 @@ typedef struct
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include "ucontext_i.h"
|
||||
|
||||
/* void __makecontext (struct ucontext *ucp, void (*func)(), int argc, ...);
|
||||
/* void __makecontext (ucontext_t *ucp, void (*func)(), int argc, ...);
|
||||
__makecontext sets up a stack and registers for context to run a given
|
||||
function. The registers are set up like this:
|
||||
r4-r7: parameters 1 to 4
|
||||
|
|
|
@ -115,10 +115,10 @@ typedef struct
|
|||
#undef __ctx
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <ucontext.h>
|
||||
|
||||
extern void __start_context (struct ucontext *ucp);
|
||||
extern void __start_context (ucontext_t *ucp);
|
||||
|
||||
void
|
||||
__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
|
||||
|
|
|
@ -82,8 +82,8 @@ typedef struct {
|
|||
mc_fpu_t mc_fpregs;
|
||||
} mcontext_t;
|
||||
|
||||
typedef struct ucontext {
|
||||
struct ucontext *uc_link;
|
||||
typedef struct ucontext_t {
|
||||
struct ucontext_t *uc_link;
|
||||
unsigned long uc_flags;
|
||||
unsigned long __uc_sigmask;
|
||||
mcontext_t uc_mcontext;
|
||||
|
@ -261,10 +261,10 @@ typedef struct
|
|||
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
sigset_t uc_sigmask;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#include <arch/abi.h>
|
||||
|
||||
#define SIGCONTEXT siginfo_t *_si, struct ucontext *
|
||||
#define SIGCONTEXT siginfo_t *_si, ucontext_t *
|
||||
#define SIGCONTEXT_EXTRA_ARGS _si,
|
||||
#define GET_PC(ctx) ((void *) (long) ctx->uc_mcontext.pc)
|
||||
#define GET_FRAME(ctx) ((void *) (long) ctx->uc_mcontext.regs[TREG_FP])
|
||||
|
|
|
@ -60,10 +60,10 @@ enum
|
|||
typedef struct sigcontext mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -139,10 +139,10 @@ typedef struct
|
|||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
@ -243,10 +243,10 @@ typedef struct
|
|||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
typedef struct ucontext_t
|
||||
{
|
||||
unsigned long int uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
struct ucontext_t *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
sigset_t uc_sigmask;
|
||||
|
|
|
@ -64,7 +64,7 @@ hexvalue (unsigned long int value, char *buf, size_t len)
|
|||
}
|
||||
|
||||
static void
|
||||
register_dump (int fd, struct ucontext *ctx)
|
||||
register_dump (int fd, ucontext_t *ctx)
|
||||
{
|
||||
char regs[25][16];
|
||||
char fpregs[30][8];
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#define SIGCONTEXT siginfo_t *_si, struct ucontext *
|
||||
#define SIGCONTEXT siginfo_t *_si, ucontext_t *
|
||||
#define SIGCONTEXT_EXTRA_ARGS _si,
|
||||
#define GET_PC(ctx) \
|
||||
((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RIP])
|
||||
|
|
Loading…
Reference in New Issue