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(-)





Reply via email to