Missing review: 16 (I plan to merge this myself once reviewed)
Since v2: - Check mandatory SysemuCPUOps handlers in class_post_init() v1 cover: On user emulation, threads always have work to do, and CPUClass::has_work() is never called. Restrict it to system emulation, allowing to simplify a bit and reduce code built on user emulation. Based-on: <20250125165855.32168-1-phi...@linaro.org> "qom: Introduce class_post_init() handler" Based-on: <20250121114056.53949-1-phi...@linaro.org> "cpus: Prefer cached CpuClass over CPU_GET_CLASS() macro" Philippe Mathieu-Daudé (24): cpus: Restrict cpu_has_work() to system emulation cpus: Un-inline cpu_has_work() cpus: Introduce SysemuCPUOps::has_work() handler target/alpha: Move has_work() from CPUClass to SysemuCPUOps target/arm: Move has_work() from CPUClass to SysemuCPUOps target/avr: Move has_work() from CPUClass to SysemuCPUOps target/hexagon: Remove CPUClass:has_work() handler target/hppa: Move has_work() from CPUClass to SysemuCPUOps target/i386: Move has_work() from CPUClass to SysemuCPUOps target/loongarch: Move has_work() from CPUClass to SysemuCPUOps target/m68k: Move has_work() from CPUClass to SysemuCPUOps target/microblaze: Move has_work() from CPUClass to SysemuCPUOps target/mips: Move has_work() from CPUClass to SysemuCPUOps target/openrisc: Move has_work() from CPUClass to SysemuCPUOps target/ppc: Move has_work() from CPUClass to SysemuCPUOps target/riscv: Move has_work() from CPUClass to SysemuCPUOps target/rx: Move has_work() from CPUClass to SysemuCPUOps target/s390x: Restrict I/O handler installers to system emulation target/s390x: Move has_work() from CPUClass to SysemuCPUOps target/sh4: Move has_work() from CPUClass to SysemuCPUOps target/sparc: Move has_work() from CPUClass to SysemuCPUOps target/tricore: Move has_work() from CPUClass to SysemuCPUOps target/xtensa: Move has_work() from CPUClass to SysemuCPUOps cpus: Remove CPUClass::has_work() handler include/hw/core/cpu.h | 27 +++++++++++---------------- include/hw/core/sysemu-cpu-ops.h | 4 ++++ include/hw/core/tcg-cpu-ops.h | 2 +- target/i386/cpu.h | 4 ++-- target/mips/internal.h | 4 ++-- target/riscv/internals.h | 4 +++- target/s390x/s390x-internal.h | 5 +++++ cpu-target.c | 8 ++++++++ hw/core/cpu-common.c | 12 ++++++------ hw/core/cpu-system.c | 5 +++++ target/alpha/cpu.c | 4 +++- target/arm/cpu.c | 4 +++- target/avr/cpu.c | 2 +- target/hexagon/cpu.c | 6 ------ target/hppa/cpu.c | 4 +++- target/i386/cpu.c | 8 +++----- target/loongarch/cpu.c | 8 +++----- target/m68k/cpu.c | 4 +++- target/microblaze/cpu.c | 4 +++- target/mips/cpu.c | 4 +++- target/openrisc/cpu.c | 4 +++- target/ppc/cpu_init.c | 4 +++- target/riscv/cpu.c | 8 +++----- target/rx/cpu.c | 2 +- target/s390x/cpu-system.c | 18 ++++++++++++++++++ target/s390x/cpu.c | 18 ------------------ target/s390x/interrupt.c | 8 ++------ target/sh4/cpu.c | 4 ++-- target/sparc/cpu.c | 4 +++- target/tricore/cpu.c | 2 +- target/xtensa/cpu.c | 12 +++++------- 31 files changed, 113 insertions(+), 94 deletions(-) -- 2.47.1