From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:38284) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrzzP-0003df-MH for qemu-devel@nongnu.org; Mon, 30 Jan 2012 17:46:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RrzzN-0005BF-VX for qemu-devel@nongnu.org; Mon, 30 Jan 2012 17:46:19 -0500 Received: from mail-pw0-f45.google.com ([209.85.160.45]:32776) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrzzN-0005B3-NP for qemu-devel@nongnu.org; Mon, 30 Jan 2012 17:46:17 -0500 Received: by pbaa11 with SMTP id a11so2058157pba.4 for ; Mon, 30 Jan 2012 14:46:16 -0800 (PST) Message-ID: <4F271DB3.30404@codemonkey.ws> Date: Mon, 30 Jan 2012 16:46:11 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1327957741-5842-1-git-send-email-aliguori@us.ibm.com> <4F270897.70905@us.ibm.com> In-Reply-To: <4F270897.70905@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 00/23] qom: use Type system to register all devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Paolo Bonzini , Andreas Faerber , qemu-devel@nongnu.org, Peter Maydell On 01/30/2012 03:16 PM, Anthony Liguori wrote: > (Sorry for not posting this correctly, I didn't want to spam the list with a > second submission) > > This is the 3rd QOM series. I decided to post this even though there's a known > issue with device_del as I wanted to give people more time to review what's > going on here. I think the "lingering issue with device_del" is that my broken battery is causing my laptop to overheat... So I'll fold patch 23 into the right spot and repost tomorrow. Could use another set of eyes to walk through the reference counting stuff though. It's a bit nastier than I would like it to be. I really dislike the notion of having an object_unparent in the unplug path. Regards, Anthony Liguori > > 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 | 590 ++++++++++++++++++++++ > 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 | 226 ++++++++ > 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 | 15 > b/qom/object.c | 500 ++++++++++++++++++ > b/usb-linux.c | 35 - > hw/container.c | 27 - > 258 files changed, 4817 insertions(+), 4058 deletions(-) > >