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
10#define REG_GS          0
11#define REG_FS          1
12#define REG_ES          2
13#define REG_DS          3
14#define REG_EDI         4
15#define REG_ESI         5
16#define REG_EBP         6
17#define REG_ESP         7
18#define REG_EBX         8
19#define REG_EDX         9
20#define REG_ECX         10
21#define REG_EAX         11
22#define REG_TRAPNO      12
23#define REG_ERR         13
24#define REG_EIP         14
25#define REG_CS          15
26#define REG_EFL         16
27#define REG_UESP        17
28#define REG_SS          18
29#endif
30
31#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
32typedef int greg_t, gregset_t[19];
33typedef struct _fpstate {
34	unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel;
35	struct {
36		unsigned short significand[4], exponent;
37	} _st[8];
38	unsigned long status;
39} *fpregset_t;
40struct sigcontext {
41	unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh;
42	unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax;
43	unsigned long trapno, err, eip;
44	unsigned short cs, __csh;
45	unsigned long eflags, esp_at_signal;
46	unsigned short ss, __ssh;
47	struct _fpstate *fpstate;
48	unsigned long oldmask, cr2;
49};
50typedef struct {
51	gregset_t gregs;
52	fpregset_t fpregs;
53	unsigned long oldmask, cr2;
54} mcontext_t;
55#else
56typedef struct {
57	unsigned __space[22];
58} mcontext_t;
59#endif
60
61struct sigaltstack {
62	void *ss_sp;
63	int ss_flags;
64	size_t ss_size;
65};
66
67typedef struct __ucontext {
68	unsigned long uc_flags;
69	struct __ucontext *uc_link;
70	stack_t uc_stack;
71	mcontext_t uc_mcontext;
72	sigset_t uc_sigmask;
73	unsigned long __fpregs_mem[28];
74} ucontext_t;
75
76#define SA_NOCLDSTOP  1
77#define SA_NOCLDWAIT  2
78#define SA_SIGINFO    4
79#define SA_ONSTACK    0x08000000
80#define SA_RESTART    0x10000000
81#define SA_NODEFER    0x40000000
82#define SA_RESETHAND  0x80000000
83#define SA_RESTORER   0x04000000
84
85#endif
86
87#define SIGHUP    1
88#define SIGINT    2
89#define SIGQUIT   3
90#define SIGILL    4
91#define SIGTRAP   5
92#define SIGABRT   6
93#define SIGIOT    SIGABRT
94#define SIGBUS    7
95#define SIGFPE    8
96#define SIGKILL   9
97#define SIGUSR1   10
98#define SIGSEGV   11
99#define SIGUSR2   12
100#define SIGPIPE   13
101#define SIGALRM   14
102#define SIGTERM   15
103#define SIGSTKFLT 16
104#define SIGCHLD   17
105#define SIGCONT   18
106#define SIGSTOP   19
107#define SIGTSTP   20
108#define SIGTTIN   21
109#define SIGTTOU   22
110#define SIGURG    23
111#define SIGXCPU   24
112#define SIGXFSZ   25
113#define SIGVTALRM 26
114#define SIGPROF   27
115#define SIGWINCH  28
116#define SIGIO     29
117#define SIGPOLL   29
118#define SIGPWR    30
119#define SIGSYS    31
120#define SIGUNUSED SIGSYS
121
122#define _NSIG 65
123
124