19#ifndef ZEPHYR_INCLUDE_ARCH_RISCV_THREAD_H_ 
   20#define ZEPHYR_INCLUDE_ARCH_RISCV_THREAD_H_ 
   35#if !defined(CONFIG_RISCV_ISA_RV32E) 
   48typedef struct _callee_saved _callee_saved_t;
 
   50#if !defined(RV_FP_TYPE) 
   51#ifdef CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION 
   52#define RV_FP_TYPE uint64_t 
   54#define RV_FP_TYPE uint32_t 
   58struct z_riscv_fp_context {
 
   59        RV_FP_TYPE fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7;
 
   60        RV_FP_TYPE ft0, ft1, ft2, ft3, ft4, ft5, ft6, ft7, ft8, ft9, ft10, ft11;
 
   61        RV_FP_TYPE fs0, fs1, fs2, fs3, fs4, fs5, fs6, fs7, fs8, fs9, fs10, fs11;
 
   64typedef struct z_riscv_fp_context z_riscv_fp_context_t;
 
   66#define PMP_M_MODE_SLOTS 8       
   69#ifdef CONFIG_FPU_SHARING 
   70        struct z_riscv_fp_context saved_fp_context;
 
   71        bool fpu_recently_used;
 
   74#ifdef CONFIG_USERSPACE 
   75        unsigned long priv_stack_start;
 
   76        unsigned long u_mode_pmpaddr_regs[CONFIG_PMP_SLOTS];
 
   77        unsigned long u_mode_pmpcfg_regs[CONFIG_PMP_SLOTS / 
sizeof(
unsigned long)];
 
   78        unsigned int u_mode_pmp_domain_offset;
 
   79        unsigned int u_mode_pmp_end_index;
 
   80        unsigned int u_mode_pmp_update_nr;
 
   82#ifdef CONFIG_PMP_STACK_GUARD 
   83        unsigned int m_mode_pmp_end_index;
 
   89typedef struct _thread_arch _thread_arch_t;
 
#define RV_FP_TYPE
Definition: thread.h:54
 
#define PMP_M_MODE_SLOTS
Definition: thread.h:66
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88