summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/sbi/sbi_hart.h8
-rw-r--r--include/sbi/sbi_trap.h18
2 files changed, 23 insertions, 3 deletions
diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h
index fb4a955a..4b83b84b 100644
--- a/include/sbi/sbi_hart.h
+++ b/include/sbi/sbi_hart.h
@@ -16,9 +16,11 @@ struct sbi_scratch;
int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot);
-void *sbi_hart_get_trap_info(struct sbi_scratch *scratch);
-
-void sbi_hart_set_trap_info(struct sbi_scratch *scratch, void *data);
+extern void (*sbi_hart_unpriv_trap)(void);
+static inline ulong sbi_hart_unpriv_trap_addr(void)
+{
+ return (ulong)sbi_hart_unpriv_trap;
+}
void sbi_hart_delegation_dump(struct sbi_scratch *scratch);
void sbi_hart_pmp_dump(struct sbi_scratch *scratch);
diff --git a/include/sbi/sbi_trap.h b/include/sbi/sbi_trap.h
index 9a35a6e5..b6918e0d 100644
--- a/include/sbi/sbi_trap.h
+++ b/include/sbi/sbi_trap.h
@@ -85,6 +85,19 @@
/** Last member index in sbi_trap_regs */
#define SBI_TRAP_REGS_last 35
+/** Index of epc member in sbi_trap_info */
+#define SBI_TRAP_INFO_epc 0
+/** Index of cause member in sbi_trap_info */
+#define SBI_TRAP_INFO_cause 1
+/** Index of tval member in sbi_trap_info */
+#define SBI_TRAP_INFO_tval 2
+/** Index of tval2 member in sbi_trap_info */
+#define SBI_TRAP_INFO_tval2 3
+/** Index of tinst member in sbi_trap_info */
+#define SBI_TRAP_INFO_tinst 4
+/** Last member index in sbi_trap_info */
+#define SBI_TRAP_INFO_last 5
+
/* clang-format on */
/** Get offset of member with name 'x' in sbi_trap_regs */
@@ -92,6 +105,11 @@
/** Size (in bytes) of sbi_trap_regs */
#define SBI_TRAP_REGS_SIZE SBI_TRAP_REGS_OFFSET(last)
+/** Get offset of member with name 'x' in sbi_trap_info */
+#define SBI_TRAP_INFO_OFFSET(x) ((SBI_TRAP_INFO_##x) * __SIZEOF_POINTER__)
+/** Size (in bytes) of sbi_trap_info */
+#define SBI_TRAP_INFO_SIZE SBI_TRAP_INFO_OFFSET(last)
+
#ifndef __ASSEMBLY__
#include <sbi/sbi_types.h>