diff options
author | Anup Patel <anup.patel@wdc.com> | 2020-03-19 21:55:12 +0530 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2020-03-28 13:32:20 +0530 |
commit | 7487116b41e6c06d3903b600a2231d2a68d0c4a4 (patch) | |
tree | 1ed0174c5271e57a4554d8bdd6ffea16cbe60b2a /lib/sbi/sbi_ecall_legacy.c | |
parent | fe37d7da29f67ae8ccc31f06e0f3e6c9a6b58054 (diff) |
lib: sbi_ecall: Remove mcause, scratch and hartid parameters
We remove mcause, scratch and hartid parameters from various
functions for ecall handling because we can always get current
HART id and current scratch pointer using just one CSR access.
Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
Diffstat (limited to 'lib/sbi/sbi_ecall_legacy.c')
-rw-r--r-- | lib/sbi/sbi_ecall_legacy.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c index 70981e4..95f612a 100644 --- a/lib/sbi/sbi_ecall_legacy.c +++ b/lib/sbi/sbi_ecall_legacy.c @@ -15,6 +15,7 @@ #include <sbi/sbi_error.h> #include <sbi/sbi_hsm.h> #include <sbi/sbi_ipi.h> +#include <sbi/sbi_scratch.h> #include <sbi/sbi_system.h> #include <sbi/sbi_timer.h> #include <sbi/sbi_tlb.h> @@ -39,14 +40,14 @@ static int sbi_load_hart_mask_unpriv(ulong *pmask, ulong *hmask, return 0; } -static int sbi_ecall_legacy_handler(struct sbi_scratch *scratch, - unsigned long extid, unsigned long funcid, +static int sbi_ecall_legacy_handler(unsigned long extid, unsigned long funcid, unsigned long *args, unsigned long *out_val, struct sbi_trap_info *out_trap) { int ret = 0; struct sbi_tlb_info tlb_info; u32 source_hart = current_hartid(); + struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); ulong hmask = 0; switch (extid) { |