From: Anthony Liguori Date: Fri, 23 Dec 2011 15:08:05 +0000 (-0600) Subject: container: make a decendent of Object X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8b45d447ce5cce07cbdf0f42b969137430284d5c;p=qmiga%2Fqemu.git container: make a decendent of Object Signed-off-by: Anthony Liguori --- v1 -> v2 - Add license (Paolo) --- diff --git a/Makefile.objs b/Makefile.objs index 1a263499a8..ec35320ff5 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 1e97031d07..0000000000 --- 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 56a34587b8..135c2bf237 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 a3c789207e..f33f0be8c9 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 0000000000..946cbff90f --- /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 33217b820f..4261944849 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,