qom: use Type system to register all devices
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest22 of 23 patches 22 repliesIn review
22 of 23 patches are in this archive. The cover letter announces 23.
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/23 | usb-hid: simplify class initialization a bithw/ | +13 | 0 replies | |
| 3/23 | qdev: make DeviceInfo privatehw/ hw/ hw/ +1 more | +48 | 1 reply | |
| 4/23 | qdev: remove info from classhw/ hw/ hw/ | +80 | 0 replies | |
| 5/23 | qdev: allow classes to overload qdev functionshw/ | +33 | 0 replies | |
| 6/23 | qdev: refactor device creation to allow bus_info to be set only in classhw/ | +19 | 0 replies | |
| 7/23 | qdev: kill off DeviceInfo listhw/ hw/ | +30 | 1 reply | |
| 8/23 | qdev: register all types natively through QEMU Object Modelhw/ hw/ hw/ +239 more | +3169 | 2 replies | |
| 9/23 | qdev: kill of DeviceInfohw/ hw/ hw/ +12 more | +15 | 3 replies | |
| 10/23 | qdev: remove baked in notion of aliaseshw/ hw/ hw/ +3 more | +89 | 1 reply | |
| 11/23 | qom: allow object_class_foreach to take additional parameters to refine searchhw/ include/ qom/ | +19 | 1 reply | |
| 12/23 | qom: add new command to search for typesqapi-schema.json qerror.c qmp-commands.hx +1 more | +66 | 0 replies | |
| 13/23 | qdev: split out common init to instance_inithw/ | +28 | 0 replies | |
| 14/23 | qdev: refactor away qdev_create_from_infohw/ hw/ | +25 | 0 replies | |
| 15/23 | qdev: split out UI portions into a new functionMakefile.objs hw/ hw/ +1 more | +591 | 0 replies | |
| 16/23 | qdev: nuke qdev_init_chardev()hw/ hw/ hw/ +7 more | +18 | 0 replies | |
| 17/23 | qom: move properties from qdev to objecthw/ hw/ hw/ +9 more | +785 | 3 replies | |
| 18/23 | qom: accept any compatible type when setting a link propertyqom/ | +5 | 0 replies | |
| 19/23 | qdev: implement cleanup logic in finalizehw/ | +32 | 0 replies | |
| 20/23 | info qdm: do not require a parent_bus to be sethw/ | +7 | 0 replies | |
| 21/23 | object: sure up reference countingqom/ | +18 | 3 replies | |
| 22/23 | container: make a decendent of ObjectMakefile.objs hw/ hw/ +3 more | +27 | 4 replies | |
| 23/23 | not-for-upstream: fix device_delhw/ hw/ include/ +1 more | +15 | 0 replies |
Reviews trailers per patch
3 of 22 patches have a Reviewed-by or Acked-by.
| Patch | Andreas Färber |
|---|---|
| 1/23 | |
| 3/23 | R-b |
| 4/23 | |
| 5/23 | |
| 6/23 | |
| 7/23 | |
| 8/23 | |
| 9/23 | R-b |
| 10/23 | |
| 11/23 | R-b |
| 12/23 | |
| 13/23 | |
| 14/23 | |
| 15/23 | |
| 16/23 | |
| 17/23 | |
| 18/23 | |
| 19/23 | |
| 20/23 | |
| 21/23 | |
| 22/23 | |
| 23/23 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [Qemu-devel] [PATCH 00/23] qom: use Type system to register all devices
(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.
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(-)