This series is part of the single binary effort. All accelerator will share their per-vCPU context in an opaque 'accel' pointer within the CPUState. First handle HAX/NVMM/WHPX/HVF. KVM and TCG will follow as two different (bigger) follow-up series. Philippe Mathieu-Daudé (14): accel: Document generic accelerator headers accel: Remove unused hThread variable on TCG/WHPX accel: Fix a leak on Windows HAX accel: Destroy HAX vCPU threads once done accel: Rename 'hax_vcpu' as 'accel' in CPUState accel: Use a typedef for struct hax_vcpu_state accel: Rename struct hax_vcpu_state -> struct AccelvCPUState accel: Move HAX hThread to accelerator context accel: Allocate NVMM vCPU using g_try_FOO() accel: Rename NVMM struct qemu_vcpu -> struct AccelvCPUState accel: Inline NVMM get_qemu_vcpu() accel: Rename WHPX struct whpx_vcpu -> struct AccelvCPUState accel: Inline WHPX get_whpx_vcpu() accel: Rename HVF struct hvf_vcpu_state -> struct AccelvCPUState include/hw/core/cpu.h | 11 ++--- include/sysemu/hax.h | 2 + include/sysemu/hvf_int.h | 2 +- include/sysemu/kvm.h | 2 + include/sysemu/nvmm.h | 2 + include/sysemu/tcg.h | 2 + include/sysemu/whpx.h | 2 + include/sysemu/xen.h | 2 + target/i386/hax/hax-i386.h | 14 ++++--- accel/hvf/hvf-accel-ops.c | 16 +++---- accel/tcg/tcg-accel-ops-mttcg.c | 4 -- accel/tcg/tcg-accel-ops-rr.c | 3 -- target/arm/hvf/hvf.c | 70 +++++++++++++++---------------- target/i386/hax/hax-accel-ops.c | 5 ++- target/i386/hax/hax-all.c | 26 +++++++----- target/i386/hax/hax-posix.c | 4 +- target/i386/hax/hax-windows.c | 6 +-- target/i386/nvmm/nvmm-all.c | 38 +++++++---------- target/i386/whpx/whpx-accel-ops.c | 3 -- target/i386/whpx/whpx-all.c | 39 +++++++---------- 20 files changed, 123 insertions(+), 130 deletions(-) -- 2.38.1