On 01/24/2012 01:32 PM, Anthony Liguori wrote:
This series makes qdev a proper Object and converts qdev's type inheritance to
QOM inheritance.
The first half of the series are manual cleanups/refactorings. The second half
is mostly scripted conversion, separated out into reviewable and bisectable
chunks.
I've tested this series extensively for the pc target including bisectability.
I have not tested any other targets yet so your mileage may vary.
Since the original RFC, I've fixed any of the not-for-upstream issues. This
also includes some uni-north patches that are in ppc-next.
Paolo and Andreas have asked that I declare a date when I'll merge this so that
people can be prepared for the rebase fall out. I will merge this on Friday
unless there is a major problem found in review.
Applied (with the few changes requested).
Even anyone encounters a problem rebasing after this series, please feel free to
poke me for help. There should be ample examples of how to use the new
infrastructure too.
Regards,
Anthony Liguori
This is also available at:
https://github.com/aliguori/qemu/tree/qom-upstream.10
For full context, the whole tree is located at:
https://github.com/aliguori/qemu/commits/qom-rebase.7
git diffstat origin/master HEAD
Makefile | 2
Makefile.hw | 1
Makefile.objs | 3
Makefile.target | 2
configure | 2
hw/9pfs/virtio-9p-device.c | 44 ++--
hw/a9mpcore.c | 21 +
hw/ac97.c | 39 ++-
hw/acpi_piix4.c | 59 +++--
hw/ads7846.c | 17 +
hw/alpha_typhoon.c | 17 +
hw/apb_pci.c | 71 ++++--
hw/apic.c | 21 +
hw/apic_common.c | 88 +++++---
hw/apic_internal.h | 32 +-
hw/applesmc.c | 18 +
hw/arm11mpcore.c | 68 +++---
hw/arm_l2x0.c | 25 +-
hw/arm_mptimer.c | 23 +-
hw/arm_sysctl.c | 31 +-
hw/arm_timer.c | 46 +++-
hw/armv7m.c | 25 +-
hw/armv7m_nvic.c | 21 +
hw/bitbang_i2c.c | 17 +
hw/bonito.c | 47 ++--
hw/ccid-card-emulated.c | 27 +-
hw/ccid-card-passthru.c | 27 +-
hw/ccid.h | 28 +-
hw/cirrus_vga.c | 50 ++--
hw/container.c | 17 +
hw/cs4231.c | 27 +-
hw/cs4231a.c | 20 +
hw/debugcon.c | 16 +
hw/dec_pci.c | 74 ++++--
hw/ds1225y.c | 29 +-
hw/ds1338.c | 31 +-
hw/e1000.c | 45 ++--
hw/eccmemctl.c | 29 +-
hw/eepro100.c | 202 +++++++++++-------
hw/empty_slot.c | 15 +
hw/es1370.c | 36 +--
hw/escc.c | 43 ++-
hw/esp.c | 27 +-
hw/etraxfs_eth.c | 33 +--
hw/etraxfs_pic.c | 25 +-
hw/etraxfs_ser.c | 17 +
hw/etraxfs_timer.c | 16 +
hw/fdc.c | 84 +++++--
hw/fw_cfg.c | 33 +--
hw/g364fb.c | 33 +--
hw/grackle_pci.c | 44 ++--
hw/grlib_apbuart.c | 25 +-
hw/grlib_gptimer.c | 31 +-
hw/grlib_irqmp.c | 29 +-
hw/gt64xxx.c | 39 ++-
hw/gus.c | 20 +
hw/hda-audio.c | 60 +++--
hw/hpet.c | 33 +--
hw/i2c.c | 111 +++++++---
hw/i2c.h | 52 ++--
hw/i82374.c | 19 +
hw/i82378.c | 31 +-
hw/i8254.c | 22 +-
hw/i8259.c | 15 +
hw/i8259_common.c | 45 ++--
hw/i8259_internal.h | 27 +-
hw/ide/cmd646.c | 41 ++-
hw/ide/ich.c | 37 +--
hw/ide/internal.h | 20 +
hw/ide/isa.c | 20 +
hw/ide/piix.c | 91 +++++---
hw/ide/qdev.c | 111 ++++++----
hw/ide/via.c | 27 +-
hw/integratorcp.c | 40 ++-
hw/intel-hda.c | 91 +++++---
hw/intel-hda.h | 26 +-
hw/ioapic.c | 17 +
hw/ioapic_common.c | 49 +++-
hw/ioapic_internal.h | 26 +-
hw/ioh3420.c | 59 +++--
hw/isa-bus.c | 57 +++--
hw/isa.h | 23 +-
hw/ivshmem.c | 47 ++--
hw/kvm/apic.c | 19 +
hw/kvm/clock.c | 19 +
hw/kvm/i8259.c | 19 +
hw/kvm/ioapic.c | 23 +-
hw/lan9118.c | 31 +-
hw/lance.c | 33 +--
hw/lm32_juart.c | 19 +
hw/lm32_pic.c | 19 +
hw/lm32_sys.c | 29 +-
hw/lm32_timer.c | 31 +-
hw/lm32_uart.c | 19 +
hw/lm832x.c | 33 +--
hw/lsi53c895a.c | 33 +--
hw/m48t59.c | 51 +++-
hw/macio.c | 50 +++-
hw/marvell_88w8618_audio.c | 35 +--
hw/max111x.c | 34 ++-
hw/max7310.c | 35 +--
hw/mc146818rtc.c | 22 +-
hw/milkymist-ac97.c | 19 +
hw/milkymist-hpdmc.c | 19 +
hw/milkymist-memcard.c | 19 +
hw/milkymist-minimac2.c | 37 ++-
hw/milkymist-pfpu.c | 19 +
hw/milkymist-softusb.c | 43 ++-
hw/milkymist-sysctl.c | 43 ++-
hw/milkymist-tmu2.c | 19 +
hw/milkymist-uart.c | 19 +
hw/milkymist-vgafb.c | 31 +-
hw/mips_malta.c | 19 +
hw/mipsnet.c | 33 +--
hw/mpc8544_guts.c | 15 +
hw/mst_fpga.c | 19 +
hw/musicpal.c | 153 ++++++++++----
hw/nand.c | 33 +--
hw/ne2000-isa.c | 18 +
hw/ne2000.c | 37 ++-
hw/omap_gpio.c | 70 ++++--
hw/omap_intc.c | 62 +++--
hw/onenand.c | 35 ++-
hw/opencores_eth.c | 31 +-
hw/openpic.c | 30 --
hw/openpic.h | 2
hw/parallel.c | 16 +
hw/pc.c | 20 +
hw/pci.c | 140 +++++-------
hw/pci.h | 80 +++----
hw/pci_bridge.c | 2
hw/pcie.c | 2
hw/pckbd.c | 18 +
hw/pcnet-pci.c | 39 ++-
hw/pcnet.c | 2
hw/piix4.c | 35 +--
hw/piix_pci.c | 126 +++++++----
hw/pl011.c | 36 ++-
hw/pl022.c | 15 +
hw/pl031.c | 19 +
hw/pl041.c | 34 +--
hw/pl050.c | 34 ++-
hw/pl061.c | 34 ++-
hw/pl080.c | 38 ++-
hw/pl110.c | 57 +++--
hw/pl181.c | 23 +-
hw/pl190.c | 21 +
hw/ppc4xx_pci.c | 38 ++-
hw/ppc_newworld.c | 2
hw/ppce500_pci.c | 38 ++-
hw/ppce500_spin.c | 15 +
hw/prep_pci.c | 52 ++--
hw/pxa2xx.c | 96 ++++++--
hw/pxa2xx_dma.c | 29 +-
hw/pxa2xx_gpio.c | 29 +-
hw/pxa2xx_pic.c | 19 +
hw/pxa2xx_timer.c | 66 +++---
hw/qdev-properties.c | 20 -
hw/qdev.c | 123 ++++++++---
hw/qdev.h | 40 +++
hw/qxl.c | 66 +++---
hw/realview.c | 15 +
hw/realview_gic.c | 16 +
hw/rtl8139.c | 43 ++-
hw/s390-virtio-bus.c | 110 +++++++---
hw/sb16.c | 20 +
hw/sbi.c | 19 +
hw/scsi-bus.c | 95 ++++++--
hw/scsi-disk.c | 159 ++++++++------
hw/scsi-generic.c | 29 +-
hw/scsi.h | 31 +-
hw/serial.c | 18 +
hw/sga.c | 15 -
hw/sh_pci.c | 37 ++-
hw/slavio_intctl.c | 19 +
hw/slavio_misc.c | 34 ++-
hw/slavio_timer.c | 29 +-
hw/smbus.c | 85 +++++--
hw/smbus.h | 42 ++-
hw/smbus_eeprom.c | 27 +-
hw/smc91c111.c | 31 +-
hw/spapr_llan.c | 41 ++-
hw/spapr_pci.c | 31 ++
hw/spapr_vio.c | 72 ++++--
hw/spapr_vio.h | 35 ++-
hw/spapr_vscsi.c | 37 ++-
hw/spapr_vty.c | 37 ++-
hw/sparc32_dma.c | 31 +-
hw/spitz.c | 94 +++++---
hw/ssd0303.c | 33 +--
hw/ssd0323.c | 17 +
hw/ssi-sd.c | 17 +
hw/ssi.c | 23 +-
hw/ssi.h | 18 +
hw/stellaris.c | 65 +++++-
hw/stellaris_enet.c | 27 +-
hw/strongarm.c | 124 +++++++----
hw/sun4c_intctl.c | 19 +
hw/sun4m.c | 78 +++++--
hw/sun4m_iommu.c | 29 +-
hw/sun4u.c | 71 ++++--
hw/sysbus.c | 40 ++-
hw/sysbus.h | 25 +-
hw/tcx.c | 37 ++-
hw/tmp105.c | 37 ++-
hw/tosa.c | 50 ++--
hw/tusb6010.c | 17 +
hw/twl92230.c | 35 +--
hw/unin_pci.c | 204 +++++++++++++-----
hw/usb-audio.c | 38 ++-
hw/usb-bt.c | 33 +--
hw/usb-bus.c | 190 +++++++++++++----
hw/usb-ccid.c | 114 +++++++---
hw/usb-desc.c | 22 +-
hw/usb-ehci.c | 63 +++--
hw/usb-hid.c | 108 +++++-----
hw/usb-hub.c | 35 +--
hw/usb-msd.c | 41 ++-
hw/usb-net.c | 43 ++-
hw/usb-ohci.c | 58 +++--
hw/usb-serial.c | 74 +++---
hw/usb-uhci.c | 189 +++++++++++------
hw/usb-wacom.c | 36 +--
hw/usb-xhci.c | 37 ++-
hw/usb.c | 24 --
hw/usb.h | 50 +++-
hw/versatile_pci.c | 53 +++-
hw/versatilepb.c | 19 +
hw/vga-isa.c | 18 +
hw/vga-pci.c | 27 +-
hw/virtio-console.c | 69 +++---
hw/virtio-net.c | 2
hw/virtio-pci.c | 210 +++++++++++--------
hw/virtio-serial-bus.c | 68 +++---
hw/virtio-serial.h | 81 ++++---
hw/vmmouse.c | 22 +-
hw/vmport.c | 16 +
hw/vmware_vga.c | 34 +--
hw/vt82c686.c | 120 ++++++-----
hw/wdt_i6300esb.c | 33 +--
hw/wdt_ib700.c | 18 +
hw/wm8750.c | 37 ++-
hw/xen_platform.c | 34 +--
hw/xilinx_axidma.c | 27 +-
hw/xilinx_axienet.c | 35 ++-
hw/xilinx_ethlite.c | 31 +-
hw/xilinx_intc.c | 25 +-
hw/xilinx_timer.c | 27 +-
hw/xilinx_uartlite.c | 16 +
hw/xio3130_downstream.c | 59 +++--
hw/xio3130_upstream.c | 53 ++--
hw/z2.c | 52 +++-
hw/zaurus.c | 27 +-
include/qemu/object.h | 436 ++++++++++++++++++++++++++++++++++++++++
qom/Makefile | 1
qom/object.c | 485
+++++++++++++++++++++++++++++++++++++++++++++
usb-bsd.c | 29 +-
usb-linux.c | 37 +--
usb-redir.c | 33 +--
259 files changed, 7764 insertions(+), 3755 deletions(-)