setjmp: optimize x86 longjmp epilogues
[musl] / arch / riscv64 / bits / signal.h
index 03fe48c..b006334 100644 (file)
@@ -6,12 +6,6 @@
 # define SIGSTKSZ 8192
 #endif
 
-#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;
-#endif
-
 typedef unsigned long __riscv_mc_gp_state[32];
 
 struct __riscv_mc_f_ext_state {
@@ -41,6 +35,25 @@ typedef struct mcontext_t {
        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_A0 10
+#endif
+
+#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;
+};
+#endif
+
 struct sigaltstack {
        void *ss_sp;
        int ss_flags;