summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnup Patel <[email protected]>2019-11-17 14:16:24 +0530
committerAnup Patel <[email protected]>2019-11-21 13:57:33 +0530
commit0e1322bacbaccb34f167ebe243ab04836b99105c (patch)
treeb7c767b8dd31dba21d672afd6cb8dd9fc512721a /include
parentb1d8c988bcca84cf7cd8ee5bf4fe528e256cfeab (diff)
lib: Better naming of unpriv APIs for wider use
The unpriv APIs can be useful to external firmware and out-of-tree platform support code. This patch adds "sbi_" prefix to unpriv load/store APIs and rename struct riscv_unpriv to struct sbi_trap_info everywhere. We also place struct sbi_trap_info in sbi/sbi_trap.h so that we can use it for sbi_trap_redirect() as well. Overall, this patch will make naming of unpriv APIs consistent with other OpenSBI APIs. Signed-off-by: Anup Patel <[email protected]> Reviewed-by: Atish Patra <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/sbi/sbi_ipi.h5
-rw-r--r--include/sbi/sbi_trap.h18
-rw-r--r--include/sbi/sbi_unpriv.h (renamed from include/sbi/riscv_unpriv.h)30
3 files changed, 31 insertions, 22 deletions
diff --git a/include/sbi/sbi_ipi.h b/include/sbi/sbi_ipi.h
index 53468b28..378a3c83 100644
--- a/include/sbi/sbi_ipi.h
+++ b/include/sbi/sbi_ipi.h
@@ -10,7 +10,6 @@
#ifndef __SBI_IPI_H__
#define __SBI_IPI_H__
-#include <sbi/riscv_unpriv.h>
#include <sbi/sbi_types.h>
/* clang-format off */
@@ -24,12 +23,14 @@
/* clang-format on */
struct sbi_scratch;
+struct sbi_trap_info;
struct sbi_ipi_data {
unsigned long ipi_type;
};
-int sbi_ipi_send_many(struct sbi_scratch *scratch, struct unpriv_trap *uptrap,
+int sbi_ipi_send_many(struct sbi_scratch *scratch,
+ struct sbi_trap_info *uptrap,
ulong *pmask, u32 event, void *data);
void sbi_ipi_clear_smode(struct sbi_scratch *scratch);
diff --git a/include/sbi/sbi_trap.h b/include/sbi/sbi_trap.h
index bc26ad13..4baa3a57 100644
--- a/include/sbi/sbi_trap.h
+++ b/include/sbi/sbi_trap.h
@@ -170,12 +170,24 @@ struct sbi_trap_regs {
unsigned long mstatusH;
} __packed;
+/** Representation of trap details */
+struct sbi_trap_info {
+ /** epc Trap program counter */
+ unsigned long epc;
+ /** cause Trap exception cause */
+ unsigned long cause;
+ /** tval Trap value */
+ unsigned long tval;
+};
+
struct sbi_scratch;
-int sbi_trap_redirect(struct sbi_trap_regs *regs, struct sbi_scratch *scratch,
- ulong epc, ulong cause, ulong tval);
+int sbi_trap_redirect(struct sbi_trap_regs *regs,
+ struct sbi_trap_info *trap,
+ struct sbi_scratch *scratch);
-void sbi_trap_handler(struct sbi_trap_regs *regs, struct sbi_scratch *scratch);
+void sbi_trap_handler(struct sbi_trap_regs *regs,
+ struct sbi_scratch *scratch);
#endif
diff --git a/include/sbi/riscv_unpriv.h b/include/sbi/sbi_unpriv.h
index bdea3a31..747ba731 100644
--- a/include/sbi/riscv_unpriv.h
+++ b/include/sbi/sbi_unpriv.h
@@ -7,27 +7,23 @@
* Anup Patel <[email protected]>
*/
-#ifndef __RISCV_UNPRIV_H__
-#define __RISCV_UNPRIV_H__
+#ifndef __SBI_UNPRIV_H__
+#define __SBI_UNPRIV_H__
#include <sbi/sbi_types.h>
struct sbi_scratch;
+struct sbi_trap_info;
-struct unpriv_trap {
- unsigned long cause;
- unsigned long tval;
-};
+#define DECLARE_UNPRIVILEGED_LOAD_FUNCTION(type) \
+ type sbi_load_##type(const type *addr, \
+ struct sbi_scratch *scratch, \
+ struct sbi_trap_info *trap);
-#define DECLARE_UNPRIVILEGED_LOAD_FUNCTION(type) \
- type load_##type(const type *addr, \
- struct sbi_scratch *scratch, \
- struct unpriv_trap *trap);
-
-#define DECLARE_UNPRIVILEGED_STORE_FUNCTION(type) \
- void store_##type(type *addr, type val, \
- struct sbi_scratch *scratch, \
- struct unpriv_trap *trap);
+#define DECLARE_UNPRIVILEGED_STORE_FUNCTION(type) \
+ void sbi_store_##type(type *addr, type val, \
+ struct sbi_scratch *scratch, \
+ struct sbi_trap_info *trap);
DECLARE_UNPRIVILEGED_LOAD_FUNCTION(u8)
DECLARE_UNPRIVILEGED_LOAD_FUNCTION(u16)
@@ -42,7 +38,7 @@ DECLARE_UNPRIVILEGED_LOAD_FUNCTION(u64)
DECLARE_UNPRIVILEGED_STORE_FUNCTION(u64)
DECLARE_UNPRIVILEGED_LOAD_FUNCTION(ulong)
-ulong get_insn(ulong mepc, struct sbi_scratch *scratch,
- struct unpriv_trap *trap);
+ulong sbi_get_insn(ulong mepc, struct sbi_scratch *scratch,
+ struct sbi_trap_info *trap);
#endif