diff options
-rw-r--r-- | arch/riscv64/bits/signal.h | 45 | ||||
-rw-r--r-- | arch/riscv64/pthread_arch.h | 2 |
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] |