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