mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00
lib: sbi: Remove regs parameter from trap irq handling functions
The trap irq handling functions no longer require regs parameter so remove it. Signed-off-by: Anup Patel <apatel@ventanamicro.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Tested-by: Samuel Holland <samuel.holland@sifive.com>
This commit is contained in:
@@ -80,6 +80,8 @@
|
|||||||
#define HSTATUS_GVA _UL(0x00000040)
|
#define HSTATUS_GVA _UL(0x00000040)
|
||||||
#define HSTATUS_VSBE _UL(0x00000020)
|
#define HSTATUS_VSBE _UL(0x00000020)
|
||||||
|
|
||||||
|
#define MCAUSE_IRQ_MASK (_UL(1) << (__riscv_xlen - 1))
|
||||||
|
|
||||||
#define IRQ_S_SOFT 1
|
#define IRQ_S_SOFT 1
|
||||||
#define IRQ_VS_SOFT 2
|
#define IRQ_VS_SOFT 2
|
||||||
#define IRQ_M_SOFT 3
|
#define IRQ_M_SOFT 3
|
||||||
|
@@ -198,10 +198,9 @@ int sbi_trap_redirect(struct sbi_trap_regs *regs,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sbi_trap_nonaia_irq(struct sbi_trap_regs *regs, ulong mcause)
|
static int sbi_trap_nonaia_irq(unsigned long irq)
|
||||||
{
|
{
|
||||||
mcause &= ~(1UL << (__riscv_xlen - 1));
|
switch (irq) {
|
||||||
switch (mcause) {
|
|
||||||
case IRQ_M_TIMER:
|
case IRQ_M_TIMER:
|
||||||
sbi_timer_process();
|
sbi_timer_process();
|
||||||
break;
|
break;
|
||||||
@@ -217,7 +216,7 @@ static int sbi_trap_nonaia_irq(struct sbi_trap_regs *regs, ulong mcause)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sbi_trap_aia_irq(struct sbi_trap_regs *regs, ulong mcause)
|
static int sbi_trap_aia_irq(void)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
unsigned long mtopi;
|
unsigned long mtopi;
|
||||||
@@ -273,12 +272,12 @@ struct sbi_trap_context *sbi_trap_handler(struct sbi_trap_context *tcntx)
|
|||||||
tcntx->prev_context = sbi_trap_get_context(scratch);
|
tcntx->prev_context = sbi_trap_get_context(scratch);
|
||||||
sbi_trap_set_context(scratch, tcntx);
|
sbi_trap_set_context(scratch, tcntx);
|
||||||
|
|
||||||
if (mcause & (1UL << (__riscv_xlen - 1))) {
|
if (mcause & MCAUSE_IRQ_MASK) {
|
||||||
if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(),
|
if (sbi_hart_has_extension(sbi_scratch_thishart_ptr(),
|
||||||
SBI_HART_EXT_SMAIA))
|
SBI_HART_EXT_SMAIA))
|
||||||
rc = sbi_trap_aia_irq(regs, mcause);
|
rc = sbi_trap_aia_irq();
|
||||||
else
|
else
|
||||||
rc = sbi_trap_nonaia_irq(regs, mcause);
|
rc = sbi_trap_nonaia_irq(mcause & ~MCAUSE_IRQ_MASK);
|
||||||
msg = "unhandled local interrupt";
|
msg = "unhandled local interrupt";
|
||||||
goto trap_done;
|
goto trap_done;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user