summaryrefslogtreecommitdiff
path: root/v
diff options
context:
space:
mode:
Diffstat (limited to 'v')
-rw-r--r--v/entry.S2
-rw-r--r--v/riscv_test.h6
-rw-r--r--v/vm.c4
3 files changed, 4 insertions, 8 deletions
diff --git a/v/entry.S b/v/entry.S
index ae4e57c..8234fc3 100644
--- a/v/entry.S
+++ b/v/entry.S
@@ -1,6 +1,6 @@
#include "riscv_test.h"
-#ifdef __riscv64
+#if __riscv_xlen == 64
# define STORE sd
# define LOAD ld
# define REGBYTES 8
diff --git a/v/riscv_test.h b/v/riscv_test.h
index 0dd3a1f..8ca9ffd 100644
--- a/v/riscv_test.h
+++ b/v/riscv_test.h
@@ -46,11 +46,7 @@ userstart: \
#define PGSHIFT 12
#define PGSIZE (1UL << PGSHIFT)
-#ifdef __riscv64
-# define SIZEOF_TRAPFRAME_T 288
-#else
-# define SIZEOF_TRAPFRAME_T 144
-#endif
+#define SIZEOF_TRAPFRAME_T ((__riscv_xlen / 8) * 36)
#ifndef __ASSEMBLER__
diff --git a/v/vm.c b/v/vm.c
index 2530785..1aa068a 100644
--- a/v/vm.c
+++ b/v/vm.c
@@ -62,7 +62,7 @@ void wtf()
#define l1pt pt[0]
#define user_l2pt pt[1]
#define kernel_l2pt pt[2]
-#ifdef __riscv64
+#if __riscv_xlen == 64
# define NPT 5
# define user_l3pt pt[3]
# define kernel_l3pt pt[4]
@@ -204,7 +204,7 @@ void vm_boot(uintptr_t test_addr)
l1pt[PTES_PER_PT-1] = ((pte_t)kernel_l2pt >> PGSHIFT << PTE_PPN_SHIFT) | PTE_V;
// map user to lowermost megapage
l1pt[0] = ((pte_t)user_l2pt >> PGSHIFT << PTE_PPN_SHIFT) | PTE_V;
-#ifdef __riscv64
+#if __riscv_xlen == 64
kernel_l2pt[PTES_PER_PT-1] = ((pte_t)kernel_l3pt >> PGSHIFT << PTE_PPN_SHIFT) | PTE_V;
user_l2pt[0] = ((pte_t)user_l3pt >> PGSHIFT << PTE_PPN_SHIFT) | PTE_V;
#endif