lib: sbi: Pass trap context pointer to sbi_ecall_handler()
To be consistent with other trap handlers, pass trap context pointer to sbi_ecall_handler(). Signed-off-by: Anup Patel <apatel@ventanamicro.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Tested-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Clément Léger <cleger@rivosinc.com>
This commit is contained in:
parent
43d346c0c1
commit
5b11f16c3c
|
@ -18,7 +18,7 @@
|
||||||
#define SBI_OPENSBI_IMPID 1
|
#define SBI_OPENSBI_IMPID 1
|
||||||
|
|
||||||
struct sbi_trap_regs;
|
struct sbi_trap_regs;
|
||||||
struct sbi_trap_info;
|
struct sbi_trap_context;
|
||||||
|
|
||||||
struct sbi_ecall_return {
|
struct sbi_ecall_return {
|
||||||
/* Return flag to skip register update */
|
/* Return flag to skip register update */
|
||||||
|
@ -87,7 +87,7 @@ int sbi_ecall_register_extension(struct sbi_ecall_extension *ext);
|
||||||
|
|
||||||
void sbi_ecall_unregister_extension(struct sbi_ecall_extension *ext);
|
void sbi_ecall_unregister_extension(struct sbi_ecall_extension *ext);
|
||||||
|
|
||||||
int sbi_ecall_handler(struct sbi_trap_regs *regs);
|
int sbi_ecall_handler(struct sbi_trap_context *tcntx);
|
||||||
|
|
||||||
int sbi_ecall_init(void);
|
int sbi_ecall_init(void);
|
||||||
|
|
||||||
|
|
|
@ -95,9 +95,10 @@ void sbi_ecall_unregister_extension(struct sbi_ecall_extension *ext)
|
||||||
sbi_list_del_init(&ext->head);
|
sbi_list_del_init(&ext->head);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sbi_ecall_handler(struct sbi_trap_regs *regs)
|
int sbi_ecall_handler(struct sbi_trap_context *tcntx)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
struct sbi_trap_regs *regs = &tcntx->regs;
|
||||||
struct sbi_ecall_extension *ext;
|
struct sbi_ecall_extension *ext;
|
||||||
unsigned long extension_id = regs->a7;
|
unsigned long extension_id = regs->a7;
|
||||||
unsigned long func_id = regs->a6;
|
unsigned long func_id = regs->a6;
|
||||||
|
|
|
@ -299,7 +299,7 @@ struct sbi_trap_context *sbi_trap_handler(struct sbi_trap_context *tcntx)
|
||||||
break;
|
break;
|
||||||
case CAUSE_SUPERVISOR_ECALL:
|
case CAUSE_SUPERVISOR_ECALL:
|
||||||
case CAUSE_MACHINE_ECALL:
|
case CAUSE_MACHINE_ECALL:
|
||||||
rc = sbi_ecall_handler(regs);
|
rc = sbi_ecall_handler(tcntx);
|
||||||
msg = "ecall handler failed";
|
msg = "ecall handler failed";
|
||||||
break;
|
break;
|
||||||
case CAUSE_LOAD_ACCESS:
|
case CAUSE_LOAD_ACCESS:
|
||||||
|
|
Loading…
Reference in New Issue