aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/riscv64/config.h2
-rw-r--r--arch/riscv64/kernel/pmem.c2
-rw-r--r--include/arch/arch.h6
-rw-r--r--include/arch/cpu.h6
-rw-r--r--include/arch/irq.h6
-rw-r--r--include/arch/lock.h6
-rw-r--r--include/arch/pmem.h6
-rw-r--r--include/arch/proc.h6
-rw-r--r--include/arch/tcb.h6
-rw-r--r--include/arch/timer.h6
-rw-r--r--include/arch/types.h6
-rw-r--r--include/arch/vmem.h6
-rw-r--r--include/kmi/syscalls.h6
13 files changed, 46 insertions, 24 deletions
diff --git a/arch/riscv64/config.h b/arch/riscv64/config.h
index 765aa6b..aefcc8f 100644
--- a/arch/riscv64/config.h
+++ b/arch/riscv64/config.h
@@ -45,7 +45,7 @@
/** Top of virtual memory stack. */
#define VM_STACK_TOP (VM_STACK_BASE + VM_STACK_SIZE)
-#if defined(riscv64)
+#if __riscv_xlen == 64
/* 64bit */
/** Direct map offset. */
diff --git a/arch/riscv64/kernel/pmem.c b/arch/riscv64/kernel/pmem.c
index 945cb38..56769c6 100644
--- a/arch/riscv64/kernel/pmem.c
+++ b/arch/riscv64/kernel/pmem.c
@@ -16,7 +16,7 @@ stat_t stat_pmem_conf(void *fdt, size_t *max_order, size_t *base_bits,
size_t nbits = 9;
-#if defined(riscv64)
+#if __riscv_xlen == 64
*max_order = 2;
nbits = 9;
#else
diff --git a/include/arch/arch.h b/include/arch/arch.h
index c1d7936..4a6ddd0 100644
--- a/include/arch/arch.h
+++ b/include/arch/arch.h
@@ -12,10 +12,12 @@
#include <kmi/types.h>
-#if defined(riscv64)
+#if defined(riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/arch.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/arch.h"
+# endif
#endif
/**
diff --git a/include/arch/cpu.h b/include/arch/cpu.h
index 1fd146e..1590644 100644
--- a/include/arch/cpu.h
+++ b/include/arch/cpu.h
@@ -13,10 +13,12 @@
#include <kmi/types.h>
#include <kmi/tcb.h>
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/cpu.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/cpu.h"
+# endif
#endif
/**
diff --git a/include/arch/irq.h b/include/arch/irq.h
index 85a7360..85e6af8 100644
--- a/include/arch/irq.h
+++ b/include/arch/irq.h
@@ -15,10 +15,12 @@ typedef uint_fast32_t irq_t;
* \todo These should probably also be stat_t...
*/
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/irq.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/irq.h"
+# endif
#endif
/**
diff --git a/include/arch/lock.h b/include/arch/lock.h
index ea19585..ca8e5db 100644
--- a/include/arch/lock.h
+++ b/include/arch/lock.h
@@ -9,10 +9,12 @@
* Arch-specific lock stuff.
*/
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/lock.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/lock.h"
+# endif
#endif
#endif /* KMI_ARCH_LOCK_H */
diff --git a/include/arch/pmem.h b/include/arch/pmem.h
index 03a8172..6a17449 100644
--- a/include/arch/pmem.h
+++ b/include/arch/pmem.h
@@ -13,10 +13,12 @@
#include <kmi/mem.h> /* NUM_ORDERS */
#include <kmi/types.h>
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/pmem.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/pmem.h"
+# endif
#endif
/**
diff --git a/include/arch/proc.h b/include/arch/proc.h
index 61a30c4..e2fae03 100644
--- a/include/arch/proc.h
+++ b/include/arch/proc.h
@@ -9,10 +9,12 @@
* Arch-specific process related stuff.
*/
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/proc.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/proc.h"
+# endif
#endif
#include <kmi/uapi.h>
diff --git a/include/arch/tcb.h b/include/arch/tcb.h
index 22d3b59..931b800 100644
--- a/include/arch/tcb.h
+++ b/include/arch/tcb.h
@@ -9,10 +9,12 @@
* Arch-specific tcb stuff.
*/
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/tcb.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/tcb.h"
+# endif
#endif
/**
diff --git a/include/arch/timer.h b/include/arch/timer.h
index 1eab69a..8b832c9 100644
--- a/include/arch/timer.h
+++ b/include/arch/timer.h
@@ -12,10 +12,12 @@
#include <kmi/timer.h>
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/timer.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/timer.h"
+# endif
#endif
/**
diff --git a/include/arch/types.h b/include/arch/types.h
index 7b1f07f..221c2e5 100644
--- a/include/arch/types.h
+++ b/include/arch/types.h
@@ -14,10 +14,12 @@
* \todo Fix incorrect include file reference in doxygen.
*/
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/types.h"
-#elif defined(riscv32)
+# elif
#include "../../arch/riscv32/include/types.h"
+# endif
#endif
#endif /* KMI_ARCH_TYPES_H */
diff --git a/include/arch/vmem.h b/include/arch/vmem.h
index 6e761b6..3daf232 100644
--- a/include/arch/vmem.h
+++ b/include/arch/vmem.h
@@ -10,10 +10,12 @@
* arch/whatever/kernel/vmem.c
*/
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/vmem.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/vmem.h"
+# endif
#endif
#include <kmi/types.h>
diff --git a/include/kmi/syscalls.h b/include/kmi/syscalls.h
index 42cbcc0..0801f50 100644
--- a/include/kmi/syscalls.h
+++ b/include/kmi/syscalls.h
@@ -10,10 +10,12 @@
*/
/* pass VM_X etc. to userspace */
-#if defined(riscv64)
+#if defined(__riscv)
+# if __riscv_xlen == 64
#include "../../arch/riscv64/include/uapi.h"
-#elif defined(riscv32)
+# else
#include "../../arch/riscv32/include/uapi.h"
+# endif
#endif
/** enum for now, possibly macros in the future once I get an approximate idea of