Hello Anthony, This is my current QOM devices patch queue for 1.6-rc0. Please pull.
While rather large, changes are mainly mechanical and qtests have been provided separately to catch any cast assertions. FROM_SYSBUS(): 173 -> 0 DO_UPCAST(): 420 -> 359 Thanks, Andreas Cc: Anthony Liguori <anth...@codemonkey.ws> Cc: Peter Crosthwaite <peter.crosthwa...@xilinx.com> Cc: Hu Tao <hu...@cn.fujitsu.com> Cc: Michael S. Tsirkin <m...@redhat.com> (pci) The following changes since commit eddbf0ab9db8385d7cb57e23891c1d41488b303e: Merge remote-tracking branch 'stefanha/block' into staging (2013-07-29 11:33:48 -0500) are available in the git repository at: git://github.com/afaerber/qemu-cpu.git tags/qom-devices-for-anthony for you to fetch changes up to b67964d70219a864ec427e727754a205475c7d6c: sysbus: QOM parent field cleanup for SysBusDevice (2013-07-29 21:07:03 +0200) ---------------------------------------------------------------- QOM device refactorings * Replace all uses of FROM_SYSBUS() macro with QOM cast macros i) "QOM cast cleanup for X" Indicates a mechanical 1:1 between TYPE_* and *State. ii) "QOM'ify X and Y" Indicates abstract types may have been inserted or similar changes to type hierarchy. ii) Renames Coding Style fixes such as CamelCase have been applied in some cases. * Fix for sparc floppy - cf. ii) above * Change PCI type hierarchy to provide PCI_BRIDGE() casts * In doing so, prepare for adopting QOM realize ---------------------------------------------------------------- Andreas Färber (171): fdc: Fix inheritence for SUNW,fdtwo ide: Introduce abstract QOM type for PCIIDEState cpu/a9mpcore: QOM casting cleanup timer/arm_mptimer: QOM cast cleanup cpu/a15mpcore: QOM cast cleanup arm11mpcore: QOM cast cleanups for ARM11MPCorePriveState arm11mpcore: QOM cast cleanups for mpcore_rirq_state pci-bridge: Turn PCIBridge into abstract QOM type pci-bridge-dev: QOM parent field cleanup pci-bridge/i82801b11: Rename parent field pcie_port: Turn PCIEPort and PCIESlot into abstract QOM types etraxfs_ser: QOM cast cleanups xilinx_uartlite: Rename xlx_uartlite to XilinxUARTLite xilinx_uartlite: QOM cast cleanups cs4231: QOM cast cleanup audio/marvell_88w8618: QOM cast cleanup milkymist-ac97: QOM cast cleanup pl041: Rename pl041_state to PL041State pl041: QOM cast cleanup onenand: QOM cast cleanup exynos4210_fimd: QOM cast cleanup g364fb: QOM cast cleanup jazz_led: QOM cast cleanup milkymist-tmu2: QOM cast cleanup milkymist-vgafb: QOM cast cleanup pl110: Rename pl110_state to PL110State pl110: QOM'ify pl110, pl110_versatile and pl111 tcx: QOM cast cleanup imx_avic: QOM cast cleanup imx_ccm: QOM cast cleanup armv7m: QOM cast cleanup for BitBandState highbank: QOM cast cleanup for HighbankRegsState integratorcp: QOM cast cleanup for integratorcm_state integratorcp: QOM cast cleanup for icp_pic_state musicpal: QOM cast cleanup for mv88w8618_eth_state musicpal: QOM cast cleanup for musicpal_lcd_state musicpal: QOM cast cleanup mv88w8618_pic_state musicpal: QOM cast cleanup for mv88w8618_pit_state musicpal: QOM cast cleanup for mv88w8618_flashcfg musicpal: QOM cast cleanup for musicpal_gpio_state musicpal: QOM cast cleanup for musicpal_key_state pxa2xx: QOM cast cleanup for PXA2xxSSPState pxa2xx: QOM cast cleanup for PXA2xxRTCState pxa2xx: QOM cast cleanup for PXA2xxI2CState pxa2xx_gpio: QOM cast cleanup for PXA2xxGPIOInfo pxa2xx_pic: QOM cast cleanup for PXA2xxPICState spitz: QOM cast cleanup for SLNANDState spitz: QOM cast cleanup for SpitzKeyboardState stellaris: QOM cast cleanup for gptm_state stellaris: QOM cast cleanup for stellaris_i2c_state stellaris: QOM cast cleanup for stellaris_adc_state strongarm: QOM cast cleanup for StrongARMPICState strongarm: QOM cast cleanup for StrongARMRTCState strongarm: QOM cast cleanup for StrongARMGPIOInfo strongarm: QOM cast cleanup for StrongARMPPCInfo strongarm: QOM cast cleanup for StrongARMUARTState strongarm: QOM cast cleanup for StrongARMSSPState versatilepb: QOM cast cleanup for vpb_sic_state cadence_uart: QOM cast cleanup escc: QOM cast cleanup exynos4210_uart: QOM cast cleanup grlib_apbuart: QOM cast cleanup imx_serial: QOM cast cleanup lm32_juart: Relocate and tidy header lm32_juart: QOM cast cleanup lm32_uart: QOM cast cleanup milkymist-uart: QOM cast cleanup pl011: Rename pl011_state pl011: QOM'ify pl011 and pl011_luminary empty_slot: QOM cast cleanup pl080: Rename pl080_state to PL080State pl080: QOM'ify pl080 and pl081 puv3_dma: QOM cast cleanup pxa2xx_dma: QOM cast cleanup sparc32_dma: QOM cast cleanup sun4m_iommu: QOM cast cleanup omap_gpio: QOM cast cleanup for omap_gpif_s omap_gpio: QOM cast cleanup for omap2_gpif_s pl061: Rename pl061_state to PL061State pl061: QOM'ify pl061 and pl061_luminary puv3_gpio: QOM cast cleanup gpio/zaurus: QOM cast cleanup bitbang_i2c: QOM cast cleanup omap_i2c: QOM cast cleanup versatile_i2c: QOM cast cleanup milkymist-softusb: QOM cast cleanup pl050: Rename pl050_state to PL050State pl050: QOM'ify pl050_keyboard and pl050_mouse arm_gic: QOM cast cleanup etraxfs_pic: QOM cast cleanup exynos4210_combiner: QOM cast cleanup exynos4210_gic: QOM cast cleanup for exynos4210.gic exynos4210_gic: QOM cast cleanup for exynos4210.irq_gate grlib_irqmp: QOM cast cleanup lm32_pic: QOM cast cleanup omap_intc: QOM'ify omap-intc and omap2-intc pl190: Rename pl190_state to PL190State pl190: QOM cast cleanup puv3_intc: QOM cast cleanup realview_gic: QOM cast cleanup slavio_intctl: QOM cast cleanup xilinx_intc: QOM cast cleanup arm_l2x0: Rename l2x0_state to L2x0State arm_l2x0: QOM cast cleanup arm_sysctl: QOM cast cleanup eccmemctl: QOM cast cleanup exynos4210_pmu: QOM cast cleanup lm32_sys: QOM cast cleanup milkymist-hpdmc: QOM cast cleanup milkymist-pfpu: QOM cast cleanup mst_fpga: QOM cast cleanup puv3_pm: QOM cast cleanup slavio_misc: QOM cast cleanup for MiscState slavio_misc: QOM cast cleanup for APCState zynq_slcr: QOM cast cleanup cadence_gem: QOM cast cleanup etraxfs_eth: QOM cast cleanup etraxfs_eth: Rename fs_eth to ETRAXFSEthState lan9118: QOM cast cleanup lance: QOM cast cleanup milkymist-minimac2: QOM cast cleanup smc91c111: QOM cast cleanup stellaris_enet: QOM cast cleanup stellaris_enet: Fix NetClientInfo::cleanup xgmac: QOM cast cleanup xilinx_ethlite: QOM cast cleanup ds1225y: Drop bogus qdev field from NvRamState ds1225y: QOM cast cleanup for SysBusNvRamState ppce500_spin: QOM cast cleanup milkymist-memcard: QOM cast cleanup pl181: Rename pl181_state to PL181State pl181: QOM cast cleanup sun4m: QOM cast cleanup for IDRegState sun4m: QOM cast cleanup for AFXState sun4m: QOM cast cleanup for PROMState sun4m: QOM cast cleanup for RamDevice sun4u: QOM cast cleanup for PROMState sun4u: QOM cast cleanup for RamDevice pl022: Rename pl022_state to PL022State pl022: QOM cast cleanup xilinx_spi: QOM cast cleanup arm_timer: Rename sp804_state to SP804State arm_timer: QOM cast cleanup for SP804State arm_timer: QOM cast cleanup for icp_pit_state cadence_ttc: QOM cast cleanup etraxfs_timer: Rename etrax_timer to ETRAXTimerState etraxfs_timer: QOM cast cleanup exynos4210_mct: QOM cast cleanup exynos4210_pwm: QOM cast cleanup exynos4210_rtc: QOM cast cleanup grlib_gptimer: QOM cast cleanup lm32_timer: QOM cast cleanup m48t59: QOM cast cleanup for M48t59SysBusState milkymist-sysctl: QOM cast cleanup pl031: Rename pl031_state to PL031State pl031: QOM cast cleanup puv3_ost: QOM cast cleanup pxa2xx_timer: QOM'ify pxa25x-timer and pxa27x-timer slavio_timer: QOM cast cleanup tusb6010: QOM cast cleanup xilinx_timer: QOM cast cleanup sysbus: Drop FROM_SYSBUS() sysbus: Remove unused sysbus_new() prototype exynos4210_i2c: QOM cast cleanup opencores_eth: QOM cast cleanup mipsnet: QOM cast cleanup kvmvapic: QOM cast cleanup kvm/ioapic: QOM cast cleanup ioapic: QOM cast cleanup spapr_pci: QOM cast cleanup sysbus: QOM parent field cleanup for SysBusDevice Peter Crosthwaite (1): ide/piix: QOM casting sweep Stefan Weil (1): musicpal: Fix typo in name of local function MAINTAINERS | 1 + hw/arm/armv7m.c | 16 ++-- hw/arm/highbank.c | 16 ++-- hw/arm/integratorcp.c | 76 +++++++++------- hw/arm/musicpal.c | 158 ++++++++++++++++++++++----------- hw/arm/pxa2xx.c | 79 +++++++++++------ hw/arm/pxa2xx_gpio.c | 35 +++++--- hw/arm/pxa2xx_pic.c | 18 ++-- hw/arm/spitz.c | 41 +++++---- hw/arm/stellaris.c | 75 ++++++++++------ hw/arm/strongarm.c | 134 +++++++++++++++++----------- hw/arm/versatilepb.c | 37 ++++---- hw/audio/cs4231.c | 15 ++-- hw/audio/marvell_88w8618.c | 14 +-- hw/audio/milkymist-ac97.c | 13 ++- hw/audio/pl041.c | 45 +++++----- hw/block/fdc.c | 88 +++++++++--------- hw/block/onenand.c | 30 ++++--- hw/char/cadence_uart.c | 10 ++- hw/char/escc.c | 19 ++-- hw/char/etraxfs_ser.c | 37 ++++---- hw/char/exynos4210_uart.c | 26 +++--- hw/char/grlib_apbuart.c | 13 ++- hw/char/imx_serial.c | 16 ++-- hw/char/lm32_juart.c | 21 +++-- hw/char/lm32_uart.c | 12 ++- hw/char/milkymist-uart.c | 15 ++-- hw/char/pl011.c | 110 ++++++++++++----------- hw/char/xilinx_uartlite.c | 30 ++++--- hw/core/empty_slot.c | 14 +-- hw/cpu/a15mpcore.c | 15 +++- hw/cpu/a9mpcore.c | 15 +++- hw/cpu/arm11mpcore.c | 42 +++++---- hw/display/exynos4210_fimd.c | 18 ++-- hw/display/g364fb.c | 25 ++++-- hw/display/jazz_led.c | 12 ++- hw/display/milkymist-tmu2.c | 13 ++- hw/display/milkymist-vgafb.c | 17 ++-- hw/display/pl110.c | 137 ++++++++++++++-------------- hw/display/tcx.c | 12 ++- hw/dma/pl080.c | 91 +++++++++---------- hw/dma/puv3_dma.c | 12 ++- hw/dma/pxa2xx_dma.c | 20 +++-- hw/dma/sparc32_dma.c | 23 +++-- hw/dma/sun4m_iommu.c | 12 ++- hw/gpio/omap_gpio.c | 62 ++++++++----- hw/gpio/pl061.c | 110 +++++++++++------------ hw/gpio/puv3_gpio.c | 12 ++- hw/gpio/zaurus.c | 19 ++-- hw/i2c/bitbang_i2c.c | 24 +++-- hw/i2c/exynos4210_i2c.c | 12 +-- hw/i2c/omap_i2c.c | 38 ++++---- hw/i2c/versatile_i2c.c | 20 +++-- hw/i386/kvm/ioapic.c | 4 +- hw/i386/kvmvapic.c | 4 +- hw/ide/cmd646.c | 62 +++++++------ hw/ide/pci.c | 30 +++++-- hw/ide/pci.h | 8 +- hw/ide/piix.c | 30 +++---- hw/ide/via.c | 18 ++-- hw/input/milkymist-softusb.c | 14 +-- hw/input/pl050.c | 82 +++++++++-------- hw/intc/arm_gic.c | 5 +- hw/intc/arm_gic_common.c | 2 +- hw/intc/etraxfs_pic.c | 22 +++-- hw/intc/exynos4210_combiner.c | 23 +++-- hw/intc/exynos4210_gic.c | 45 ++++++---- hw/intc/gic_internal.h | 5 +- hw/intc/grlib_irqmp.c | 33 +++---- hw/intc/imx_avic.c | 27 +++--- hw/intc/ioapic.c | 2 +- hw/intc/lm32_pic.c | 27 +++--- hw/intc/omap_intc.c | 57 +++++++----- hw/intc/pl190.c | 78 ++++++++-------- hw/intc/puv3_intc.c | 23 +++-- hw/intc/realview_gic.c | 20 +++-- hw/intc/slavio_intctl.c | 35 ++++---- hw/intc/xilinx_intc.c | 19 ++-- hw/lm32/lm32.h | 5 +- hw/misc/arm_l2x0.c | 36 ++++---- hw/misc/arm_sysctl.c | 20 +++-- hw/misc/eccmemctl.c | 17 ++-- hw/misc/exynos4210_pmu.c | 14 +-- hw/misc/imx_ccm.c | 16 ++-- hw/misc/lm32_sys.c | 12 ++- hw/misc/milkymist-hpdmc.c | 13 ++- hw/misc/milkymist-pfpu.c | 13 ++- hw/misc/mst_fpga.c | 68 +++++++------- hw/misc/puv3_pm.c | 12 ++- hw/misc/slavio_misc.c | 45 ++++++---- hw/misc/zynq_slcr.c | 15 ++-- hw/net/cadence_gem.c | 26 +++--- hw/net/etraxfs_eth.c | 52 ++++++----- hw/net/lan9118.c | 26 +++--- hw/net/lance.c | 24 +++-- hw/net/milkymist-minimac2.c | 27 +++--- hw/net/mipsnet.c | 20 +++-- hw/net/opencores_eth.c | 24 +++-- hw/net/smc91c111.c | 30 ++++--- hw/net/stellaris_enet.c | 38 +++++--- hw/net/xgmac.c | 46 +++++----- hw/net/xilinx_ethlite.c | 20 +++-- hw/nvram/ds1225y.c | 12 ++- hw/pci-bridge/dec.c | 4 +- hw/pci-bridge/i82801b11.c | 10 ++- hw/pci-bridge/ioh3420.c | 35 +++----- hw/pci-bridge/pci_bridge_dev.c | 26 +++--- hw/pci-bridge/xio3130_downstream.c | 35 +++----- hw/pci-bridge/xio3130_upstream.c | 26 ++---- hw/pci-host/apb.c | 7 +- hw/pci/pci.c | 2 +- hw/pci/pci_bridge.c | 40 ++++++--- hw/pci/pcie.c | 2 +- hw/pci/pcie_port.c | 52 +++++++++++ hw/ppc/ppce500_spin.c | 14 +-- hw/ppc/spapr_pci.c | 7 +- hw/sd/milkymist-memcard.c | 14 +-- hw/sd/pl181.c | 75 ++++++++-------- hw/sparc/sun4m.c | 54 +++++++---- hw/sparc64/sun4u.c | 29 +++--- hw/ssi/pl022.c | 91 ++++++++++--------- hw/ssi/xilinx_spi.c | 27 +++--- hw/timer/arm_mptimer.c | 18 ++-- hw/timer/arm_timer.c | 48 ++++++---- hw/timer/cadence_ttc.c | 13 ++- hw/timer/etraxfs_timer.c | 35 ++++---- hw/timer/exynos4210_mct.c | 13 ++- hw/timer/exynos4210_pwm.c | 12 ++- hw/timer/exynos4210_rtc.c | 13 ++- hw/timer/grlib_gptimer.c | 13 ++- hw/timer/lm32_timer.c | 12 ++- hw/timer/m48t59.c | 16 ++-- hw/timer/milkymist-sysctl.c | 14 +-- hw/timer/pl031.c | 44 ++++----- hw/timer/puv3_ost.c | 12 ++- hw/timer/pxa2xx_timer.c | 42 ++++++--- hw/timer/slavio_timer.c | 13 ++- hw/timer/tusb6010.c | 26 +++--- hw/timer/xilinx_timer.c | 11 ++- include/hw/char/escc.h | 1 + include/hw/{lm32 => char}/lm32_juart.h | 8 +- include/hw/pci/pci_bus.h | 7 +- include/hw/pci/pcie_port.h | 14 ++- include/hw/sysbus.h | 9 +- include/hw/timer/m48t59.h | 3 + target-lm32/op_helper.c | 2 +- 146 files changed, 2502 insertions(+), 1728 deletions(-) rename include/hw/{lm32 => char}/lm32_juart.h (65%)