@samitouri / QOSamiQemu / commits / 6dd762b415

target/riscv: move riscv_cpu_set_aia_ireg_rmw_cb() to riscv_imsic

riscv_imsic.c is the only caller. Having it sitting in the TCG only cpu_helper.c gets in the way of --disable-tcg for no good reason. Signed-off-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260703180538.3346781-24-daniel.barboza@oss.qualcomm.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Daniel Henrique Barboza committed Jul 3, 2026 at 15:05 UTC 6dd762b415310199fa359ba1dbb1eb3dfb622d41
3 files changed +11 -13
hw/intc/riscv_imsic.c
+11
@@ -376,6 +376,17 @@ static void riscv_imsic_reset_enter(Object *obj, ResetType type)
376 }
377 }
378
379 +static void riscv_cpu_set_aia_ireg_rmw_cb(CPURISCVState *env,
380 + privilege_mode_t priv,
381 + aia_ireg_rmw_fn rmw_fn,
382 + void *rmw_fn_arg)
383 +{
384 + if (priv <= PRV_M) {
385 + env->aia_ireg_rmw_cb[priv] = rmw_fn;
386 + env->aia_ireg_rmw_cb_arg[priv] = rmw_fn_arg;
387 + }
388 +}
389 +
390 static void riscv_imsic_realize(DeviceState *dev, Error **errp)
391 {
392 RISCVIMSICState *imsic = RISCV_IMSIC(dev);
target/riscv/cpu.h
-3
@@ -680,9 +680,6 @@ uint64_t riscv_cpu_update_mip(CPURISCVState *env, uint64_t mask,
680 void riscv_cpu_set_rnmi(RISCVCPU *cpu, uint32_t irq, bool level);
681 void riscv_cpu_interrupt(CPURISCVState *env);
682 #define BOOL_TO_MASK(x) (-!!(x)) /* helper for riscv_cpu_update_mip value */
683 -void riscv_cpu_set_aia_ireg_rmw_cb(CPURISCVState *env, privilege_mode_t priv,
684 - aia_ireg_rmw_fn rmw_fn,
685 - void *rmw_fn_arg);
683
684 RISCVException smstateen_acc_ok(CPURISCVState *env, int index, uint64_t bit);
685 #endif /* !CONFIG_USER_ONLY */
target/riscv/tcg/cpu_helper.c
-10
@@ -590,16 +590,6 @@ uint64_t riscv_cpu_update_mip(CPURISCVState *env, uint64_t mask, uint64_t value)
590 return old;
591 }
592
593 -void riscv_cpu_set_aia_ireg_rmw_cb(CPURISCVState *env, privilege_mode_t priv,
594 - aia_ireg_rmw_fn rmw_fn,
595 - void *rmw_fn_arg)
596 -{
597 - if (priv <= PRV_M) {
598 - env->aia_ireg_rmw_cb[priv] = rmw_fn;
599 - env->aia_ireg_rmw_cb_arg[priv] = rmw_fn_arg;
600 - }
601 -}
602 -
593 static void riscv_ctr_freeze(CPURISCVState *env, uint64_t freeze_mask,
594 bool virt)
595 {