container: make a decendent of Object
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- v1 -> v2 - Add license (Paolo)
This commit is contained in:
parent
db85b575b9
commit
8b45d447ce
@ -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
|
||||
|
@ -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);
|
@ -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)
|
||||
|
@ -1 +1 @@
|
||||
qom-y = object.o
|
||||
qom-y = object.o container.o
|
||||
|
27
qom/container.c
Normal file
27
qom/container.c
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Device Container
|
||||
*
|
||||
* Copyright IBM, Corp. 2012
|
||||
*
|
||||
* Authors:
|
||||
* Anthony Liguori <aliguori@us.ibm.com>
|
||||
*
|
||||
* 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);
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user