]> git.proxmox.com Git - wasi-libc.git/blob - libc-top-half/musl/arch/i386/bits/signal.h
WASI libc prototype implementation.
[wasi-libc.git] / libc-top-half / musl / arch / i386 / bits / signal.h
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 enum { REG_GS = 0 };
11 #define REG_GS REG_GS
12 enum { REG_FS = 1 };
13 #define REG_FS REG_FS
14 enum { REG_ES = 2 };
15 #define REG_ES REG_ES
16 enum { REG_DS = 3 };
17 #define REG_DS REG_DS
18 enum { REG_EDI = 4 };
19 #define REG_EDI REG_EDI
20 enum { REG_ESI = 5 };
21 #define REG_ESI REG_ESI
22 enum { REG_EBP = 6 };
23 #define REG_EBP REG_EBP
24 enum { REG_ESP = 7 };
25 #define REG_ESP REG_ESP
26 enum { REG_EBX = 8 };
27 #define REG_EBX REG_EBX
28 enum { REG_EDX = 9 };
29 #define REG_EDX REG_EDX
30 enum { REG_ECX = 10 };
31 #define REG_ECX REG_ECX
32 enum { REG_EAX = 11 };
33 #define REG_EAX REG_EAX
34 enum { REG_TRAPNO = 12 };
35 #define REG_TRAPNO REG_TRAPNO
36 enum { REG_ERR = 13 };
37 #define REG_ERR REG_ERR
38 enum { REG_EIP = 14 };
39 #define REG_EIP REG_EIP
40 enum { REG_CS = 15 };
41 #define REG_CS REG_CS
42 enum { REG_EFL = 16 };
43 #define REG_EFL REG_EFL
44 enum { REG_UESP = 17 };
45 #define REG_UESP REG_UESP
46 enum { REG_SS = 18 };
47 #define REG_SS REG_SS
48 #endif
49
50 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
51 typedef int greg_t, gregset_t[19];
52 typedef 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;
59 struct 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 };
69 typedef struct {
70 gregset_t gregs;
71 fpregset_t fpregs;
72 unsigned long oldmask, cr2;
73 } mcontext_t;
74 #else
75 typedef struct {
76 unsigned __space[22];
77 } mcontext_t;
78 #endif
79
80 struct sigaltstack {
81 void *ss_sp;
82 int ss_flags;
83 size_t ss_size;
84 };
85
86 typedef 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
142