[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 22/22] container: make a decendent of Object
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [PATCH 22/22] container: make a decendent of Object |
Date: |
Wed, 1 Feb 2012 13:51:03 -0600 |
Signed-off-by: Anthony Liguori <address@hidden>
---
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 <address@hidden>
+ *
+ * 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,
--
1.7.4.1
- [Qemu-devel] [PATCH 10/22] qdev: kill off DeviceInfo, (continued)
- [Qemu-devel] [PATCH 10/22] qdev: kill off DeviceInfo, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 11/22] qdev: remove baked in notion of aliases (v2), Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 16/22] qdev: nuke qdev_init_chardev(), Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 15/22] qdev: split out UI portions into a new function, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 12/22] qom: add new command to search for types, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 17/22] qom: move properties from qdev to object, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 20/22] info qdm: do not require a parent_bus to be set, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 21/22] object: sure up reference counting, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 09/22] qdev: register all types natively through QEMU Object Model, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 22/22] container: make a decendent of Object,
Anthony Liguori <=
- [Qemu-devel] [PATCH 19/22] qdev: implement cleanup logic in finalize, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 07/22] qom: allow object_class_foreach to take additional parameters to refine search, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 14/22] qdev: refactor away qdev_create_from_info, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 13/22] qdev: split out common init to instance_init, Anthony Liguori, 2012/02/01
- [Qemu-devel] [PATCH 18/22] qom: accept any compatible type when setting a link property, Anthony Liguori, 2012/02/01
- Re: [Qemu-devel] [PATCH 00/22] qom: use Type system to register all devices (v2), Anthony Liguori, 2012/02/03