From patchwork Wed Feb 1 19:51:03 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anthony Liguori X-Patchwork-Id: 138999 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 36CF0B6EF7 for ; Thu, 2 Feb 2012 07:56:31 +1100 (EST) Received: from localhost ([::1]:34382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RsgGD-0005Yj-6c for incoming@patchwork.ozlabs.org; Wed, 01 Feb 2012 14:54:29 -0500 Received: from eggs.gnu.org ([140.186.70.92]:37876) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RsgEY-0002oJ-UM for qemu-devel@nongnu.org; Wed, 01 Feb 2012 14:52:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RsgEP-0006IY-3U for qemu-devel@nongnu.org; Wed, 01 Feb 2012 14:52:42 -0500 Received: from cpe-70-123-132-139.austin.res.rr.com ([70.123.132.139]:52993 helo=localhost6.localdomain6) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RsgEO-0006Ho-Fq for qemu-devel@nongnu.org; Wed, 01 Feb 2012 14:52:36 -0500 Received: from localhost6.localdomain6 (localhost.localdomain [127.0.0.1]) by localhost6.localdomain6 (8.14.4/8.14.4/Debian-2ubuntu1) with ESMTP id q11JqS4W006448; Wed, 1 Feb 2012 13:52:28 -0600 Received: (from anthony@localhost) by localhost6.localdomain6 (8.14.4/8.14.4/Submit) id q11JqQbD006446; Wed, 1 Feb 2012 13:52:26 -0600 From: Anthony Liguori To: qemu-devel@nongnu.org Date: Wed, 1 Feb 2012 13:51:03 -0600 Message-Id: <1328125863-6203-23-git-send-email-aliguori@us.ibm.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1328125863-6203-1-git-send-email-aliguori@us.ibm.com> References: <1328125863-6203-1-git-send-email-aliguori@us.ibm.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 70.123.132.139 Cc: Paolo Bonzini , Anthony Liguori , Andreas Faerber , Peter Maydell Subject: [Qemu-devel] [PATCH 22/22] container: make a decendent of Object X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Anthony Liguori --- v1 -> v2 - Add license (Paolo) --- Makefile.objs | 2 +- hw/container.c | 29 ----------------------------- hw/qdev-monitor.c | 14 ++++++-------- qom/Makefile | 2 +- qom/container.c | 27 +++++++++++++++++++++++++++ qom/object.c | 9 ++++----- 6 files changed, 39 insertions(+), 44 deletions(-) delete mode 100644 hw/container.c create mode 100644 qom/container.c diff --git a/Makefile.objs b/Makefile.objs index 1a26349..ec35320 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -286,7 +286,7 @@ hw-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o hw-obj-$(CONFIG_ESP) += esp.o hw-obj-y += dma-helpers.o sysbus.o isa-bus.o -hw-obj-y += qdev-addr.o container.o +hw-obj-y += qdev-addr.o # VGA hw-obj-$(CONFIG_VGA_PCI) += vga-pci.o diff --git a/hw/container.c b/hw/container.c deleted file mode 100644 index 1e97031..0000000 --- a/hw/container.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "sysbus.h" - -static int container_initfn(SysBusDevice *dev) -{ - return 0; -} - -static void container_class_init(ObjectClass *klass, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(klass); - SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); - - k->init = container_initfn; - dc->no_user = 1; -} - -static TypeInfo container_info = { - .name = "container", - .parent = TYPE_SYS_BUS_DEVICE, - .instance_size = sizeof(SysBusDevice), - .class_init = container_class_init, -}; - -static void container_init(void) -{ - type_register_static(&container_info); -} - -device_init(container_init); diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index 56a3458..135c2bf 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -177,30 +177,28 @@ int qdev_device_help(QemuOpts *opts) static Object *qdev_get_peripheral(void) { - static DeviceState *dev; + static Object *dev; if (dev == NULL) { - dev = qdev_create(NULL, "container"); + dev = object_new("container"); object_property_add_child(object_get_root(), "peripheral", OBJECT(dev), NULL); - qdev_init_nofail(dev); } - return OBJECT(dev); + return dev; } static Object *qdev_get_peripheral_anon(void) { - static DeviceState *dev; + static Object *dev; if (dev == NULL) { - dev = qdev_create(NULL, "container"); + dev = object_new("container"); object_property_add_child(object_get_root(), "peripheral-anon", OBJECT(dev), NULL); - qdev_init_nofail(dev); } - return OBJECT(dev); + return dev; } static void qbus_list_bus(DeviceState *dev) diff --git a/qom/Makefile b/qom/Makefile index a3c7892..f33f0be 100644 --- a/qom/Makefile +++ b/qom/Makefile @@ -1 +1 @@ -qom-y = object.o +qom-y = object.o container.o diff --git a/qom/container.c b/qom/container.c new file mode 100644 index 0000000..946cbff --- /dev/null +++ b/qom/container.c @@ -0,0 +1,27 @@ +/* + * Device Container + * + * Copyright IBM, Corp. 2012 + * + * Authors: + * Anthony Liguori + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/object.h" +#include "module.h" + +static TypeInfo container_info = { + .name = "container", + .instance_size = sizeof(Object), + .parent = TYPE_OBJECT, +}; + +static void container_init(void) +{ + type_register_static(&container_info); +} + +device_init(container_init); diff --git a/qom/object.c b/qom/object.c index 33217b8..4261944 100644 --- a/qom/object.c +++ b/qom/object.c @@ -662,14 +662,13 @@ const char *object_property_get_type(Object *obj, const char *name, Error **errp Object *object_get_root(void) { - static DeviceState *object_root; + static Object *root; - if (!object_root) { - object_root = qdev_create(NULL, "container"); - qdev_init_nofail(object_root); + if (!root) { + root = object_new("container"); } - return OBJECT(object_root); + return root; } static void object_get_child_property(Object *obj, Visitor *v, void *opaque,