summaryrefslogtreecommitdiff
path: root/arch/riscv64/bits/signal.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv64/bits/signal.h')
-rw-r--r--arch/riscv64/bits/signal.h57
1 files changed, 32 insertions, 25 deletions
diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h
index 76d7ad80..56f8fe17 100644
--- a/arch/riscv64/bits/signal.h
+++ b/arch/riscv64/bits/signal.h
@@ -6,46 +6,54 @@
# define SIGSTKSZ 8192
#endif
-/* gregs[0] holds the program counter. */
-
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef unsigned long greg_t;
-typedef unsigned long gregset_t[32];
+typedef unsigned long __riscv_mc_gp_state[32];
struct __riscv_mc_f_ext_state {
- unsigned int f[32];
- unsigned int fcsr;
+ unsigned int __f[32];
+ unsigned int __fcsr;
};
struct __riscv_mc_d_ext_state {
- unsigned long long f[32];
- unsigned int fcsr;
+ unsigned long long __f[32];
+ unsigned int __fcsr;
};
struct __riscv_mc_q_ext_state {
- unsigned long long f[64] __attribute__((aligned(16)));
- unsigned int fcsr;
- unsigned int reserved[3];
+ unsigned long long __f[64] __attribute__((__aligned__(16)));
+ unsigned int __fcsr;
+ unsigned int __reserved[3];
};
union __riscv_mc_fp_state {
- struct __riscv_mc_f_ext_state f;
- struct __riscv_mc_d_ext_state d;
- struct __riscv_mc_q_ext_state q;
+ struct __riscv_mc_f_ext_state __f;
+ struct __riscv_mc_d_ext_state __d;
+ struct __riscv_mc_q_ext_state __q;
};
-typedef union __riscv_mc_fp_state fpregset_t;
+typedef struct mcontext_t {
+ __riscv_mc_gp_state __gregs;
+ union __riscv_mc_fp_state __fpregs;
+} mcontext_t;
+
+#if defined(_GNU_SOURCE)
+#define REG_PC 0
+#define REG_RA 1
+#define REG_SP 2
+#define REG_TP 4
+#define REG_S0 8
+#define REG_S1 9
+#define REG_A0 10
+#define REG_S2 18
+#endif
-typedef struct sigcontext {
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+typedef unsigned long greg_t;
+typedef unsigned long gregset_t[32];
+typedef union __riscv_mc_fp_state fpregset_t;
+struct sigcontext {
gregset_t gregs;
fpregset_t fpregs;
-} mcontext_t;
-
-#else
-typedef struct {
- unsigned long gregs[32];
- unsigned long long fpregs[66];
-} mcontext_t;
+};
#endif
struct sigaltstack {
@@ -70,7 +78,6 @@ typedef struct __ucontext
#define SA_RESTART 0x10000000
#define SA_NODEFER 0x40000000
#define SA_RESETHAND 0x80000000
-#define SA_RESTORER 0x04000000
#endif