8typedef struct _platform_regs
23#define read_csr(reg) statement_expr(reg_t, { asm volatile("csrr %0, " #reg : "=r"(retval)); })
24#define write_csr(reg, val) __asm__ volatile("csrw " #reg ", %0" ::"r"(val))
26#define make_satp(mode, asid, ppn) ((u64) (mode) << 60 | ((u64) (asid) << 44) | (ppn))
28#define SATP_MODE_SV39 8
29#define SATP_MODE_SV48 9
30#define SATP_MODE_SV57 10
32#define SSTATUS_SIE BIT(1)
33#define SSTATUS_SPIE BIT(5)
34#define SSTATUS_SPP BIT(8)
35#define SSTATUS_SUM BIT(18)
37#define SSTATUS_FS_OFF 0
38#define SSTATUS_FS_INITIAL BIT(13)
39#define SSTATUS_FS_CLEAN BIT(14)
40#define SSTATUS_FS_DIRTY (BIT(13) | BIT(14))
42#define SIE_SEIE BIT(9)
43#define SIE_STIE BIT(5)
44#define SIE_SSIE BIT(1)
#define MOS_STATIC_ASSERT
const char __riscv64_usermode_trap_entry[]
void riscv64_trap_exit(platform_regs_t *regs)
const char __riscv64_trap_entry[]