[PATCH 00/54] qom/qdev: associate properties with QAPI schema types

Marc-André Lureau posted 54 patches 2 weeks, 1 day ago
Failed in applying to current master (apply log)
Maintainers: Roman Bolshakov <rbolshakov@ddn.com>, Phil Dennis-Jordan <phil@philjordan.eu>, Paolo Bonzini <pbonzini@redhat.com>, Alexander Graf <graf@amazon.com>, Richard Henderson <richard.henderson@linaro.org>, Pedro Barbuda <pbarbuda@microsoft.com>, Mohamed Mediouni <mohamed@unpredictable.fr>, "Daniel P. Berrangé" <berrange@redhat.com>, "Gonglei (Arei)" <arei.gonglei@huawei.com>, zhenwei pi <zhenwei.pi@linux.dev>, David Hildenbrand <david@kernel.org>, Igor Mammedov <imammedo@redhat.com>, Alistair Francis <alistair.francis@wdc.com>, Tao Tang <tangtao1634@phytium.com.cn>, Stefan Berger <stefanb@linux.vnet.ibm.com>, Alberto Garcia <berto@igalia.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Markus Armbruster <armbru@redhat.com>, Michael Roth <michael.roth@amd.com>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>, "Michael S. Tsirkin" <mst@redhat.com>, Ani Sinha <anisinha@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Luc Michel <luc@lmichel.fr>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Zhao Liu <zhao1.liu@intel.com>, Jonathan Cameron <jonathan.cameron@huawei.com>, Fan Ni <fan.ni@samsung.com>, "Cédric Le Goater" <clg@kaod.org>, Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>, Jamin Lin <jamin_lin@aspeedtech.com>, Kane Chen <kane_chen@aspeedtech.com>, Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>, Glenn Miles <milesg@linux.ibm.com>, Samuel Tardieu <sam@rfc1149.net>, Sergio Lopez <slp@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>, John Snow <jsnow@redhat.com>, Yoshinori Sato <yoshinori.sato@nifty.com>, Song Gao <gaosong@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Tyrone Ting <kfting@nuvoton.com>, Hao Wu <wuhaotsh@google.com>, Jason Wang <jasowang@redhat.com>, Jiri Pirko <jiri@resnulli.us>, Keith Busch <kbusch@kernel.org>, Klaus Jensen <its@irrelevant.dk>, Jesper Devantier <foss@defmacro.it>, Nicholas Piggin <npiggin@gmail.com>, Aditya Gupta <adityag@linux.ibm.com>, Harsh Prateek Bora <harshpb@linux.ibm.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>, Jagannathan Raman <jag.raman@oracle.com>, Palmer Dabbelt <palmer@dabbelt.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Chao Liu <chao.liu.zevorn@gmail.com>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Farhan Ali <alifm@linux.ibm.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Cornelia Huck <cohuck@redhat.com>, Jason Herne <jjherne@linux.ibm.com>, Titus Rwantare <titusr@google.com>, John Levon <john.levon@nutanix.com>, Thanos Makatos <thanos.makatos@nutanix.com>, Alex Williamson <alex@shazbot.org>, Eric Auger <eric.auger@redhat.com>, Fam Zheng <fam@euphon.net>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Zhang Chen <zhangckid@gmail.com>, Li Zhijian <lizhijian@fujitsu.com>, Eric Blake <eblake@redhat.com>, Chinmay Rath <rathc@linux.ibm.com>, Hendrik Brueckner <brueckner@linux.ibm.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>
docs/devel/qapi-code-gen.rst             |  90 ++++++++++++
docs/interop/virtio-balloon-stats.rst    |  22 +--
meson.build                              |   1 +
qapi/common.json                         |  28 ++++
qapi/machine.json                        |  92 ++++++++++++
qapi/pragma.json                         |   1 +
qapi/qom.json                            |  12 ++
qapi/sockets.json                        |  20 +++
hw/core/qdev-prop-internal.h             |  20 +++
hw/display/apple-gfx.h                   |   1 +
include/hw/block/block.h                 |   2 +-
include/hw/core/qdev-properties-system.h |   2 +
include/hw/core/qdev-properties.h        |  29 ++--
include/qapi/qapi-type-info.h            |  19 +++
include/qemu/uuid.h                      |   4 +
include/qom/object.h                     | 162 ++++++++++++---------
include/system/spdm-socket.h             |  28 ++--
accel/hvf/hvf-all.c                      |  29 ++--
accel/kvm/kvm-all.c                      |  31 ++--
accel/nitro/nitro-accel.c                |   3 +-
accel/tcg/tcg-all.c                      |   3 +-
accel/whpx/whpx-common.c                 |  58 +++-----
authz/list.c                             |  14 +-
backends/cryptodev.c                     |   7 +-
backends/hostmem-file.c                  |  33 ++---
backends/hostmem-memfd.c                 |   3 +-
backends/hostmem.c                       |  20 +--
backends/spdm-socket.c                   |  25 ++--
backends/tpm/tpm_util.c                  |   3 +-
block/throttle-groups.c                  |  10 +-
chardev/char-socket.c                    |   3 +-
crypto/secret_common.c                   |  12 +-
crypto/secret_keyring.c                  |   9 +-
crypto/tlscreds.c                        |  12 +-
event-loop-base.c                        |   7 +-
hw/acpi/ich9.c                           |   3 +-
hw/acpi/pci.c                            |   5 +-
hw/arm/virt.c                            |  31 ++--
hw/block/xen-block.c                     |   3 +-
hw/core/clock.c                          |   3 +-
hw/core/machine-qmp-cmds.c               |   3 +-
hw/core/machine.c                        |  13 +-
hw/core/qdev-properties-system.c         |  97 ++++++-------
hw/core/qdev-properties.c                | 168 ++++++++++++++--------
hw/cpu/core.c                            |  10 +-
hw/cxl/cxl-host.c                        |   6 +-
hw/gpio/aspeed_gpio.c                    |   5 +-
hw/gpio/aspeed_sgpio.c                   |   3 +-
hw/gpio/pca9552.c                        |   6 +-
hw/gpio/pca9554.c                        |   6 +-
hw/gpio/stm32l4x5_gpio.c                 |   5 +-
hw/i386/microvm.c                        |  84 +++++------
hw/i386/pc.c                             |  32 ++---
hw/i386/pc_piix.c                        |  19 ++-
hw/i386/sgx-epc.c                        |   3 +-
hw/i386/x86.c                            | 119 +++++++---------
hw/ide/ide-dev.c                         |   3 +-
hw/input/stellaris_gamepad.c             |   2 +-
hw/intc/apic_common.c                    |   3 +-
hw/intc/arm_gicv3_common.c               |   2 +-
hw/intc/rx_icu.c                         |   4 +-
hw/loongarch/virt.c                      |  87 ++++++------
hw/mem/nvdimm.c                          |  11 +-
hw/mem/pc-dimm.c                         |   3 +-
hw/microblaze/petalogix_s3adsp1800_mmu.c |  19 +--
hw/misc/arm_sysctl.c                     |   4 +-
hw/misc/aspeed_lpc.c                     |  73 ++++++----
hw/misc/aspeed_sdmc.c                    |   3 +-
hw/misc/mps2-scc.c                       |   2 +-
hw/misc/npcm7xx_mft.c                    |   3 +-
hw/misc/xlnx-versal-trng.c               |   3 +-
hw/net/ne2000-isa.c                      |   3 +-
hw/net/rocker/rocker.c                   |   2 +-
hw/net/virtio-net.c                      |   2 +-
hw/nvme/ctrl.c                           |  29 ++--
hw/nvme/nguid.c                          |   3 +-
hw/nvram/xlnx-bbram.c                    |   3 +-
hw/nvram/xlnx-efuse.c                    |   5 +-
hw/nvram/xlnx-versal-efuse-ctrl.c        |   2 +-
hw/pci-bridge/pci_expander_bridge.c      |   3 +-
hw/pci-host/i440fx.c                     |  35 +++--
hw/pci-host/pnv_phb3.c                   |   5 +-
hw/pci-host/pnv_phb4.c                   |   5 +-
hw/pci-host/q35.c                        |   9 +-
hw/pci/pci.c                             |   3 +-
hw/ppc/spapr_caps.c                      |  39 ++---
hw/ppc/spapr_drc.c                       |   5 +-
hw/ppc/spapr_rtc.c                       |  18 ++-
hw/remote/vfio-user-obj.c                |   5 +-
hw/riscv/microchip_pfsoc.c               |   3 +-
hw/riscv/riscv_hart.c                    |   6 +-
hw/riscv/virt.c                          |  54 ++++---
hw/rtc/mc146818rtc.c                     |  16 ++-
hw/s390x/ccw-device.c                    |   3 +-
hw/s390x/css.c                           |   5 +-
hw/s390x/s390-pci-bus.c                  |   3 +-
hw/s390x/s390-virtio-ccw.c               |   4 +-
hw/s390x/sclpcpi.c                       |   8 +-
hw/s390x/virtio-ccw-mem.c                |   3 +-
hw/sensor/adm1266.c                      |   3 +-
hw/sensor/adm1272.c                      |   9 +-
hw/sensor/emc141x.c                      |   9 +-
hw/sensor/isl_pmbus_vr.c                 |  19 +--
hw/sensor/lsm303dlhc_mag.c               |   9 +-
hw/sensor/max34451.c                     |   5 +-
hw/sensor/tmp105.c                       |   3 +-
hw/sensor/tmp421.c                       |   9 +-
hw/usb/dev-storage-classic.c             |   3 +-
hw/vfio-user/pci.c                       |   5 +-
hw/vfio/pci-quirks.c                     |   3 +-
hw/virtio/virtio-balloon.c               |  89 +++++-------
hw/virtio/virtio-iommu-pci.c             |   2 +-
hw/virtio/virtio-mem-pci.c               |   3 +-
hw/virtio/virtio-mem.c                   |  18 +--
hw/xen/xen-pvh-common.c                  |   9 +-
iothread.c                               |   9 +-
migration/options.c                      |   4 +-
net/colo-compare.c                       |   7 +-
net/dump.c                               |   6 +-
net/filter-buffer.c                      |   3 +-
net/filter.c                             |  10 +-
qom/object.c                             | 237 ++++++++++++++-----------------
qom/qom-qmp-cmds.c                       |  32 +++--
system/bootdevice.c                      |   3 +-
system/memory.c                          |  40 ++----
target/arm/cpu64.c                       |  11 +-
target/arm/kvm.c                         |   3 +-
target/arm/tcg/cpu64.c                   |   5 +-
target/i386/cpu.c                        |  26 ++--
target/i386/kvm/kvm.c                    |  38 ++---
target/i386/kvm/tdx.c                    |   4 +-
target/i386/sev.c                        |  31 ++--
target/i386/whpx/whpx-all.c              | 102 +++++--------
target/ppc/compat.c                      |   3 +-
target/riscv/cpu.c                       |  46 +++---
target/riscv/kvm/kvm-cpu.c               |   7 +-
target/riscv/tcg/tcg-cpu.c               |   7 +-
target/s390x/cpu-system.c                |   4 +-
target/s390x/cpu_models.c                |   5 +-
target/sparc/cpu.c                       |   3 +-
tests/unit/check-qom-proplist.c          | 100 ++++++++++---
tests/unit/test-qdev-global-props.c      |  11 +-
tests/unit/test-qdev.c                   |   2 +-
ui/console.c                             |   3 +-
ui/dbus.c                                |  10 +-
ui/input-linux.c                         |  11 +-
util/thread-context.c                    |   7 +-
util/uuid.c                              |   4 +
hw/display/apple-gfx-mmio.m              |   2 +-
hw/display/apple-gfx-pci.m               |   2 +-
hw/display/apple-gfx.m                   |   7 +-
qapi/meson.build                         |   4 +
scripts/qapi/backend.py                  |   4 +-
scripts/qapi/gen.py                      |   2 +-
scripts/qapi/introspect.py               |  13 +-
scripts/qapi/type_infos.py               | 182 ++++++++++++++++++++++++
tests/include/meson.build                |   2 +
tests/meson.build                        |   6 +
tests/qapi-schema/meson.build            |   1 +
159 files changed, 1887 insertions(+), 1272 deletions(-)
[PATCH 00/54] qom/qdev: associate properties with QAPI schema types
Posted by Marc-André Lureau 2 weeks, 1 day ago
Hi,

