910e4ecb9f1fa66b334bc5c650cf53e9f77d7d31
[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 typedef struct sigaltstack {
73         void *ss_sp;
74         int ss_flags;
75         size_t ss_size;
76 } stack_t;
77
78 #define SA_NOCLDSTOP  1
79 #define SA_NOCLDWAIT  2
80 #define SA_SIGINFO    4
81 #define SA_ONSTACK    0x08000000
82 #define SA_RESTART    0x10000000
83 #define SA_NODEFER    0x40000000
84 #define SA_RESETHAND  0x80000000
85 #define SA_RESTORER   0x04000000
86
87 #endif
88
89 #define SIGHUP    1
90 #define SIGINT    2
91 #define SIGQUIT   3
92 #define SIGILL    4
93 #define SIGTRAP   5
94 #define SIGABRT   6
95 #define SIGIOT    SIGABRT
96 #define SIGBUS    7
97 #define SIGFPE    8
98 #define SIGKILL   9
99 #define SIGUSR1   10
100 #define SIGSEGV   11
101 #define SIGUSR2   12
102 #define SIGPIPE   13
103 #define SIGALRM   14
104 #define SIGTERM   15
105 #define SIGSTKFLT 16
106 #define SIGCHLD   17
107 #define SIGCONT   18
108 #define SIGSTOP   19
109 #define SIGTSTP   20
110 #define SIGTTIN   21
111 #define SIGTTOU   22
112 #define SIGURG    23
113 #define SIGXCPU   24
114 #define SIGXFSZ   25
115 #define SIGVTALRM 26
116 #define SIGPROF   27
117 #define SIGWINCH  28
118 #define SIGIO     29
119 #define SIGPOLL   29
120 #define SIGPWR    30
121 #define SIGSYS    31
122 #define SIGUNUSED SIGSYS
123
124 #define _NSIG 65
125