Factor accel_cpu_realize() out of accel_cpu_common_realize() for re-use. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- accel/accel-internal.h | 2 ++ include/qemu/accel.h | 2 ++ accel/accel-common.c | 15 ++++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/accel/accel-internal.h b/accel/accel-internal.h index d3a4422cbf7..b541377c349 100644 --- a/accel/accel-internal.h +++ b/accel/accel-internal.h @@ -14,4 +14,6 @@ void accel_init_ops_interfaces(AccelClass *ac); +bool accel_cpu_realize(AccelState *accel, CPUState *cpu, Error **errp); + #endif /* ACCEL_SYSTEM_H */ diff --git a/include/qemu/accel.h b/include/qemu/accel.h index c660c5f4b11..3c9aaf9523c 100644 --- a/include/qemu/accel.h +++ b/include/qemu/accel.h @@ -91,6 +91,8 @@ void accel_setup_post(MachineState *ms); */ void accel_cpu_instance_init(CPUState *cpu); +bool accel_cpu_realize(AccelState *accel, CPUState *cpu, Error **errp); + /** * accel_cpu_common_realize: * @cpu: The CPU that needs to call accel-specific cpu realization. diff --git a/accel/accel-common.c b/accel/accel-common.c index 4894b98d64a..4f3b42e7112 100644 --- a/accel/accel-common.c +++ b/accel/accel-common.c @@ -88,10 +88,14 @@ void accel_cpu_instance_init(CPUState *cpu) } } -bool accel_cpu_common_realize(CPUState *cpu, Error **errp) +bool accel_cpu_realize(AccelState *accel, CPUState *cpu, Error **errp) { - AccelState *accel = current_accel(); - AccelClass *acc = ACCEL_GET_CLASS(accel); + AccelClass *acc; + + if (!accel) { + accel = current_accel(); + } + acc = ACCEL_GET_CLASS(accel); /* target specific realization */ if (cpu->cc->accel_cpu @@ -108,6 +112,11 @@ bool accel_cpu_common_realize(CPUState *cpu, Error **errp) return true; } +bool accel_cpu_common_realize(CPUState *cpu, Error **errp) +{ + return accel_cpu_realize(NULL, cpu, errp); +} + void accel_cpu_common_unrealize(CPUState *cpu) { AccelState *accel = current_accel(); -- 2.49.0