From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56925) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YxcwM-0007Wi-57 for qemu-devel@nongnu.org; Wed, 27 May 2015 11:08:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YxcwG-0004HZ-Dx for qemu-devel@nongnu.org; Wed, 27 May 2015 11:08:18 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34710) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YxcwG-0004HG-6z for qemu-devel@nongnu.org; Wed, 27 May 2015 11:08:12 -0400 From: "Daniel P. Berrange" Date: Wed, 27 May 2015 16:07:48 +0100 Message-Id: <1432739276-10452-1-git-send-email-berrange@redhat.com> Subject: [Qemu-devel] [PATCH v5 0/8] qom: misc fixes & enhancements to support TLS work List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= 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 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