X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=arch%2Fx86_64%2Fbits%2Fsignal.h;h=9043aeafdef77f38a73b4b30ab83ee765be2b2c6;hb=df31363d8c4ab3eee91ca1cf3c79a303eefafc4d;hp=11375b9ac79348738726fc4a0eb8bf17d3695733;hpb=030b452b8d6c95be6b6de661aed96e8379d1a80e;p=musl diff --git a/arch/x86_64/bits/signal.h b/arch/x86_64/bits/signal.h index 11375b9a..9043aeaf 100644 --- a/arch/x86_64/bits/signal.h +++ b/arch/x86_64/bits/signal.h @@ -1,17 +1,38 @@ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -struct __fpstate { - unsigned long __x[4]; - unsigned char __y[384]; - unsigned long __z[12]; +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +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; + struct { + unsigned short significand[4], exponent, padding[3]; + } _st[8]; + struct { + 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; + unsigned short cs, gs, fs, __pad0; + unsigned long err, trapno, oldmask, cr2; + struct _fpstate *fpstate; + unsigned long __reserved1[8]; }; - typedef struct { - unsigned long __gregs[23]; - void *__fpregs; - unsigned long __reserved1[8]; + gregset_t gregs; + fpregset_t fpregs; + unsigned long long __reserved1[8]; } mcontext_t; +#else +typedef struct { + unsigned long __space[32]; +} mcontext_t; +#endif typedef struct __ucontext { unsigned long uc_flags; @@ -19,7 +40,7 @@ typedef struct __ucontext { stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; - struct __fpstate __fpregs_mem; + unsigned long __fpregs_mem[64]; } ucontext_t; #define SA_NOCLDSTOP 1 @@ -31,18 +52,6 @@ typedef struct __ucontext { #define SA_RESETHAND 0x80000000 #define SA_RESTORER 0x04000000 -#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -struct sigcontext { - unsigned long r8, r9, r10, r11, r12, r13, r14, r15; - unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags; - unsigned short cs, gs, fs, __pad0; - unsigned long err, trapno, oldmask, cr2; - struct __fpstate *fpstate; - unsigned long __reserved1[8]; -}; -#define NSIG 64 -#endif - #endif #define SIGHUP 1 @@ -78,3 +87,5 @@ struct sigcontext { #define SIGPWR 30 #define SIGSYS 31 #define SIGUNUSED SIGSYS + +#define _NSIG 65