reintroduce riscv64 struct sigcontext
[musl] / arch / riscv64 / 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 typedef unsigned long __riscv_mc_gp_state[32];
10
11 struct __riscv_mc_f_ext_state {
12         unsigned int __f[32];
13         unsigned int __fcsr;
14 };
15
16 struct __riscv_mc_d_ext_state {
17         unsigned long long __f[32];
18         unsigned int __fcsr;
19 };
20
21 struct __riscv_mc_q_ext_state {
22         unsigned long long __f[64] __attribute__((aligned(16)));
23         unsigned int __fcsr;
24         unsigned int __reserved[3];
25 };
26
27 union __riscv_mc_fp_state {
28         struct __riscv_mc_f_ext_state __f;
29         struct __riscv_mc_d_ext_state __d;
30         struct __riscv_mc_q_ext_state __q;
31 };
32
33 typedef struct mcontext_t {
34         __riscv_mc_gp_state __gregs;
35         union __riscv_mc_fp_state __fpregs;
36 } mcontext_t;
37
38 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
39 typedef unsigned long greg_t;
40 typedef unsigned long gregset_t[32];
41 typedef union __riscv_mc_fp_state fpregset_t;
42 struct sigcontext {
43         gregset_t gregs;
44         fpregset_t fpregs;
45 };
46 #endif
47
48 struct sigaltstack {
49         void *ss_sp;
50         int ss_flags;
51         size_t ss_size;
52 };
53
54 typedef struct ucontext_t
55 {
56         unsigned long uc_flags;
57         struct ucontext_t *uc_link;
58         stack_t uc_stack;
59         sigset_t uc_sigmask;
60         mcontext_t uc_mcontext;
61 } ucontext_t;
62
63 #define SA_NOCLDSTOP 1
64 #define SA_NOCLDWAIT 2
65 #define SA_SIGINFO   4
66 #define SA_ONSTACK   0x08000000
67 #define SA_RESTART   0x10000000
68 #define SA_NODEFER   0x40000000
69 #define SA_RESETHAND 0x80000000
70 #define SA_RESTORER  0x04000000
71
72 #endif
73
74 #define SIGHUP     1
75 #define SIGINT     2
76 #define SIGQUIT    3
77 #define SIGILL     4
78 #define SIGTRAP    5
79 #define SIGABRT    6
80 #define SIGIOT     SIGABRT
81 #define SIGBUS     7
82 #define SIGFPE     8
83 #define SIGKILL    9
84 #define SIGUSR1   10
85 #define SIGSEGV   11
86 #define SIGUSR2   12
87 #define SIGPIPE   13
88 #define SIGALRM   14
89 #define SIGTERM   15
90 #define SIGSTKFLT 16
91 #define SIGCHLD   17
92 #define SIGCONT   18
93 #define SIGSTOP   19
94 #define SIGTSTP   20
95 #define SIGTTIN   21
96 #define SIGTTOU   22
97 #define SIGURG    23
98 #define SIGXCPU   24
99 #define SIGXFSZ   25
100 #define SIGVTALRM 26
101 #define SIGPROF   27
102 #define SIGWINCH  28
103 #define SIGIO     29
104 #define SIGPOLL   SIGIO
105 #define SIGPWR    30
106 #define SIGSYS    31
107 #define SIGUNUSED SIGSYS
108
109 #define _NSIG     65