Move cpu_init/realize hooks from AccelCPUClass to
AccelOpsClass. Specialize them for TCG in TCGCPUOps.
This drastically simplifies the need of per-binary QOM
types per accelerator per target (see also the nice
diff-stat).
Based-on: tag single-binary-20260528
Ignoring checkpatch.pl:
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
accel/accel-target.c
include/accel/accel-cpu-target.h
include/accel/accel-cpu.h
Philippe Mathieu-Daudé (17):
target/loongarch: Remove unused 'accel/accel-cpu-target.h' header
accel: Remove AccelCPUClass::cpu_class_init()
accel: Rename AccelOpsClass::cpu_target_realize() -> cpu_realize()
accel/hvf: Remove need for AccelCPUClass::cpu_target_realize
accel/kvm: Remove need for AccelCPUClass::cpu_target_realize
accel: Introduce AccelOpsClass::cpu_instance_init handler
accel/whpx: Convert AccelCPUClass -> AccelOpsClass::cpu_instance_init
accel/nvmm: Convert AccelCPUClass -> AccelOpsClass::cpu_instance_init
accel/hvf: Convert AccelCPUClass -> AccelOpsClass::cpu_instance_init
accel/kvm: Convert AccelCPUClass -> AccelOpsClass::cpu_instance_init
accel/tcg: Convert AccelCPUClass -> new TCGCPUOps::cpu_instance_init
accel: Remove AccelCPUClass::cpu_instance_init()
accel/tcg: Convert AccelCPUClass -> new TCGCPUOps::cpu_realize
accel/tcg: Convert X86 AccelCPUClass -> TCGCPUOps::cpu_realize
accel/tcg: Convert RISCV AccelCPUClass -> TCGCPUOps::cpu_realize
accel: Remove AccelCPUClass::cpu_target_realize()
accel: Remove AccelCPUClass and 'accel/accel-cpu-target.h'
accel/tcg/tcg-accel-ops.h | 1 +
include/accel/accel-cpu-ops.h | 3 +-
include/accel/accel-cpu-target.h | 31 --------------
include/accel/accel-cpu.h | 23 -----------
include/accel/tcg/cpu-ops.h | 2 +
include/system/hvf_int.h | 1 +
include/system/kvm.h | 3 ++
target/i386/nvmm/nvmm-accel-ops.h | 2 +
accel/accel-common.c | 68 ++++---------------------------
accel/hvf/hvf-accel-ops.c | 3 +-
accel/kvm/kvm-accel-ops.c | 2 +
accel/tcg/cpu-exec.c | 15 ++++++-
accel/tcg/tcg-accel-ops.c | 1 +
accel/whpx/whpx-accel-ops.c | 2 +
accel/whpx/whpx-common.c | 17 --------
target/arm/hvf/hvf.c | 4 ++
target/arm/whpx/whpx-all.c | 1 -
target/i386/hvf/hvf-cpu.c | 25 ++----------
target/i386/hvf/hvf.c | 5 ---
target/i386/kvm/kvm-cpu.c | 25 +-----------
target/i386/nvmm/nvmm-accel-ops.c | 2 +
target/i386/nvmm/nvmm-all.c | 19 +--------
target/i386/tcg/tcg-cpu.c | 28 ++-----------
target/i386/whpx/whpx-all.c | 1 -
target/loongarch/tcg/tcg_cpu.c | 1 -
target/ppc/kvm.c | 23 +----------
target/riscv/kvm/kvm-cpu.c | 33 +--------------
target/riscv/tcg/tcg-cpu.c | 28 +++----------
28 files changed, 64 insertions(+), 305 deletions(-)
delete mode 100644 include/accel/accel-cpu-target.h
delete mode 100644 include/accel/accel-cpu.h
--
2.53.0