Here is Anthony's qbus conversion, with the qdev_add_properties changes replaced by my bus property changes.
I left out the removal of bus methods; I'm not sure I agree with all of them (though I may just give up :)) and anyway they can be left to 1.2. Following Andreas's remark, I moved all TYPE_* definitions for buses to the same file that defines the struct, and added typecasting macros. I'm still a bit weary of putting this in this late, but I'll defer to others on this too. Anthony Liguori (6): qdev: fix adding of ptr properties qdev: use wrapper for qdev_get_path qdev: convert busses to QEMU Object Model qdev: connect busses with their parent devices qbus: make child devices links qbus: initialize in standard way Paolo Bonzini (15): qom: documentation addition qom: add object_class_get_parent qom: add class_base_init qom: make Object a type qom: assert that public types have a non-NULL parent field qdev: push "type" property up to Object qdev: fix -device foo,? qdev: use object_property_print in info qtree qdev: move bus properties to a separate global qdev: do not propagate properties to subclasses qdev: move bus properties to abstract superclasses pc: add back PCI.rombar compat property qdev: clean up global properties qdev: remove qdev_prop_set_defaults qdev: move sysbus initialization to sysbus.c exec.c | 4 +- hw/acpi_piix4.c | 10 +- hw/i2c.c | 30 +++-- hw/ide/internal.h | 3 + hw/ide/qdev.c | 31 +++-- hw/intel-hda.c | 37 ++--- hw/intel-hda.h | 3 + hw/isa-bus.c | 23 +++- hw/isa.h | 3 + hw/lsi53c895a.c | 5 +- hw/pc_piix.c | 9 +- hw/pci-hotplug.c | 6 +- hw/pci.c | 49 ++++--- hw/pci_bridge.c | 2 +- hw/pci_internals.h | 3 +- hw/qdev-monitor.c | 105 ++++++++------- hw/qdev-properties.c | 62 +++------ hw/qdev.c | 298 +++++++++++++++++++++++++++-------------- hw/qdev.h | 56 ++++---- hw/s390-virtio-bus.c | 37 ++--- hw/s390-virtio-bus.h | 3 + hw/scsi-bus.c | 54 +++++--- hw/scsi.h | 3 + hw/spapr_pci.c | 7 +- hw/spapr_vio.c | 49 ++++--- hw/spapr_vio.h | 3 + hw/spapr_vty.c | 6 +- hw/ssi.c | 29 ++-- hw/sysbus.c | 45 ++++++- hw/sysbus.h | 3 + hw/usb.h | 3 + hw/usb/bus.c | 45 ++++--- hw/usb/desc.c | 5 +- hw/usb/dev-smartcard-reader.c | 25 ++-- hw/virtio-scsi.c | 6 +- hw/virtio-serial-bus.c | 35 +++-- include/qemu/object.h | 27 +++- qom/object.c | 105 +++++++++++---- savevm.c | 12 +- 39 files changed, 783 insertions(+), 458 deletions(-) -- 1.7.9.3