diff options
Diffstat (limited to 'arch/riscv64/bits')
-rw-r--r-- | arch/riscv64/bits/signal.h | 45 |
1 files changed, 19 insertions, 26 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; |