diff options
| author | Anup Patel <[email protected]> | 2019-11-17 14:16:24 +0530 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2019-11-21 13:57:33 +0530 |
| commit | 0e1322bacbaccb34f167ebe243ab04836b99105c (patch) | |
| tree | b7c767b8dd31dba21d672afd6cb8dd9fc512721a /include | |
| parent | b1d8c988bcca84cf7cd8ee5bf4fe528e256cfeab (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.h | 5 | ||||
| -rw-r--r-- | include/sbi/sbi_trap.h | 18 | ||||
| -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 |
