add deprecated SIGIOT alias for SIGABRT
[musl] / arch / x86_64 / bits / signal.h
index 02c54d5..d5f01ce 100644 (file)
@@ -1,53 +1,73 @@
-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 {
-                       timer_t 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;
+#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)
+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
 
-#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
+typedef struct __ucontext {
+       unsigned long uc_flags;
+       struct __ucontext *uc_link;
+       stack_t uc_stack;
+       mcontext_t uc_mcontext;
+       sigset_t uc_sigmask;
+       unsigned long __fpregs_mem[64];
+} ucontext_t;
 
 #define SA_NOCLDSTOP  1
 #define SA_NOCLDWAIT  2
@@ -58,19 +78,7 @@ 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_ERR  ((void (*)(int))-1)
-#define SIG_DFL  ((void (*)(int)) 0)
-#define SIG_IGN  ((void (*)(int)) 1)
-#define SIG_HOLD ((void (*)(int)) 2)
-
-#define NSIG      64
+#endif
 
 #define SIGHUP    1
 #define SIGINT    2
@@ -78,6 +86,7 @@ struct __siginfo
 #define SIGILL    4
 #define SIGTRAP   5
 #define SIGABRT   6
+#define SIGIOT    SIGABRT
 #define SIGBUS    7
 #define SIGFPE    8
 #define SIGKILL   9
@@ -105,3 +114,6 @@ struct __siginfo
 #define SIGPWR    30
 #define SIGSYS    31
 #define SIGUNUSED SIGSYS
+
+#define _NSIG 65
+