fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate
[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(_GNU_SOURCE) || defined(_BSD_SOURCE)
5 typedef int greg_t, gregset_t[19];
6 typedef struct _fpstate {
7         unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel;
8         struct {
9                 unsigned short significand[4], exponent;
10         } _st[8];
11         unsigned long status;
12 } *fpregset_t;
13 struct sigcontext {
14         unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh;
15         unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax;
16         unsigned long trapno, err, eip;
17         unsigned short cs, __csh;
18         unsigned long eflags, esp_at_signal;
19         unsigned short ss, __ssh;
20         struct _fpstate *fpstate;
21         unsigned long oldmask, cr2;
22 };
23 typedef struct {
24         gregset_t gregs;
25         fpregset_t fpregs;
26         unsigned long oldmask, cr2;
27 } mcontext_t;
28 #else
29 typedef struct {
30         unsigned __space[22];
31 } mcontext_t;
32 #endif
33
34 typedef struct __ucontext {
35         unsigned long uc_flags;
36         struct __ucontext *uc_link;
37         stack_t uc_stack;
38         mcontext_t uc_mcontext;
39         sigset_t uc_sigmask;
40         unsigned long __fpregs_mem[28];
41 } ucontext_t;
42
43 #define SA_NOCLDSTOP  1
44 #define SA_NOCLDWAIT  2
45 #define SA_SIGINFO    4
46 #define SA_ONSTACK    0x08000000
47 #define SA_RESTART    0x10000000
48 #define SA_NODEFER    0x40000000
49 #define SA_RESETHAND  0x80000000
50 #define SA_RESTORER   0x04000000
51
52 #endif
53
54 #define SIGHUP    1
55 #define SIGINT    2
56 #define SIGQUIT   3
57 #define SIGILL    4
58 #define SIGTRAP   5
59 #define SIGABRT   6
60 #define SIGBUS    7
61 #define SIGFPE    8
62 #define SIGKILL   9
63 #define SIGUSR1   10
64 #define SIGSEGV   11
65 #define SIGUSR2   12
66 #define SIGPIPE   13
67 #define SIGALRM   14
68 #define SIGTERM   15
69 #define SIGSTKFLT 16
70 #define SIGCHLD   17
71 #define SIGCONT   18
72 #define SIGSTOP   19
73 #define SIGTSTP   20
74 #define SIGTTIN   21
75 #define SIGTTOU   22
76 #define SIGURG    23
77 #define SIGXCPU   24
78 #define SIGXFSZ   25
79 #define SIGVTALRM 26
80 #define SIGPROF   27
81 #define SIGWINCH  28
82 #define SIGIO     29
83 #define SIGPOLL   29
84 #define SIGPWR    30
85 #define SIGSYS    31
86 #define SIGUNUSED SIGSYS
87
88 #define _NSIG 65