Patchwork [01/23] usb-hid: simplify class initialization a bit

login
register
mail settings
Submitter Anthony Liguori
Date Jan. 30, 2012, 9:08 p.m.
Message ID <1327957741-5842-1-git-send-email-aliguori@us.ibm.com>
Download mbox | patch
Permalink /patch/138637/
State New
Headers show

Comments

Anthony Liguori - Jan. 30, 2012, 9:08 p.m.
We can probably model USBHidDevice as a base class to get even better code
sharing but for now, just use a common function to initialize the common class
members.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
 hw/usb-hid.c |   27 +++++++++++++--------------
 1 files changed, 13 insertions(+), 14 deletions(-)
Anthony Liguori - Jan. 30, 2012, 9:16 p.m.
(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(-)
Anthony Liguori - Jan. 30, 2012, 10:46 p.m.
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(-)
>
>
Peter Maydell - Feb. 1, 2012, 7:55 p.m.
On 30 January 2012 21:16, Anthony Liguori <aliguori@us.ibm.com> wrote:
> Patch 8/23 is an automated touch everything patch.

It's kind of awkward having a patch series that is both long (number
of patches) and wide (patches that require touching/conversion of
every device in the tree), because the length means it needs a long
review time on the list, and the width means it's going to conflict
with lots of other changes (and especially newly arriving device
models).

-- PMM
Anthony Liguori - Feb. 1, 2012, 8:10 p.m.
On 02/01/2012 01:55 PM, Peter Maydell wrote:
> On 30 January 2012 21:16, Anthony Liguori<aliguori@us.ibm.com>  wrote:
>> Patch 8/23 is an automated touch everything patch.
>
> It's kind of awkward having a patch series that is both long (number
> of patches) and wide (patches that require touching/conversion of
> every device in the tree), because the length means it needs a long
> review time on the list, and the width means it's going to conflict
> with lots of other changes (and especially newly arriving device
> models).

I could certainly split this into three parts.

But patches 0-8 aren't terribly meaningful outside of the context of patch 9.

And patch 9 by itself leaves the old infrastructure around which means that you 
would potentially need more patches like patch 9 in a future series.

So I don't think this series could really be trimmed by anything more than a 
couple patches and I don't see a huge advantage in doing that.

This sort of changes are the exception, not the common thing.  Once this series 
is merged, things will go back to normal patch series wise.

Regards,

Anthony Liguori

>
> -- PMM
>

Patch

diff --git a/hw/usb-hid.c b/hw/usb-hid.c
index 88fdd35..4af27a2 100644
--- a/hw/usb-hid.c
+++ b/hw/usb-hid.c
@@ -553,13 +553,10 @@  static const VMStateDescription vmstate_usb_kbd = {
     }
 };
 
-static void usb_tablet_class_initfn(ObjectClass *klass, void *data)
+static void usb_hid_class_initfn(ObjectClass *klass, void *data)
 {
     USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
 
-    uc->init           = usb_tablet_initfn;
-    uc->product_desc   = "QEMU USB Tablet";
-    uc->usb_desc       = &desc_tablet;
     uc->handle_packet  = usb_generic_handle_packet;
     uc->handle_reset   = usb_hid_handle_reset;
     uc->handle_control = usb_hid_handle_control;
@@ -567,6 +564,16 @@  static void usb_tablet_class_initfn(ObjectClass *klass, void *data)
     uc->handle_destroy = usb_hid_handle_destroy;
 }
 
+static void usb_tablet_class_initfn(ObjectClass *klass, void *data)
+{
+    USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
+
+    usb_hid_class_initfn(klass, data);
+    uc->init           = usb_tablet_initfn;
+    uc->product_desc   = "QEMU USB Tablet";
+    uc->usb_desc       = &desc_tablet;
+}
+
 static struct DeviceInfo usb_tablet_info = {
     .name      = "usb-tablet",
     .size      = sizeof(USBHIDState),
@@ -578,14 +585,10 @@  static void usb_mouse_class_initfn(ObjectClass *klass, void *data)
 {
     USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
 
+    usb_hid_class_initfn(klass, data);
     uc->init           = usb_mouse_initfn;
     uc->product_desc   = "QEMU USB Mouse";
     uc->usb_desc       = &desc_mouse;
-    uc->handle_packet  = usb_generic_handle_packet;
-    uc->handle_reset   = usb_hid_handle_reset;
-    uc->handle_control = usb_hid_handle_control;
-    uc->handle_data    = usb_hid_handle_data;
-    uc->handle_destroy = usb_hid_handle_destroy;
 }
 
 static struct DeviceInfo usb_mouse_info = {
@@ -599,14 +602,10 @@  static void usb_keyboard_class_initfn(ObjectClass *klass, void *data)
 {
     USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
 
+    usb_hid_class_initfn(klass, data);
     uc->init           = usb_keyboard_initfn;
     uc->product_desc   = "QEMU USB Keyboard";
     uc->usb_desc       = &desc_keyboard;
-    uc->handle_packet  = usb_generic_handle_packet;
-    uc->handle_reset   = usb_hid_handle_reset;
-    uc->handle_control = usb_hid_handle_control;
-    uc->handle_data    = usb_hid_handle_data;
-    uc->handle_destroy = usb_hid_handle_destroy;
 }
 
 static struct DeviceInfo usb_keyboard_info = {