This series contains the 7^H8 generic QOM API fixes and enhancements that I previously posted as part of the large series refactoring and extending the TLS support in QEMU:
https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg02038.html I'm sending it separately, since the patches are reasonably well self-contained and thus hopefully suitable for quicker review and merge. The changes in this posting are in response to Andreas' feedback on v3. Changed in v5: - Fix test suite build -Wunused-value warning on some GCC versions reported by Peter Maydell Changed in v4: - Introduce object_get_objects_root() to replace duplicated container_get(object_get_root(), "/objects") calls - Add object_set_prop[sv]()and call them to populate properties from object_new_with_prop[sv]() constructor - Use <programlisting> in inline docs example - Fix naming for '...' vs 'va_list' arg method variants to match QEMU convention (va_list one has the 'v' suffix) - Conditionally use __attribute__((sentinel)) only on new enough GCC (>= 4.0) - Use a local Error * object where Error **errp could be NULL - Change class def to use parent_obj and parent_class for first struct member - Use g_assert_cmpstr() in test case assertions on strings - Other misc typos in docs, commit messages and code. Changed in v3: - Fix test suite additions for change in object_new_propv API Changed in v2: - Pass "Object * parent" instead of "char *path" paremeter - Rely on stable reference from parent to keep new object alive - Use object_unparent() where appropriate Daniel P. Berrange (8): backends: fix typename of 'policy' enum property in hostmem obj doc: document user creatable object types in help text vl: create (most) objects before creating chardev backends qom: add helper method for getting user objects root qom: add object_new_with_props / object_new_withpropv constructors qom: make enum string tables const-correct qom: add a object_property_add_enum helper method qom: don't pass string table to object_get_enum method backends/hostmem.c | 22 ++-- include/hw/qdev-core.h | 2 +- include/qapi/util.h | 2 +- include/qapi/visitor-impl.h | 6 +- include/qapi/visitor.h | 2 +- include/qemu/compiler.h | 6 + include/qom/object.h | 163 +++++++++++++++++++++++- iothread.c | 4 +- numa.c | 4 +- qapi/qapi-dealloc-visitor.c | 3 +- qapi/qapi-util.c | 2 +- qapi/qapi-visit-core.c | 6 +- qemu-options.hx | 70 +++++++--- qmp.c | 6 +- qom/object.c | 191 +++++++++++++++++++++++++++- scripts/qapi-types.py | 4 +- tests/.gitignore | 1 + tests/Makefile | 5 +- tests/check-qom-proplist.c | 302 ++++++++++++++++++++++++++++++++++++++++++++ vl.c | 40 +++++- 20 files changed, 784 insertions(+), 57 deletions(-) create mode 100644 tests/check-qom-proplist.c -- 2.4.1