This is the 3rd QOM series. All known issues have been resolved. This has been extensively tested (including for bisectability). I think this is ready to apply.
The goal of this series is to make DeviceState a first class QOM base class. The result is that you can object_new(TYPE_E1000) and have a functioning device. qdev_create() and qdev_free() are now trivialized as QOM wrappers. Patch 8/23 is an automated touch everything patch. I decided to leave it as one big patch because this is entirely programmatic. There's no intelligence in this patch so I think it's easier to review quickly as one big change. The other notable feature of this series it that properties have been moved to the Object base class. This means that other subsystems can begin using QOM. This is the last touch every file in the tree series. b/Makefile.objs | 4 b/hw/9pfs/virtio-9p-device.c | 16 b/hw/a9mpcore.c | 40 - b/hw/ac97.c | 18 b/hw/acpi_piix4.c | 20 b/hw/ads7846.c | 11 b/hw/alpha_typhoon.c | 14 b/hw/apb_pci.c | 41 - b/hw/apic.c | 10 b/hw/apic_common.c | 15 b/hw/apic_internal.h | 1 b/hw/applesmc.c | 28 - b/hw/arm11mpcore.c | 28 - b/hw/arm_l2x0.c | 24 b/hw/arm_mptimer.c | 28 - b/hw/arm_sysctl.c | 18 b/hw/arm_timer.c | 35 - b/hw/armv7m.c | 14 b/hw/armv7m_nvic.c | 32 - b/hw/bitbang_i2c.c | 14 b/hw/bonito.c | 32 - b/hw/ccid-card-emulated.c | 35 - b/hw/ccid-card-passthru.c | 28 - b/hw/ccid.h | 1 b/hw/cirrus_vga.c | 30 - b/hw/cs4231.c | 18 b/hw/cs4231a.c | 30 - b/hw/debugcon.c | 26 b/hw/dec_pci.c | 40 - b/hw/ds1225y.c | 16 b/hw/ds1338.c | 11 b/hw/e1000.c | 20 b/hw/eccmemctl.c | 18 b/hw/eepro100.c | 83 +-- b/hw/empty_slot.c | 11 b/hw/es1370.c | 16 b/hw/escc.c | 18 b/hw/esp.c | 18 b/hw/etraxfs_eth.c | 14 b/hw/etraxfs_pic.c | 14 b/hw/etraxfs_ser.c | 16 b/hw/etraxfs_timer.c | 11 b/hw/fdc.c | 76 +- b/hw/fw_cfg.c | 20 b/hw/g364fb.c | 20 b/hw/grackle_pci.c | 26 b/hw/grlib_apbuart.c | 14 b/hw/grlib_gptimer.c | 16 b/hw/grlib_irqmp.c | 16 b/hw/gt64xxx.c | 22 b/hw/gus.c | 32 - b/hw/hda-audio.c | 36 - b/hw/highbank.c | 18 b/hw/hpet.c | 20 b/hw/i2c.c | 23 b/hw/i2c.h | 3 b/hw/i82374.c | 22 b/hw/i82378.c | 22 b/hw/i8254.c | 30 - b/hw/i8259.c | 11 b/hw/i8259_common.c | 13 b/hw/i8259_internal.h | 1 b/hw/ide/ahci.c | 24 b/hw/ide/cmd646.c | 14 b/hw/ide/ich.c | 15 b/hw/ide/isa.c | 30 - b/hw/ide/piix.c | 44 - b/hw/ide/qdev.c | 95 ++- b/hw/ide/via.c | 14 b/hw/integratorcp.c | 25 b/hw/intel-hda.c | 39 - b/hw/intel-hda.h | 1 b/hw/ioapic.c | 14 b/hw/ioapic_common.c | 10 b/hw/ioapic_internal.h | 1 b/hw/ioh3420.c | 20 b/hw/isa-bus.c | 38 - b/hw/isa.h | 2 b/hw/ivshmem.c | 16 b/hw/kvm/apic.c | 5 b/hw/kvm/clock.c | 16 b/hw/kvm/i8259.c | 8 b/hw/kvm/ioapic.c | 20 b/hw/lan9118.c | 18 b/hw/lance.c | 20 b/hw/lm32_juart.c | 18 b/hw/lm32_pic.c | 16 b/hw/lm32_sys.c | 18 b/hw/lm32_timer.c | 18 b/hw/lm32_uart.c | 18 b/hw/lm832x.c | 14 b/hw/lsi53c895a.c | 17 b/hw/m48t59.c | 46 - b/hw/macio.c | 11 b/hw/marvell_88w8618_audio.c | 18 b/hw/max111x.c | 22 b/hw/max7310.c | 16 b/hw/mc146818rtc.c | 34 - b/hw/milkymist-ac97.c | 16 b/hw/milkymist-hpdmc.c | 16 b/hw/milkymist-memcard.c | 16 b/hw/milkymist-minimac2.c | 18 b/hw/milkymist-pfpu.c | 16 b/hw/milkymist-softusb.c | 18 b/hw/milkymist-sysctl.c | 18 b/hw/milkymist-tmu2.c | 16 b/hw/milkymist-uart.c | 18 b/hw/milkymist-vgafb.c | 18 b/hw/mips_malta.c | 14 b/hw/mipsnet.c | 20 b/hw/mpc8544_guts.c | 11 b/hw/mst_fpga.c | 16 b/hw/musicpal.c | 117 ++-- b/hw/nand.c | 18 b/hw/ne2000-isa.c | 26 b/hw/ne2000.c | 16 b/hw/omap_gpio.c | 32 - b/hw/omap_intc.c | 32 - b/hw/onenand.c | 16 b/hw/opencores_eth.c | 18 b/hw/parallel.c | 28 - b/hw/pc.c | 18 b/hw/pc_piix.c | 6 b/hw/pci.c | 41 - b/hw/pci.h | 2 b/hw/pckbd.c | 16 b/hw/pcnet-pci.c | 18 b/hw/piix4.c | 18 b/hw/piix_pci.c | 74 +- b/hw/pl011.c | 24 b/hw/pl022.c | 11 b/hw/pl031.c | 16 b/hw/pl041.c | 20 b/hw/pl050.c | 28 - b/hw/pl061.c | 28 - b/hw/pl080.c | 32 - b/hw/pl110.c | 48 + b/hw/pl181.c | 18 b/hw/pl190.c | 18 b/hw/ppc4xx_pci.c | 28 - b/hw/ppc_prep.c | 2 b/hw/ppce500_pci.c | 28 - b/hw/ppce500_spin.c | 11 b/hw/prep_pci.c | 26 b/hw/pxa2xx.c | 56 +- b/hw/pxa2xx_dma.c | 18 b/hw/pxa2xx_gpio.c | 16 b/hw/pxa2xx_pic.c | 16 b/hw/pxa2xx_timer.c | 36 - b/hw/qdev-addr.c | 6 b/hw/qdev-monitor.c | 588 ++++++++++++++++++++++ b/hw/qdev-properties.c | 57 +- b/hw/qdev.c | 1144 +++---------------------------------------- b/hw/qdev.h | 367 +------------ b/hw/qxl.c | 40 - b/hw/realview.c | 11 b/hw/realview_gic.c | 11 b/hw/rtl8139.c | 18 b/hw/s390-virtio-bus.c | 137 ++--- b/hw/s390-virtio-bus.h | 19 b/hw/sb16.c | 34 - b/hw/sbi.c | 16 b/hw/scsi-bus.c | 21 b/hw/scsi-disk.c | 116 ++-- b/hw/scsi-generic.c | 28 - b/hw/scsi.h | 1 b/hw/serial.c | 30 - b/hw/sga.c | 14 b/hw/sh_pci.c | 22 b/hw/slavio_intctl.c | 16 b/hw/slavio_misc.c | 27 - b/hw/slavio_timer.c | 18 b/hw/smbus.c | 6 b/hw/smbus.h | 2 b/hw/smbus_eeprom.c | 22 b/hw/smc91c111.c | 18 b/hw/spapr_llan.c | 14 b/hw/spapr_pci.c | 22 b/hw/spapr_vio.c | 37 - b/hw/spapr_vio.h | 1 b/hw/spapr_vscsi.c | 14 b/hw/spapr_vty.c | 14 b/hw/sparc32_dma.c | 18 b/hw/spitz.c | 60 +- b/hw/ssd0303.c | 14 b/hw/ssd0323.c | 11 b/hw/ssi-sd.c | 11 b/hw/ssi.c | 26 b/hw/ssi.h | 2 b/hw/stellaris.c | 44 - b/hw/stellaris_enet.c | 14 b/hw/strongarm.c | 98 ++- b/hw/sun4c_intctl.c | 16 b/hw/sun4m.c | 50 + b/hw/sun4m_iommu.c | 18 b/hw/sun4u.c | 39 - b/hw/sysbus.c | 24 b/hw/sysbus.h | 4 b/hw/tcx.c | 18 b/hw/tmp105.c | 14 b/hw/tosa.c | 24 b/hw/tusb6010.c | 14 b/hw/twl92230.c | 14 b/hw/unin_pci.c | 74 +- b/hw/usb-audio.c | 29 - b/hw/usb-bt.c | 14 b/hw/usb-bus.c | 25 b/hw/usb-ccid.c | 46 - b/hw/usb-ehci.c | 32 - b/hw/usb-hid.c | 72 +- b/hw/usb-hub.c | 18 b/hw/usb-msd.c | 31 - b/hw/usb-net.c | 27 - b/hw/usb-ohci.c | 42 - b/hw/usb-serial.c | 50 + b/hw/usb-uhci.c | 96 ++- b/hw/usb-wacom.c | 21 b/hw/usb-xhci.c | 25 b/hw/usb.h | 5 b/hw/versatile_pci.c | 33 - b/hw/versatilepb.c | 16 b/hw/vga-isa.c | 16 b/hw/vga-pci.c | 14 b/hw/virtio-console.c | 28 - b/hw/virtio-pci.c | 68 +- b/hw/virtio-serial-bus.c | 21 b/hw/virtio-serial.h | 6 b/hw/vmmouse.c | 28 - b/hw/vmport.c | 14 b/hw/vmware_vga.c | 16 b/hw/vt82c686.c | 64 +- b/hw/wdt_i6300esb.c | 16 b/hw/wdt_ib700.c | 16 b/hw/wm8750.c | 14 b/hw/xen_platform.c | 18 b/hw/xgmac.c | 25 b/hw/xilinx_axidma.c | 14 b/hw/xilinx_axienet.c | 14 b/hw/xilinx_ethlite.c | 14 b/hw/xilinx_intc.c | 14 b/hw/xilinx_timer.c | 14 b/hw/xilinx_uartlite.c | 13 b/hw/xio3130_downstream.c | 20 b/hw/xio3130_upstream.c | 20 b/hw/z2.c | 28 - b/hw/zaurus.c | 18 b/include/qemu/object.h | 228 ++++++++ b/qapi-schema.json | 55 +- b/qemu-char.c | 10 b/qemu-char.h | 2 b/qerror.c | 2 b/qmp-commands.hx | 5 b/qmp.c | 61 +- b/qom/Makefile | 2 b/qom/container.c | 27 + b/qom/object.c | 500 ++++++++++++++++++ b/usb-linux.c | 35 - hw/container.c | 27 - 258 files changed, 4829 insertions(+), 4058 deletions(-)