mirror of https://gitee.com/openkylin/qemu.git
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-$(CONFIG_ESP) += esp.o
|
||||||
|
|
||||||
hw-obj-y += dma-helpers.o sysbus.o isa-bus.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
|
# VGA
|
||||||
hw-obj-$(CONFIG_VGA_PCI) += vga-pci.o
|
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 Object *qdev_get_peripheral(void)
|
||||||
{
|
{
|
||||||
static DeviceState *dev;
|
static Object *dev;
|
||||||
|
|
||||||
if (dev == NULL) {
|
if (dev == NULL) {
|
||||||
dev = qdev_create(NULL, "container");
|
dev = object_new("container");
|
||||||
object_property_add_child(object_get_root(), "peripheral",
|
object_property_add_child(object_get_root(), "peripheral",
|
||||||
OBJECT(dev), NULL);
|
OBJECT(dev), NULL);
|
||||||
qdev_init_nofail(dev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OBJECT(dev);
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object *qdev_get_peripheral_anon(void)
|
static Object *qdev_get_peripheral_anon(void)
|
||||||
{
|
{
|
||||||
static DeviceState *dev;
|
static Object *dev;
|
||||||
|
|
||||||
if (dev == NULL) {
|
if (dev == NULL) {
|
||||||
dev = qdev_create(NULL, "container");
|
dev = object_new("container");
|
||||||
object_property_add_child(object_get_root(), "peripheral-anon",
|
object_property_add_child(object_get_root(), "peripheral-anon",
|
||||||
OBJECT(dev), NULL);
|
OBJECT(dev), NULL);
|
||||||
qdev_init_nofail(dev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OBJECT(dev);
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qbus_list_bus(DeviceState *dev)
|
static void qbus_list_bus(DeviceState *dev)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
qom-y = object.o
|
qom-y = object.o container.o
|
||||||
|
|
|
@ -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)
|
Object *object_get_root(void)
|
||||||
{
|
{
|
||||||
static DeviceState *object_root;
|
static Object *root;
|
||||||
|
|
||||||
if (!object_root) {
|
if (!root) {
|
||||||
object_root = qdev_create(NULL, "container");
|
root = object_new("container");
|
||||||
qdev_init_nofail(object_root);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OBJECT(object_root);
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void object_get_child_property(Object *obj, Visitor *v, void *opaque,
|
static void object_get_child_property(Object *obj, Visitor *v, void *opaque,
|
||||||
|
|
Loading…
Reference in New Issue