merge a few fixes by sh4rm4
[musl] / arch / x86_64 / bits / signal.h
1 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
2  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
3
4 #ifdef _GNU_SOURCE
5 #define REG_R8          0
6 #define REG_R9          1
7 #define REG_R10         2
8 #define REG_R11         3
9 #define REG_R12         4
10 #define REG_R13         5
11 #define REG_R14         6
12 #define REG_R15         7
13 #define REG_RDI         8
14 #define REG_RSI         9
15 #define REG_RBP         10
16 #define REG_RBX         11
17 #define REG_RDX         12
18 #define REG_RAX         13
19 #define REG_RCX         14
20 #define REG_RSP         15
21 #define REG_RIP         16
22 #define REG_EFL         17
23 #define REG_CSGSFS      18
24 #define REG_ERR         19
25 #define REG_TRAPNO      20
26 #define REG_OLDMASK     21
27 #define REG_CR2         22
28 #endif
29
30 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
31 typedef long long greg_t, gregset_t[23];
32 typedef struct _fpstate {
33         unsigned short cwd, swd, ftw, fop;
34         unsigned long long rip, rdp;
35         unsigned mxcsr, mxcr_mask;
36         struct {
37                 unsigned short significand[4], exponent, padding[3];
38         } _st[8];
39         struct {
40                 unsigned element[4];
41         } _xmm[16];
42         unsigned padding[24];
43 } *fpregset_t;
44 struct sigcontext {
45         unsigned long r8, r9, r10, r11, r12, r13, r14, r15;
46         unsigned long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags;
47         unsigned short cs, gs, fs, __pad0;
48         unsigned long err, trapno, oldmask, cr2;
49         struct _fpstate *fpstate;
50         unsigned long __reserved1[8];
51 };
52 typedef struct {
53         gregset_t gregs;
54         fpregset_t fpregs;
55         unsigned long long __reserved1[8];
56 } mcontext_t;
57 #else
58 typedef struct {
59         unsigned long __space[32];
60 } mcontext_t;
61 #endif
62
63 typedef struct __ucontext {
64         unsigned long uc_flags;
65         struct __ucontext *uc_link;
66         stack_t uc_stack;
67         mcontext_t uc_mcontext;
68         sigset_t uc_sigmask;
69         unsigned long __fpregs_mem[64];
70 } ucontext_t;
71
72 #define SA_NOCLDSTOP  1
73 #define SA_NOCLDWAIT  2
74 #define SA_SIGINFO    4
75 #define SA_ONSTACK    0x08000000
76 #define SA_RESTART    0x10000000
77 #define SA_NODEFER    0x40000000
78 #define SA_RESETHAND  0x80000000
79 #define SA_RESTORER   0x04000000
80
81 #endif
82
83 #define SIGHUP    1
84 #define SIGINT    2
85 #define SIGQUIT   3
86 #define SIGILL    4
87 #define SIGTRAP   5
88 #define SIGABRT   6
89 #define SIGBUS    7
90 #define SIGFPE    8
91 #define SIGKILL   9
92 #define SIGUSR1   10
93 #define SIGSEGV   11
94 #define SIGUSR2   12
95 #define SIGPIPE   13
96 #define SIGALRM   14
97 #define SIGTERM   15
98 #define SIGSTKFLT 16
99 #define SIGCHLD   17
100 #define SIGCONT   18
101 #define SIGSTOP   19
102 #define SIGTSTP   20
103 #define SIGTTIN   21
104 #define SIGTTOU   22
105 #define SIGURG    23
106 #define SIGXCPU   24
107 #define SIGXFSZ   25
108 #define SIGVTALRM 26
109 #define SIGPROF   27
110 #define SIGWINCH  28
111 #define SIGIO     29
112 #define SIGPOLL   29
113 #define SIGPWR    30
114 #define SIGSYS    31
115 #define SIGUNUSED SIGSYS
116
117 #define _NSIG 65
118