Use per-accelerator locals to make the differing conventions explicit: TCG takes a MIP bitmask and value, KVM takes an IRQ number and a level.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- target/riscv/time_helper.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/riscv/time_helper.c b/target/riscv/time_helper.c index ede1a4c2a34..29bbebb96fc 100644 --- a/target/riscv/time_helper.c +++ b/target/riscv/time_helper.c @@ -25,18 +25,24 @@ #include "system/kvm.h" #include "system/tcg.h" -static void riscv_accel_set_irq(RISCVCPU *cpu, int irq, int level) +static void riscv_accel_set_irq(RISCVCPU *cpu, + int irq_or_mask, int level_or_value) { if (kvm_enabled()) { + int irq = irq_or_mask; + int level = level_or_value; + kvm_riscv_set_irq(cpu, irq, level); } if (tcg_enabled()) { - riscv_cpu_update_mip(&cpu->env, irq, level); + uint64_t mask = irq_or_mask; + uint64_t value = level_or_value; + + riscv_cpu_update_mip(&cpu->env, mask, value); } } - static void riscv_vstimer_cb(void *opaque) { RISCVCPU *cpu = opaque; -- 2.55.0
