This series, on top of Anthony's qom-upstream.13, fixes several qdev bugs, and adds enough functionality to QOM, to the point that all property accesses go through QOM rather than poking into the structs.
In particular, device initialization goes through the regular, non-legacy properties; command-line option goes through the legacy interface. However, one important change is that if the two are equivalent, the legacy interface will not be registered anymore. Patches 1 and 2 are bugfixes. Patches 3 to 5 add wrappers to access properties easily as QObjects, Objects or C types. Patches 6 switches command-line operation and "info qtree" to the QOM legacy properties. Patches 7 to 11 progressively remove functionality from the legacy properties when the normal ones are just as good. Patch 12 switches property free to the normal QOM way. Patches 13 to 15 switches device initialization to use the QOM non-legacy properties (except for PROP_PTR). Patch 16 finally switches default values to use the QOM non-legacy properties. Paolo Bonzini (16): qdev: fix hot-unplug qom: store object with correct type in interface links qom: do not include qdev header file qom: add QObject-based property get/set wrappers qom: add property get/set wrappers for C types qdev: remove direct calls to print/parse qdev: allow reusing get/set for legacy property qdev: remove parse method for string properties qdev: remove parse/print methods for mac properties qdev: make the non-legacy pci address property accept an integer qdev: remove parse/print methods for pointer properties qdev: let QOM free properties qdev: fix off-by-one qdev: access properties via QOM qdev: inline qdev_prop_set into qdev_prop_set_ptr qdev: initialize properties via QOM hw/qdev-addr.c | 5 +- hw/qdev-monitor.c | 30 ++-- hw/qdev-properties.c | 387 ++++++++++++++++++++++++++----------------------- hw/qdev.c | 32 +++-- hw/qdev.h | 14 +- include/qemu/object.h | 94 ++++++++++++ qmp.c | 17 +-- qom/object.c | 149 +++++++++++++++++-- vl.c | 1 + 9 files changed, 487 insertions(+), 242 deletions(-) -- 1.7.7.6