This is the final installment of the qdev property cleanup. It includes the following parts:
* various bits of state are moved from DeviceState to Object: state (aka realized), reset, static properties, and the simple "type" property * bus properties are replaced with superclass properties The series has many parts; they are logically separate, but because of dependencies it would take too much time to submit them one by one. In fact, to avoid conflicts, and because his patchset does not apply anymore, I took the liberty to include here Michael Roth's patches for uint*_t and int*_t visitors. Patches 1 to 5 are small preparatory changes in QOM. Patches 6 and 7 are bonus bugfixes. Patches 8 to 12 refactor bus properties. Patches 13 to 17 are Michael's patches + two cleanups. Patches 18 to 21 push static properties from qdev to Object. As you can see from the diffstat below, this has to touch a lot of files. Patches 22 to 24 implement the realized property and reimplement qdev's object lifecycle in terms of realize/unrealize. v1->v2: reorganized for bisectability, added SoB for Andreas Michael Roth (3): qapi: add Visitor interfaces for uint*_t and int*_t qdev: use int32_t container for devfn property qdev: switch property accessors to fixed-width visitor interfaces Paolo Bonzini (21): qom: add object_class_get_parent qom: add object_child_foreach qom: add class_base_init qom: make Object a type qdev: push "type" property up to Object qdev: fix -device foo,? qdev: use object_property_print in info qtree qdev: move bus properties to a separate global qdev: do not propagate properties to subclasses qdev: move bus properties to abstract superclasses qdev: clean up global properties qdev: remove qdev_prop_set_defaults qdev: remove PropertyInfo range checking qdev: remove qdev_prop_exists qdev: push state up to Object qdev: generalize properties to Objects qdev: move bulk of qdev-properties.c to qom/object.c qom: push static properties to Object qom: add realized property qdev: implement qdev_init on top of realize qdev: split part of device_finalize to device_unrealize 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_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 | 4 +- hw/hpet.c | 2 +- hw/i2c.c | 10 +- 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 | 16 +- hw/integratorcp.c | 3 +- hw/intel-hda.c | 12 +- 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 | 9 +- 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_piix.c | 12 +- hw/pc_sysfw.c | 2 +- hw/pci.c | 24 +- hw/pci.h | 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 | 26 +- hw/qdev-monitor.c | 46 ++- hw/qdev-properties.c | 683 ++++++----------------------------------- hw/qdev.c | 152 ++++----- hw/qdev.h | 109 +------ hw/qxl.c | 4 +- hw/rtl8139.c | 2 +- hw/s390-virtio-bus.c | 12 +- hw/sb16.c | 2 +- hw/scsi-bus.c | 16 +- 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 | 10 +- 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 | 11 +- hw/usb/dev-audio.c | 2 +- hw/usb/dev-network.c | 2 +- hw/usb/dev-serial.c | 4 +- hw/usb/dev-smartcard-reader.c | 12 +- 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 | 12 +- 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 | 182 ++++++++++- qapi/qapi-visit-core.c | 139 +++++++++ qapi/qapi-visit-core.h | 16 + qom/object.c | 681 ++++++++++++++++++++++++++++++++++++++-- 147 files changed, 1427 insertions(+), 1102 deletions(-) -- 1.7.9.3