This series exposes all qmp commands for any target unconditionally, allowing to compile QAPI generated code without any TARGET conditionals.
Based on original RFC from Daniel P. Berrangé: https://lore.kernel.org/qemu-devel/20250508135816.673087-1-berra...@redhat.com/ v3 -- - Change error message for rtc-reset-injection stub - s/'*deprecated-props' : { 'type': ['str'] }/'*deprecated-props' : ['str'] } - further cleanup in qapi/meson.build - move qapi/machine-target.json deletion to s390x cpu commands commit - cleanup qapi_outputs in qapi/meson.build - All comment and commit description updates requested - Rebase on top of master (conflict with s/SGX/Sgx/ case change) v2 -- - rtc-reset-reinjection now returns an error if the command is not applicable for current target (Markus & Daniel) v1 -- - remove file qapi/misc-target.json (Markus) - remove qapi/*-target.json from MAINTAINERS (Markus) - remove qapi_specific_outputs from qapi/meson.build (Markus) - update comment in rtc-reset-reinjection stub (Markus) - build QAPI generated code only once Daniel P. Berrangé (8): qapi: expose rtc-reset-reinjection command unconditionally qapi: expand docs for SEV commands qapi: make SEV commands unconditionally available qapi: expose query-gic-capability command unconditionally qapi: make SGX commands unconditionally available qapi: make Xen event commands unconditionally available qapi: remove the misc-target.json file qapi: make s390x specific CPU commands unconditionally available Philippe Mathieu-Daudé (1): qapi: Make CpuModelExpansionInfo::deprecated-props optional and generic Pierrick Bouvier (5): qapi: remove qapi_specific_outputs from meson.build qapi: make all generated files common qapi: use imperative style in documentation qapi/misc-i386: s/field will be set/field is set/ qapi/misc-i386: move errors to their own documentation section MAINTAINERS | 1 - qapi/audio.json | 2 +- qapi/char.json | 4 +- qapi/cryptodev.json | 2 +- qapi/machine-s390x.json | 121 +++++ qapi/machine-target.json | 523 ---------------------- qapi/machine.json | 367 ++++++++++++++- qapi/migration.json | 8 +- qapi/misc-arm.json | 49 ++ qapi/{misc-target.json => misc-i386.json} | 165 +++---- qapi/qapi-schema.json | 5 +- qapi/ui.json | 8 +- include/hw/s390x/cpu-topology.h | 2 +- hw/i386/kvm/xen-stubs.c | 13 - hw/i386/kvm/xen_evtchn.c | 2 +- hw/i386/monitor.c | 2 +- hw/i386/sgx-stub.c | 2 +- hw/i386/sgx.c | 2 +- hw/s390x/cpu-topology.c | 4 +- hw/s390x/s390-skeys.c | 1 - stubs/monitor-arm-gic.c | 12 + stubs/monitor-cpu-s390x-kvm.c | 22 + stubs/monitor-cpu-s390x.c | 23 + stubs/monitor-cpu.c | 21 + stubs/monitor-i386-rtc.c | 12 + stubs/monitor-i386-sev.c | 36 ++ stubs/monitor-i386-sgx.c | 17 + stubs/monitor-i386-xen.c | 16 + target/arm/arm-qmp-cmds.c | 4 +- target/i386/cpu-system.c | 2 +- target/i386/cpu.c | 2 +- target/i386/monitor.c | 1 - target/i386/sev-system-stub.c | 32 -- target/i386/sev.c | 2 +- target/loongarch/loongarch-qmp-cmds.c | 2 +- target/mips/system/mips-qmp-cmds.c | 12 +- target/ppc/ppc-qmp-cmds.c | 12 +- target/riscv/riscv-qmp-cmds.c | 2 +- target/s390x/cpu_models_system.c | 2 +- tests/qtest/qmp-cmd-test.c | 1 + qapi/meson.build | 33 +- stubs/meson.build | 8 + 42 files changed, 833 insertions(+), 724 deletions(-) create mode 100644 qapi/machine-s390x.json delete mode 100644 qapi/machine-target.json create mode 100644 qapi/misc-arm.json rename qapi/{misc-target.json => misc-i386.json} (75%) create mode 100644 stubs/monitor-arm-gic.c create mode 100644 stubs/monitor-cpu-s390x-kvm.c create mode 100644 stubs/monitor-cpu-s390x.c create mode 100644 stubs/monitor-cpu.c create mode 100644 stubs/monitor-i386-rtc.c create mode 100644 stubs/monitor-i386-sev.c create mode 100644 stubs/monitor-i386-sgx.c create mode 100644 stubs/monitor-i386-xen.c -- 2.47.2