about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--arch/riscv64/bits/signal.h45
-rw-r--r--arch/riscv64/pthread_arch.h2
2 files changed, 20 insertions, 27 deletions
diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h
index 76d7ad80..03fe48c1 100644
--- a/arch/riscv64/bits/signal.h
+++ b/arch/riscv64/bits/signal.h
@@ -6,47 +6,40 @@
 # 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 union __riscv_mc_fp_state fpregset_t;
+#endif
+
+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 sigcontext {
-	gregset_t gregs;
-	fpregset_t fpregs;
-} mcontext_t;
-
-#else
-typedef struct {
-	unsigned long gregs[32];
-	unsigned long long fpregs[66];
+typedef struct mcontext_t {
+	__riscv_mc_gp_state __gregs;
+	union __riscv_mc_fp_state __fpregs;
 } mcontext_t;
-#endif
 
 struct sigaltstack {
 	void *ss_sp;
@@ -54,10 +47,10 @@ struct sigaltstack {
 	size_t ss_size;
 };
 
-typedef struct __ucontext
+typedef struct ucontext_t
 {
 	unsigned long uc_flags;
-	struct __ucontext *uc_link;
+	struct ucontext_t *uc_link;
 	stack_t uc_stack;
 	sigset_t uc_sigmask;
 	mcontext_t uc_mcontext;
diff --git a/arch/riscv64/pthread_arch.h b/arch/riscv64/pthread_arch.h
index 1268b72d..db414b17 100644
--- a/arch/riscv64/pthread_arch.h
+++ b/arch/riscv64/pthread_arch.h
@@ -11,4 +11,4 @@ static inline struct pthread *__pthread_self()
 
 #define DTP_OFFSET 0x800
 
-#define MC_PC gregs[0]
+#define MC_PC __gregs[0]