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