Hello Anthony and Paolo, This is our QOM remainder from the freeze, please review.
v1 -> v2: * Reverted Object state enum to bool realized, as requested by Anthony. This means we have no way of detecting if an object was initialized, but that feature was unused so far. * Use gtk-doc Returns: in object_is_realized() documentation. * Reordered realize next, so that it can be applied w/o static properties in case issues remain with my get_id workaround. * Reverted object_get_realize() to use bool realized directly. * Fixed typo in object_unrealize_children() documentation. * Dropped get_id patch nack'ed by Anthony. * Rebased following patches, resorting to "" or object_get_typename(). * Dropped two hunks in QERR_... patch mistakenly added by Paolo. One observation I make is that object_[un]realize_children() are made public. Hard to judge whether that is really necessary in lack of follow-up patches. I thus left that unchanged; for CPU reset I was instructed not to expose such base methods but to save them in the class (e.g., ARMCPUClass::parent_reset). That could still be cleaned up in a later patch. Available for viewing/testing at: https://github.com/afaerber/qemu-cpu/commits/realize Regards, Andreas Cc: Anthony Liguori <anth...@codemonkey.ws> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: Jan Kiszka <jan.kis...@siemens.com> (FYI) Andreas Färber (2): make_device_config.sh: Fix target path in generated dependency file qom: Add "realized" property Paolo Bonzini (4): qdev: Push state up to Object qdev: Generalize properties to Objects qdev: Move bulk of qdev-properties.c to qom/object-properties.c qom: Push static properties to Object Peter Maydell (1): qom: Add QERR_PROPERTY_SET_AFTER_REALIZE hw/9pfs/virtio-9p-device.c | 2 +- hw/a15mpcore.c | 3 +- hw/a9mpcore.c | 2 +- hw/ac97.c | 2 +- hw/acpi_piix4.c | 2 +- hw/apic_common.c | 2 +- hw/applesmc.c | 2 +- hw/arm11mpcore.c | 6 +- hw/arm_gic.c | 2 +- hw/arm_l2x0.c | 2 +- hw/arm_mptimer.c | 2 +- hw/arm_sysctl.c | 2 +- hw/arm_timer.c | 3 +- hw/armv7m.c | 3 +- hw/armv7m_nvic.c | 2 +- hw/cadence_gem.c | 2 +- hw/ccid-card-emulated.c | 2 +- hw/ccid-card-passthru.c | 2 +- hw/cs4231.c | 2 +- hw/cs4231a.c | 2 +- hw/debugcon.c | 3 +- hw/ds1225y.c | 2 +- hw/e1000.c | 2 +- hw/eccmemctl.c | 2 +- hw/eepro100.c | 2 +- hw/escc.c | 2 +- hw/esp.c | 2 +- hw/etraxfs_eth.c | 3 +- hw/etraxfs_pic.c | 3 +- hw/exynos4210_combiner.c | 2 +- hw/exynos4210_gic.c | 3 +- hw/exynos4210_uart.c | 2 +- hw/fdc.c | 6 +- hw/fw_cfg.c | 2 +- hw/g364fb.c | 2 +- hw/grlib_apbuart.c | 3 +- hw/grlib_gptimer.c | 2 +- hw/grlib_irqmp.c | 2 +- hw/gus.c | 2 +- hw/hda-audio.c | 6 +- hw/hpet.c | 2 +- hw/i2c.c | 2 +- hw/i82374.c | 2 +- hw/i82378.c | 2 +- hw/i8254.c | 2 +- hw/i8259_common.c | 2 +- hw/ide/ahci.c | 2 +- hw/ide/cmd646.c | 3 +- hw/ide/isa.c | 2 +- hw/ide/qdev.c | 8 +- hw/integratorcp.c | 3 +- hw/intel-hda.c | 4 +- hw/ioh3420.c | 2 +- hw/ivshmem.c | 2 +- hw/kvm/i8254.c | 2 +- hw/kvm/ioapic.c | 2 +- hw/lan9118.c | 2 +- hw/lance.c | 2 +- hw/lm32_sys.c | 2 +- hw/lm32_timer.c | 2 +- hw/m48t59.c | 4 +- hw/marvell_88w8618_audio.c | 2 +- hw/mc146818rtc.c | 2 +- hw/milkymist-minimac2.c | 2 +- hw/milkymist-softusb.c | 2 +- hw/milkymist-sysctl.c | 2 +- hw/milkymist-vgafb.c | 2 +- hw/mipsnet.c | 2 +- hw/musicpal.c | 2 +- hw/nand.c | 2 +- hw/ne2000-isa.c | 3 +- hw/ne2000.c | 2 +- hw/omap_gpio.c | 4 +- hw/omap_i2c.c | 2 +- hw/omap_intc.c | 4 +- hw/onenand.c | 2 +- hw/opencores_eth.c | 2 +- hw/parallel.c | 3 +- hw/pc_sysfw.c | 2 +- hw/pci.c | 2 +- hw/pci_bridge_dev.c | 2 +- hw/pcnet-pci.c | 2 +- hw/pcspk.c | 2 +- hw/pl041.c | 2 +- hw/pxa2xx.c | 2 +- hw/pxa2xx_dma.c | 2 +- hw/pxa2xx_gpio.c | 2 +- hw/pxa2xx_timer.c | 4 +- hw/qdev-addr.c | 22 +- hw/qdev-monitor.c | 4 +- hw/qdev-properties.c | 602 +++++++---------------------------------- hw/qdev.c | 78 +----- hw/qdev.h | 98 +------- hw/qxl.c | 4 +- hw/rtl8139.c | 2 +- hw/s390-virtio-bus.c | 12 +- hw/sb16.c | 2 +- hw/scsi-bus.c | 2 +- hw/scsi-disk.c | 8 +- hw/scsi-generic.c | 2 +- hw/serial.c | 2 +- hw/slavio_timer.c | 2 +- hw/smbus_eeprom.c | 3 +- hw/smc91c111.c | 2 +- hw/spapr_llan.c | 3 +- hw/spapr_pci.c | 3 +- hw/spapr_vio.c | 2 +- hw/spapr_vscsi.c | 3 +- hw/spapr_vty.c | 3 +- hw/sparc32_dma.c | 2 +- hw/spitz.c | 4 +- hw/stellaris_enet.c | 3 +- hw/strongarm.c | 2 +- hw/sun4m.c | 6 +- hw/sun4m_iommu.c | 2 +- hw/sun4u.c | 6 +- hw/tcx.c | 2 +- hw/usb/bus.c | 2 +- hw/usb/dev-audio.c | 2 +- hw/usb/dev-network.c | 2 +- hw/usb/dev-serial.c | 4 +- hw/usb/dev-smartcard-reader.c | 4 +- hw/usb/dev-storage.c | 2 +- hw/usb/hcd-ehci.c | 4 +- hw/usb/hcd-ohci.c | 4 +- hw/usb/hcd-uhci.c | 12 +- hw/usb/hcd-xhci.c | 2 +- hw/usb/host-linux.c | 2 +- hw/usb/redirect.c | 2 +- hw/virtio-console.c | 6 +- hw/virtio-pci.c | 10 +- hw/virtio-serial-bus.c | 2 +- hw/vmmouse.c | 2 +- hw/vt82c686.c | 2 +- hw/xgmac.c | 2 +- hw/xilinx_axidma.c | 3 +- hw/xilinx_axienet.c | 3 +- hw/xilinx_ethlite.c | 3 +- hw/xilinx_intc.c | 3 +- hw/xilinx_timer.c | 3 +- hw/xio3130_downstream.c | 2 +- hw/xio3130_upstream.c | 2 +- hw/zaurus.c | 2 +- include/qemu/object.h | 130 +++++++++ qerror.c | 4 + qerror.h | 3 + qom/Makefile.objs | 2 +- qom/object-properties.c | 469 ++++++++++++++++++++++++++++++++ qom/object.c | 116 ++++++++ scripts/make_device_config.sh | 2 +- 150 files changed, 1015 insertions(+), 900 deletions(-) create mode 100644 qom/object-properties.c -- 1.7.7