X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=arch%2Fx86_64%2Fbits%2Fsignal.h;h=d5f01cedc191d6e6f31cf657b9967a49a4ede459;hp=73b0128404fa9de7c5a6b4baf19e2d0b9b78c4e3;hb=2d0f495e7bbcc1b17bf118b939e347e2d771fa2f;hpb=ad2fe25041622b6cf426b0f98af0e52c2c9727f6 diff --git a/arch/x86_64/bits/signal.h b/arch/x86_64/bits/signal.h index 73b01284..d5f01ced 100644 --- a/arch/x86_64/bits/signal.h +++ b/arch/x86_64/bits/signal.h @@ -1,17 +1,64 @@ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ - || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -struct __fpstate { - unsigned long __x[4]; - unsigned char __y[384]; - unsigned long __z[12]; -}; +#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 -typedef struct { - unsigned long __gregs[23]; - void *__fpregs; +#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 { + 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,71 +66,9 @@ 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; -#ifdef _GNU_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]; -}; -#endif - -struct __siginfo -{ - int si_signo; - int si_errno; - int si_code; - union - { - int __pad[(128 - 4*sizeof(int)) / sizeof(int)]; - struct { - pid_t si_pid; - uid_t si_uid; - } __kill; - struct { - void *si_timerid; - int si_overrun; - char __pad[sizeof(uid_t) - sizeof(int)]; - union sigval si_sigval; - int si_private; - } __timer; - struct { - pid_t si_pid; - uid_t si_uid; - union sigval si_sigval; - } __rt; - struct { - pid_t si_pid; - uid_t si_uid; - int si_status; - clock_t si_utime; - clock_t si_stime; - } __sigchld; - struct { - void *si_addr; - short addr_lsb; - } __sigfault; - struct { - long si_band; - int si_fd; - } __sigpoll; - } __si_fields; -}; - -#define si_pid __si_fields.__sigchld.si_pid -#define si_uid __si_fields.__sigchld.si_uid -#define si_status __si_fields.__sigchld.si_status -#define si_utime __si_fields.__sigchld.si_utime -#define si_stime __si_fields.__sigchld.si_stime -#define si_value __si_fields.__rt.si_sigval -#define si_addr __si_fields.__sigfault.si_addr -#define si_band __si_fields.__sigpoll.si_band - #define SA_NOCLDSTOP 1 #define SA_NOCLDWAIT 2 #define SA_SIGINFO 4 @@ -93,31 +78,15 @@ struct __siginfo #define SA_RESETHAND 0x80000000 #define SA_RESTORER 0x04000000 -#define SS_ONSTACK 1 -#define SS_DISABLE 2 - -#define SIG_BLOCK 0 -#define SIG_UNBLOCK 1 -#define SIG_SETMASK 2 - -#define SIG_HOLD ((void (*)(int)) 2) - #endif -#ifdef _GNU_SOURCE -#define NSIG 64 -#endif - -#define SIG_ERR ((void (*)(int))-1) -#define SIG_DFL ((void (*)(int)) 0) -#define SIG_IGN ((void (*)(int)) 1) - #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 +#define SIGIOT SIGABRT #define SIGBUS 7 #define SIGFPE 8 #define SIGKILL 9 @@ -145,3 +114,6 @@ struct __siginfo #define SIGPWR 30 #define SIGSYS 31 #define SIGUNUSED SIGSYS + +#define _NSIG 65 +