mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 15:22:15 +00:00
fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate
This commit is contained in:
parent
4b75f4ed8d
commit
a8da6c2f28
@ -2,6 +2,7 @@
|
|||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
typedef int greg_t, gregset_t[18];
|
||||||
typedef struct sigcontext
|
typedef struct sigcontext
|
||||||
{
|
{
|
||||||
unsigned long trap_no, error_code, oldmask;
|
unsigned long trap_no, error_code, oldmask;
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
struct _fpstate {
|
typedef int greg_t, gregset_t[19];
|
||||||
|
typedef struct _fpstate {
|
||||||
unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel;
|
unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel;
|
||||||
struct {
|
struct {
|
||||||
unsigned short significand[4], exponent;
|
unsigned short significand[4], exponent;
|
||||||
} _st[8];
|
} _st[8];
|
||||||
unsigned long status;
|
unsigned long status;
|
||||||
};
|
} *fpregset_t;
|
||||||
struct sigcontext {
|
struct sigcontext {
|
||||||
unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh;
|
unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh;
|
||||||
unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax;
|
unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax;
|
||||||
@ -20,8 +21,8 @@ struct sigcontext {
|
|||||||
unsigned long oldmask, cr2;
|
unsigned long oldmask, cr2;
|
||||||
};
|
};
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned gregs[19];
|
gregset_t gregs;
|
||||||
struct _fpstate *fpregs;
|
fpregset_t fpregs;
|
||||||
unsigned long oldmask, cr2;
|
unsigned long oldmask, cr2;
|
||||||
} mcontext_t;
|
} mcontext_t;
|
||||||
#else
|
#else
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
typedef unsigned long greg_t, gregset_t[38];
|
||||||
typedef struct sigcontext
|
typedef struct sigcontext
|
||||||
{
|
{
|
||||||
struct {
|
struct {
|
||||||
|
@ -2,13 +2,31 @@
|
|||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
typedef struct sigcontext
|
typedef unsigned long long greg_t, gregset_t[32];
|
||||||
|
typedef struct {
|
||||||
|
union {
|
||||||
|
double fp_dregs[32];
|
||||||
|
struct {
|
||||||
|
float _fp_fregs;
|
||||||
|
unsigned _fp_pad;
|
||||||
|
} fp_fregs[32];
|
||||||
|
} fp_r;
|
||||||
|
} fpregset_t;
|
||||||
|
struct sigcontext
|
||||||
{
|
{
|
||||||
unsigned sc_regmask, sc_status;
|
unsigned sc_regmask, sc_status;
|
||||||
unsigned long long sc_pc, sc_regs[32], sc_fpregs[32];
|
unsigned long long sc_pc, sc_regs[32], sc_fpregs[32];
|
||||||
unsigned sc_ownedfp, sc_fpc_csr, sc_fpc_eir, sc_used_math, sc_dsp;
|
unsigned sc_ownedfp, sc_fpc_csr, sc_fpc_eir, sc_used_math, sc_dsp;
|
||||||
unsigned long long sc_mdhi, sc_mdlo;
|
unsigned long long sc_mdhi, sc_mdlo;
|
||||||
unsigned long sc_hi1, sc_lo1, sc_hi2, sc_lo2, sc_hi3, sc_lo3;
|
unsigned long sc_hi1, sc_lo1, sc_hi2, sc_lo2, sc_hi3, sc_lo3;
|
||||||
|
};
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
unsigned regmask, status;
|
||||||
|
unsigned long long pc, regs[32], fpregs[32];
|
||||||
|
unsigned ownedfp, fpc_csr, fpc_eir, used_math, dsp;
|
||||||
|
unsigned long long mdhi, mdlo;
|
||||||
|
unsigned long hi1, lo1, hi2, lo2, hi3, lo3;
|
||||||
} mcontext_t;
|
} mcontext_t;
|
||||||
#else
|
#else
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
|
||||||
typedef unsigned long gregset_t[48];
|
typedef unsigned long greg_t, gregset_t[48];
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
double fpregs[32];
|
double fpregs[32];
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
struct _fpstate {
|
typedef long long greg_t, gregset_t[23];
|
||||||
|
typedef struct _fpstate {
|
||||||
unsigned short cwd, swd, ftw, fop;
|
unsigned short cwd, swd, ftw, fop;
|
||||||
unsigned long long rip, rdp;
|
unsigned long long rip, rdp;
|
||||||
unsigned mxcsr, mxcr_mask;
|
unsigned mxcsr, mxcr_mask;
|
||||||
@ -13,7 +14,7 @@ struct _fpstate {
|
|||||||
unsigned element[4];
|
unsigned element[4];
|
||||||
} _xmm[16];
|
} _xmm[16];
|
||||||
unsigned padding[24];
|
unsigned padding[24];
|
||||||
};
|
} *fpregset_t;
|
||||||
struct sigcontext {
|
struct sigcontext {
|
||||||
unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
|
unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
|
||||||
unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
|
unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
|
||||||
@ -23,8 +24,8 @@ struct sigcontext {
|
|||||||
unsigned long __reserved1[8];
|
unsigned long __reserved1[8];
|
||||||
};
|
};
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned long long gregs[23];
|
gregset_t gregs;
|
||||||
struct _fpstate *fpregs;
|
fpregset_t fpregs;
|
||||||
unsigned long long __reserved1[8];
|
unsigned long long __reserved1[8];
|
||||||
} mcontext_t;
|
} mcontext_t;
|
||||||
#else
|
#else
|
||||||
|
@ -13,6 +13,7 @@ extern "C" {
|
|||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
#define __siginfo siginfo
|
#define __siginfo siginfo
|
||||||
|
#define __ucontext ucontext
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define __NEED_size_t
|
#define __NEED_size_t
|
||||||
|
@ -8,8 +8,8 @@ extern "C" {
|
|||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
#define ucontext __ucontext
|
#define NGREG (sizeof(gregset_t)/sizeof(greg_t))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct __ucontext;
|
struct __ucontext;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user