Commit e4f6a02d86 for qemu.org
commit e4f6a02d86bf3977ebfeaab1379a0aa3ab7ca2bd
Author: Philippe Mathieu-Daudé <philmd@linaro.org>
Date: Wed Jun 18 08:05:47 2025 +0200
accel: Introduce AccelOpsClass::cpu_target_realize() hook
Allow accelerators to set vCPU properties before its realization.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Message-ID: <20251103101034.59039-16-philmd@linaro.org>
diff --git a/accel/accel-common.c b/accel/accel-common.c
index 850c5ab4b8..eecb2a292a 100644
--- a/accel/accel-common.c
+++ b/accel/accel-common.c
@@ -106,6 +106,11 @@ bool accel_cpu_common_realize(CPUState *cpu, Error **errp)
if (acc->cpu_common_realize && !acc->cpu_common_realize(cpu, errp)) {
return false;
}
+ if (acc->ops
+ && acc->ops->cpu_target_realize
+ && !acc->ops->cpu_target_realize(cpu, errp)) {
+ return false;
+ }
return true;
}
diff --git a/include/accel/accel-cpu-ops.h b/include/accel/accel-cpu-ops.h
index 0674764914..9c07a903ea 100644
--- a/include/accel/accel-cpu-ops.h
+++ b/include/accel/accel-cpu-ops.h
@@ -34,6 +34,7 @@ struct AccelOpsClass {
/* initialization function called when accel is chosen */
void (*ops_init)(AccelClass *ac);
+ bool (*cpu_target_realize)(CPUState *cpu, Error **errp);
bool (*cpus_are_resettable)(void);
void (*cpu_reset_hold)(CPUState *cpu);