This series connects QOM and qdev properties to the QAPI type system, so
that management tools can discover the QAPI schema type of each object
property.

Today, QOM properties carry a free-form "type" string ("bool", "uint32",
"OnOffAuto", ..) that has no formal link to the QAPI schema exposed by
query-qmp-schema. Management tools must maintain ad-hoc mappings or rely
on naming conventions to figure out how to interpret property values.

This series adds:
  - A new QAPITypeInfo struct that pairs a property with its QAPI schema
    type name, enum lookup table, and list-element type.

  - A QAPI code generator (qapi-type-infos) that emits a QAPITypeInfo
    instance for every schema-defined type, including the mapping
    between internal C names and the schema name visible to clients.

  - A "qapi-type" field in the ObjectPropertyInfo and
    ObjectPropertyValue QMP structs, populated from the QAPITypeInfo
    when present giving clients a cross-reference into query-qmp-schema
    output.

  - Conversion of all PropertyInfo definitions from the old
    .type/.enum_table strings to the new .qapi_type pointer.

  - Replacement of the generic qdev_prop_array with typed per-element
    array PropertyInfos, removing the arrayinfo/arrayfieldsize
    indirection from struct Property.

  - Removal of the deprecated PropertyInfo.type and .enum_table fields,
    and of the old object_property_add_enum/add_tm APIs.

