X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=arch%2Fx86_64%2Fbits%2Fsignal.h;h=71b656b5240d24eeea64ec01925dedff56fa40d7;hb=facc6acbfd20accea435d10fdd070b23877e40db;hp=38f3bc42ad947b22228b59b25dabfb2c725972e0;hpb=c72fc23843906e2571e817a62c94cee15648b7dc;p=musl diff --git a/arch/x86_64/bits/signal.h b/arch/x86_64/bits/signal.h index 38f3bc42..71b656b5 100644 --- a/arch/x86_64/bits/signal.h +++ b/arch/x86_64/bits/signal.h @@ -1,8 +1,35 @@ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +#ifdef _GNU_SOURCE +#define REG_R8 0 +#define REG_R9 1 +#define REG_R10 2 +#define REG_R11 3 +#define REG_R12 4 +#define REG_R13 5 +#define REG_R14 6 +#define REG_R15 7 +#define REG_RDI 8 +#define REG_RSI 9 +#define REG_RBP 10 +#define REG_RBX 11 +#define REG_RDX 12 +#define REG_RAX 13 +#define REG_RCX 14 +#define REG_RSP 15 +#define REG_RIP 16 +#define REG_EFL 17 +#define REG_CSGSFS 18 +#define REG_ERR 19 +#define REG_TRAPNO 20 +#define REG_OLDMASK 21 +#define REG_CR2 22 +#endif + #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 long long rip, rdp; unsigned mxcsr, mxcr_mask; @@ -13,7 +40,7 @@ struct _fpstate { unsigned element[4]; } _xmm[16]; unsigned padding[24]; -}; +} *fpregset_t; struct sigcontext { unsigned long r8, r9, r10, r11, r12, r13, r14, r15; unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags; @@ -23,8 +50,8 @@ struct sigcontext { unsigned long __reserved1[8]; }; typedef struct { - unsigned long long gregs[23]; - struct _fpstate *fpregs; + gregset_t gregs; + fpregset_t fpregs; unsigned long long __reserved1[8]; } mcontext_t; #else @@ -88,3 +115,4 @@ typedef struct __ucontext { #define SIGUNUSED SIGSYS #define _NSIG 65 +