[PATCH v3 00/14] qapi: remove all TARGET_* conditionals from the schema

Pierrick Bouvier posted 14 patches 5 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250521223740.249720-1-pierrick.bouvier@linaro.org
Maintainers: David Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Nina Schoetterl-Glausch <nsg@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, David Hildenbrand <david@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Gonglei (Arei)" <arei.gonglei@huawei.com>, Zhenwei Pi <pizhenwei@bytedance.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>, Michael Roth <michael.roth@amd.com>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Peter Maydell <peter.maydell@linaro.org>, Marcelo Tosatti <mtosatti@redhat.com>, Song Gao <gaosong@loongson.cn>, Huacai Chen <chenhuacai@kernel.org>, Aurelien Jarno <aurelien@aurel32.net>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Aleksandar Rikalo <arikalo@gmail.com>, Nicholas Piggin <npiggin@gmail.com>, Daniel Henrique Barboza <danielhb413@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
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
[PATCH v3 00/14] qapi: remove all TARGET_* conditionals from the schema
Posted by Pierrick Bouvier 5 months, 3 weeks ago
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-berrange@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


Re: [PATCH v3 00/14] qapi: remove all TARGET_* conditionals from the schema
Posted by Pierrick Bouvier 5 months, 3 weeks ago
This series contains a rebase mistake (two patches were merged 
together), please skip it and check v4 instead:
https://lore.kernel.org/qemu-devel/20250522190542.588267-1-pierrick.bouvier@linaro.org

Regards,
Pierrick