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 4096
6#define SIGSTKSZ    10240
7#endif
8
9#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
10
11typedef unsigned long greg_t, gregset_t[48];
12
13typedef struct {
14	double fpregs[32];
15	double fpscr;
16} fpregset_t;
17
18typedef struct {
19	unsigned __int128 vrregs[32];
20	unsigned _pad[3];
21	unsigned vrsave;
22	unsigned vscr;
23	unsigned _pad2[3];
24} vrregset_t;
25
26typedef struct sigcontext {
27	unsigned long _unused[4];
28	int signal;
29	int _pad0;
30	unsigned long handler;
31	unsigned long oldmask;
32	void *regs;
33	gregset_t gp_regs;
34	fpregset_t fp_regs;
35	vrregset_t *v_regs;
36	long vmx_reserve[34+34+32+1];
37} mcontext_t;
38
39#else
40
41typedef struct {
42	long __regs[4+4+48+33+1+34+34+32+1];
43} mcontext_t;
44
45#endif
46
47struct sigaltstack {
48	void *ss_sp;
49	int ss_flags;
50	size_t ss_size;
51};
52
53typedef struct __ucontext {
54	unsigned long uc_flags;
55	struct __ucontext *uc_link;
56	stack_t uc_stack;
57	sigset_t uc_sigmask;
58	mcontext_t uc_mcontext;
59} ucontext_t;
60
61#define SA_NOCLDSTOP  1U
62#define SA_NOCLDWAIT  2U
63#define SA_SIGINFO    4U
64#define SA_ONSTACK    0x08000000U
65#define SA_RESTART    0x10000000U
66#define SA_NODEFER    0x40000000U
67#define SA_RESETHAND  0x80000000U
68#define SA_RESTORER   0x04000000U
69
70#endif
71
72#define SIGHUP    1
73#define SIGINT    2
74#define SIGQUIT   3
75#define SIGILL    4
76#define SIGTRAP   5
77#define SIGABRT   6
78#define SIGIOT    SIGABRT
79#define SIGBUS    7
80#define SIGFPE    8
81#define SIGKILL   9
82#define SIGUSR1   10
83#define SIGSEGV   11
84#define SIGUSR2   12
85#define SIGPIPE   13
86#define SIGALRM   14
87#define SIGTERM   15
88#define SIGSTKFLT 16
89#define SIGCHLD   17
90#define SIGCONT   18
91#define SIGSTOP   19
92#define SIGTSTP   20
93#define SIGTTIN   21
94#define SIGTTOU   22
95#define SIGURG    23
96#define SIGXCPU   24
97#define SIGXFSZ   25
98#define SIGVTALRM 26
99#define SIGPROF   27
100#define SIGWINCH  28
101#define SIGIO     29
102#define SIGPOLL   SIGIO
103#define SIGPWR    30
104#define SIGSYS    31
105#define SIGUNUSED SIGSYS
106
107#define _NSIG 65
108