From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53519) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0vlW-0000Uy-P2 for qemu-devel@nongnu.org; Wed, 08 Jan 2014 11:14:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0vlQ-0003WI-9U for qemu-devel@nongnu.org; Wed, 08 Jan 2014 11:13:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:9987) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0vlQ-0003W5-1K for qemu-devel@nongnu.org; Wed, 08 Jan 2014 11:13:52 -0500 From: Igor Mammedov Date: Wed, 8 Jan 2014 17:09:37 +0100 Message-Id: <1389197382-25085-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [RFC 0/5] -object/object-add support custom location and 2nd stage initialization List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, sw@weilnetz.de, mjt@tls.msk.ru, lcapitulino@redhat.com, blauwirbel@gmail.com, aliguori@amazon.com, pbonzini@redhat.com, afaerber@suse.de, rth@twiddle.net Adds optional interfaces that objects could implement if they need to: 1. perform an additional initialization after object properties are set 2. be placed not in '/objects' container Series depends on 2 PULL requests in flight from Andreas & Luiz with fixes for QOM interfaces and object-add monitor/QMP command. Git tree for testing: https://github.com/imammedo/qemu/commits/extend-object-add Igor Mammedov (5): object_add: consolidate error handling add optional 2nd stage initialization to -object/object-add/object_add commands virtio_rng: use object_realize interface instead of calling backend API vl.c: -object: handle duplicate 'id' properly -object/object-add: use custom default object location if provided backends/rng.c | 17 ++++++- hw/virtio/virtio-rng.c | 15 ++++--- include/qom/object_interfaces.h | 96 +++++++++++++++++++++++++++++++++++++++ include/sysemu/rng.h | 11 ----- qmp.c | 30 +++++++++--- qom/Makefile.objs | 1 + qom/object_interfaces.c | 57 +++++++++++++++++++++++ vl.c | 21 ++++++++- 8 files changed, 220 insertions(+), 28 deletions(-) create mode 100644 include/qom/object_interfaces.h create mode 100644 qom/object_interfaces.c