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 6144
6#define SIGSTKSZ 12288
7#endif
8
9#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
10typedef unsigned long greg_t;
11typedef unsigned long gregset_t[34];
12
13typedef struct {
14	long double vregs[32];
15	unsigned int fpsr;
16	unsigned int fpcr;
17} fpregset_t;
18typedef struct sigcontext {
19	unsigned long fault_address;
20	unsigned long regs[31];
21	unsigned long sp, pc, pstate;
22	long double __reserved[256];
23} mcontext_t;
24
25#define FPSIMD_MAGIC 0x46508001
26#define ESR_MAGIC 0x45535201
27struct _aarch64_ctx {
28	unsigned int magic;
29	unsigned int size;
30};
31struct fpsimd_context {
32	struct _aarch64_ctx head;
33	unsigned int fpsr;
34	unsigned int fpcr;
35	long double vregs[32];
36};
37struct esr_context {
38	struct _aarch64_ctx head;
39	unsigned long esr;
40};
41#else
42typedef struct {
43	long double __regs[18+256];
44} mcontext_t;
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  1
62#define SA_NOCLDWAIT  2
63#define SA_SIGINFO    4
64#define SA_ONSTACK    0x08000000
65#define SA_RESTART    0x10000000
66#define SA_NODEFER    0x40000000
67#define SA_RESETHAND  0x80000000
68#define SA_RESTORER   0x04000000
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   29
103#define SIGPWR    30
104#define SIGSYS    31
105#define SIGUNUSED SIGSYS
106
107#define _NSIG 65
108