aboutsummaryrefslogtreecommitdiff
path: root/machine/mtrap.h
diff options
context:
space:
mode:
Diffstat (limited to 'machine/mtrap.h')
-rw-r--r--machine/mtrap.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/machine/mtrap.h b/machine/mtrap.h
index 1f692b3..6f38cf6 100644
--- a/machine/mtrap.h
+++ b/machine/mtrap.h
@@ -36,10 +36,10 @@ extern volatile uint32_t* plic_priorities;
extern size_t plic_ndevs;
typedef struct {
- uint64_t* timecmp;
uint32_t* ipi;
volatile int mipi_pending;
- volatile int sipi_pending;
+
+ uint64_t* timecmp;
volatile uint32_t* plic_m_thresh;
volatile uintptr_t* plic_m_ie;
@@ -47,10 +47,6 @@ typedef struct {
volatile uintptr_t* plic_s_ie;
} hls_t;
-#define IPI_SOFT 0x1
-#define IPI_FENCE_I 0x2
-#define IPI_SFENCE_VM 0x4
-
#define MACHINE_STACK_TOP() ({ \
register uintptr_t sp asm ("sp"); \
(void*)((sp + RISCV_PGSIZE) & -RISCV_PGSIZE); })
@@ -79,9 +75,15 @@ static inline void wfi()
#endif // !__ASSEMBLER__
+#define IPI_SOFT 0x1
+#define IPI_FENCE_I 0x2
+#define IPI_SFENCE_VM 0x4
+
#define MACHINE_STACK_SIZE RISCV_PGSIZE
-#define MENTRY_FRAME_SIZE (INTEGER_CONTEXT_SIZE + SOFT_FLOAT_CONTEXT_SIZE \
- + HLS_SIZE)
+#define MENTRY_HLS_OFFSET (INTEGER_CONTEXT_SIZE + SOFT_FLOAT_CONTEXT_SIZE)
+#define MENTRY_FRAME_SIZE (MENTRY_HLS_OFFSET + HLS_SIZE)
+#define MENTRY_IPI_OFFSET (MENTRY_HLS_OFFSET)
+#define MENTRY_IPI_PENDING_OFFSET (MENTRY_HLS_OFFSET + REGBYTES)
#ifdef __riscv_flen
# define SOFT_FLOAT_CONTEXT_SIZE 0