Along the way, a few pre-existing type mismatches in property
definitions are fixed, the "struct tm" RTC property is replaced with a
proper QAPI StructTm type etc. Introducing more specific types or a
"typedef" to QAPI could help provide better associated type informations
than plain "str" in many cases, for example.

Comments welcome!

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
Marc-André Lureau (54):
      qapi: add QAPITypeInfo struct definition
      qapi/introspect: expose the type name map
      qapi: add type-infos generator
      qapi/backend: wire up type-infos generation
      qapi/gen: fix _module_basename for multi-dash 'what' parameters
      meson: add qapi-type-infos-*.c/h to build
      qom: add qapi_type field to ObjectProperty
      qapi/qom: add qapi-type field to ObjectPropertyInfo
      qom/qmp: populate qapi-type in QMP handlers
      qom: add QAPI-aware property registration
      tests: update check-qom-proplist for QAPI-aware property registration
      qom: convert enum properties to QAPI-aware registration
      qom: remove old enum property registration API
      qom: convert struct properties to QAPI-aware registration
      qom: convert struct properties to QAPI-aware registration
      x86: convert OnOffAuto properties to QAPI-aware registration
      microvm: convert OnOffAuto properties to QAPI-aware registration
      pc: convert OnOffAuto vmport property to QAPI-aware registration
      arm/virt: convert OnOffAuto acpi property to QAPI-aware registration
      riscv/virt: convert OnOffAuto properties to QAPI-aware registration
      loongarch/virt: convert OnOffAuto properties to QAPI-aware registration
      hostmem-file: convert OnOffAuto rom property to QAPI-aware registration
      sev: convert OnOffAuto legacy-vm-type property to QAPI-aware registration
      whpx: convert OnOffAuto hyperv property to QAPI-aware registration
      whpx: convert OnOffAuto arch properties to QAPI-aware registration
      accel/kvm: convert OnOffSplit property to QAPI-aware registration
      whpx: convert OnOffSplit property to QAPI-aware registration
      ppc/spapr-caps: convert to QAPI-aware property registration
      system/memory: fix "priority" property typename
      hw/mem/nvdimm: fix "size" property typename
      qom: convert scalar properties to QAPI-aware registration
      i386/cpu: convert strList property to QAPI-aware registration
      accel/hvf: convert OnOffSplit property to QAPI-aware registration
      i386/x86: convert SgxEPCList property to QAPI-aware registration
      virtio-balloon: convert guest-stats property to QAPI type
      qom: replace object_property_add_tm with StructTm QAPI type
      hw/nvdimm: convert UUID property to QAPI-aware registration
      hw/s390-virtio-ccw: convert loadparm property to QAPI-aware registration
      hw/ppc/spapr_drc: convert fdt property to QAPI-aware registration
      spdm-socket: convert SpdmTransportType to QAPI enum
      hw/pci: change the busnr type to uint8
      qdev: add qapi_type field to PropertyInfo with fallback registration
      qdev: convert core PropertyInfo definitions to use qapi_type
      qdev: convert system PropertyInfo definitions to use qapi_type
      hw: convert device-local PropertyInfo definitions to use qapi_type
      target/riscv: fix incorrect QAPI types and u8 casting
      target/riscv: convert PropertyInfo definitions to use qapi_type
      qdev: convert PropertyInfo definitions to use qapi_type
      qdev: introduce typed array PropertyInfos
      qdev: simplify DEFINE_PROP_ARRAY and remove generic array PropertyInfo
      qdev: remove deprecated PropertyInfo.type and .enum_table fields
      memory: use object_property_add_link for container property
      qom: drop free-form property typename registration
      qom: use QAPITypeInfo in object_property_get_enum

 docs/devel/qapi-code-gen.rst             |  90 ++++++++++++
 docs/interop/virtio-balloon-stats.rst    |  22 +--
 meson.build                              |   1 +
 qapi/common.json                         |  28 ++++
 qapi/machine.json                        |  92 ++++++++++++
 qapi/pragma.json                         |   1 +
 qapi/qom.json                            |  12 ++
 qapi/sockets.json                        |  20 +++
 hw/core/qdev-prop-internal.h             |  20 +++
 hw/display/apple-gfx.h                   |   1 +
 include/hw/block/block.h                 |   2 +-
 include/hw/core/qdev-properties-system.h |   2 +
 include/hw/core/qdev-properties.h        |  29 ++--
 include/qapi/qapi-type-info.h            |  19 +++
 include/qemu/uuid.h                      |   4 +
 include/qom/object.h                     | 162 ++++++++++++---------
 include/system/spdm-socket.h             |  28 ++--
 accel/hvf/hvf-all.c                      |  29 ++--
 accel/kvm/kvm-all.c                      |  31 ++--
 accel/nitro/nitro-accel.c                |   3 +-
 accel/tcg/tcg-all.c                      |   3 +-
 accel/whpx/whpx-common.c                 |  58 +++-----
 authz/list.c                             |  14 +-
 backends/cryptodev.c                     |   7 +-
 backends/hostmem-file.c                  |  33 ++---
 backends/hostmem-memfd.c                 |   3 +-
 backends/hostmem.c                       |  20 +--
 backends/spdm-socket.c                   |  25 ++--
 backends/tpm/tpm_util.c                  |   3 +-
 block/throttle-groups.c                  |  10 +-
 chardev/char-socket.c                    |   3 +-
 crypto/secret_common.c                   |  12 +-
 crypto/secret_keyring.c                  |   9 +-
 crypto/tlscreds.c                        |  12 +-
 event-loop-base.c                        |   7 +-
 hw/acpi/ich9.c                           |   3 +-
 hw/acpi/pci.c                            |   5 +-
 hw/arm/virt.c                            |  31 ++--
 hw/block/xen-block.c                     |   3 +-
 hw/core/clock.c                          |   3 +-
 hw/core/machine-qmp-cmds.c               |   3 +-
 hw/core/machine.c                        |  13 +-
 hw/core/qdev-properties-system.c         |  97 ++++++-------
 hw/core/qdev-properties.c                | 168 ++++++++++++++--------
 hw/cpu/core.c                            |  10 +-
 hw/cxl/cxl-host.c                        |   6 +-
 hw/gpio/aspeed_gpio.c                    |   5 +-
 hw/gpio/aspeed_sgpio.c                   |   3 +-
 hw/gpio/pca9552.c                        |   6 +-
 hw/gpio/pca9554.c                        |   6 +-
 hw/gpio/stm32l4x5_gpio.c                 |   5 +-
 hw/i386/microvm.c                        |  84 +++++------
 hw/i386/pc.c                             |  32 ++---
 hw/i386/pc_piix.c                        |  19 ++-
 hw/i386/sgx-epc.c                        |   3 +-
 hw/i386/x86.c                            | 119 +++++++---------
 hw/ide/ide-dev.c                         |   3 +-
 hw/input/stellaris_gamepad.c             |   2 +-
 hw/intc/apic_common.c                    |   3 +-
 hw/intc/arm_gicv3_common.c               |   2 +-
 hw/intc/rx_icu.c                         |   4 +-
 hw/loongarch/virt.c                      |  87 ++++++------
 hw/mem/nvdimm.c                          |  11 +-
 hw/mem/pc-dimm.c                         |   3 +-
 hw/microblaze/petalogix_s3adsp1800_mmu.c |  19 +--
 hw/misc/arm_sysctl.c                     |   4 +-
 hw/misc/aspeed_lpc.c                     |  73 ++++++----
 hw/misc/aspeed_sdmc.c                    |   3 +-
 hw/misc/mps2-scc.c                       |   2 +-
 hw/misc/npcm7xx_mft.c                    |   3 +-
 hw/misc/xlnx-versal-trng.c               |   3 +-
 hw/net/ne2000-isa.c                      |   3 +-
 hw/net/rocker/rocker.c                   |   2 +-
 hw/net/virtio-net.c                      |   2 +-
 hw/nvme/ctrl.c                           |  29 ++--
 hw/nvme/nguid.c                          |   3 +-
 hw/nvram/xlnx-bbram.c                    |   3 +-
 hw/nvram/xlnx-efuse.c                    |   5 +-
 hw/nvram/xlnx-versal-efuse-ctrl.c        |   2 +-
 hw/pci-bridge/pci_expander_bridge.c      |   3 +-
 hw/pci-host/i440fx.c                     |  35 +++--
 hw/pci-host/pnv_phb3.c                   |   5 +-
 hw/pci-host/pnv_phb4.c                   |   5 +-
 hw/pci-host/q35.c                        |   9 +-
 hw/pci/pci.c                             |   3 +-
 hw/ppc/spapr_caps.c                      |  39 ++---
 hw/ppc/spapr_drc.c                       |   5 +-
 hw/ppc/spapr_rtc.c                       |  18 ++-
 hw/remote/vfio-user-obj.c                |   5 +-
 hw/riscv/microchip_pfsoc.c               |   3 +-
 hw/riscv/riscv_hart.c                    |   6 +-
 hw/riscv/virt.c                          |  54 ++++---
 hw/rtc/mc146818rtc.c                     |  16 ++-
 hw/s390x/ccw-device.c                    |   3 +-
 hw/s390x/css.c                           |   5 +-
 hw/s390x/s390-pci-bus.c                  |   3 +-
 hw/s390x/s390-virtio-ccw.c               |   4 +-
 hw/s390x/sclpcpi.c                       |   8 +-
 hw/s390x/virtio-ccw-mem.c                |   3 +-
 hw/sensor/adm1266.c                      |   3 +-
 hw/sensor/adm1272.c                      |   9 +-
 hw/sensor/emc141x.c                      |   9 +-
 hw/sensor/isl_pmbus_vr.c                 |  19 +--
 hw/sensor/lsm303dlhc_mag.c               |   9 +-
 hw/sensor/max34451.c                     |   5 +-
 hw/sensor/tmp105.c                       |   3 +-
 hw/sensor/tmp421.c                       |   9 +-
 hw/usb/dev-storage-classic.c             |   3 +-
 hw/vfio-user/pci.c                       |   5 +-
 hw/vfio/pci-quirks.c                     |   3 +-
 hw/virtio/virtio-balloon.c               |  89 +++++-------
 hw/virtio/virtio-iommu-pci.c             |   2 +-
 hw/virtio/virtio-mem-pci.c               |   3 +-
 hw/virtio/virtio-mem.c                   |  18 +--
 hw/xen/xen-pvh-common.c                  |   9 +-
 iothread.c                               |   9 +-
 migration/options.c                      |   4 +-
 net/colo-compare.c                       |   7 +-
 net/dump.c                               |   6 +-
 net/filter-buffer.c                      |   3 +-
 net/filter.c                             |  10 +-
 qom/object.c                             | 237 ++++++++++++++-----------------
 qom/qom-qmp-cmds.c                       |  32 +++--
 system/bootdevice.c                      |   3 +-
 system/memory.c                          |  40 ++----
 target/arm/cpu64.c                       |  11 +-
 target/arm/kvm.c                         |   3 +-
 target/arm/tcg/cpu64.c                   |   5 +-
 target/i386/cpu.c                        |  26 ++--
 target/i386/kvm/kvm.c                    |  38 ++---
 target/i386/kvm/tdx.c                    |   4 +-
 target/i386/sev.c                        |  31 ++--
 target/i386/whpx/whpx-all.c              | 102 +++++--------
 target/ppc/compat.c                      |   3 +-
 target/riscv/cpu.c                       |  46 +++---
 target/riscv/kvm/kvm-cpu.c               |   7 +-
 target/riscv/tcg/tcg-cpu.c               |   7 +-
 target/s390x/cpu-system.c                |   4 +-
 target/s390x/cpu_models.c                |   5 +-
 target/sparc/cpu.c                       |   3 +-
 tests/unit/check-qom-proplist.c          | 100 ++++++++++---
 tests/unit/test-qdev-global-props.c      |  11 +-
 tests/unit/test-qdev.c                   |   2 +-
 ui/console.c                             |   3 +-
 ui/dbus.c                                |  10 +-
 ui/input-linux.c                         |  11 +-
 util/thread-context.c                    |   7 +-
 util/uuid.c                              |   4 +
 hw/display/apple-gfx-mmio.m              |   2 +-
 hw/display/apple-gfx-pci.m               |   2 +-
 hw/display/apple-gfx.m                   |   7 +-
 qapi/meson.build                         |   4 +
 scripts/qapi/backend.py                  |   4 +-
 scripts/qapi/gen.py                      |   2 +-
 scripts/qapi/introspect.py               |  13 +-
 scripts/qapi/type_infos.py               | 182 ++++++++++++++++++++++++
 tests/include/meson.build                |   2 +
 tests/meson.build                        |   6 +
 tests/qapi-schema/meson.build            |   1 +
 159 files changed, 1887 insertions(+), 1272 deletions(-)
---
base-commit: ee7eb612be8f8886d48c1d0c1f1c65e495138f83
change-id: 20260510-qom-qapi-fbe0f5060c3f

Best regards,
--  
Marc-André Lureau <marcandre.lureau@redhat.com>