mirror of https://github.com/xemu-project/xemu.git
spapr vio: fix to incomplete QOMify
Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
57040d4513
commit
215e209846
|
@ -388,7 +388,7 @@ static void rtas_quiesce(PowerPCCPU *cpu, sPAPRMachineState *spapr,
|
||||||
|
|
||||||
static VIOsPAPRDevice *reg_conflict(VIOsPAPRDevice *dev)
|
static VIOsPAPRDevice *reg_conflict(VIOsPAPRDevice *dev)
|
||||||
{
|
{
|
||||||
VIOsPAPRBus *bus = DO_UPCAST(VIOsPAPRBus, bus, dev->qdev.parent_bus);
|
VIOsPAPRBus *bus = SPAPR_VIO_BUS(dev->qdev.parent_bus);
|
||||||
BusChild *kid;
|
BusChild *kid;
|
||||||
VIOsPAPRDevice *other;
|
VIOsPAPRDevice *other;
|
||||||
|
|
||||||
|
@ -449,7 +449,7 @@ static void spapr_vio_busdev_realize(DeviceState *qdev, Error **errp)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Need to assign an address */
|
/* Need to assign an address */
|
||||||
VIOsPAPRBus *bus = DO_UPCAST(VIOsPAPRBus, bus, dev->qdev.parent_bus);
|
VIOsPAPRBus *bus = SPAPR_VIO_BUS(dev->qdev.parent_bus);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
dev->reg = bus->next_reg++;
|
dev->reg = bus->next_reg++;
|
||||||
|
@ -523,13 +523,12 @@ VIOsPAPRBus *spapr_vio_bus_init(void)
|
||||||
DeviceState *dev;
|
DeviceState *dev;
|
||||||
|
|
||||||
/* Create bridge device */
|
/* Create bridge device */
|
||||||
dev = qdev_create(NULL, "spapr-vio-bridge");
|
dev = qdev_create(NULL, TYPE_SPAPR_VIO_BRIDGE);
|
||||||
qdev_init_nofail(dev);
|
qdev_init_nofail(dev);
|
||||||
|
|
||||||
/* Create bus on bridge device */
|
/* Create bus on bridge device */
|
||||||
|
|
||||||
qbus = qbus_create(TYPE_SPAPR_VIO_BUS, dev, "spapr-vio");
|
qbus = qbus_create(TYPE_SPAPR_VIO_BUS, dev, "spapr-vio");
|
||||||
bus = DO_UPCAST(VIOsPAPRBus, bus, qbus);
|
bus = SPAPR_VIO_BUS(qbus);
|
||||||
bus->next_reg = 0x71000000;
|
bus->next_reg = 0x71000000;
|
||||||
|
|
||||||
/* hcall-vio */
|
/* hcall-vio */
|
||||||
|
@ -567,9 +566,8 @@ static void spapr_vio_bridge_class_init(ObjectClass *klass, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo spapr_vio_bridge_info = {
|
static const TypeInfo spapr_vio_bridge_info = {
|
||||||
.name = "spapr-vio-bridge",
|
.name = TYPE_SPAPR_VIO_BRIDGE,
|
||||||
.parent = TYPE_SYS_BUS_DEVICE,
|
.parent = TYPE_SYS_BUS_DEVICE,
|
||||||
.instance_size = sizeof(SysBusDevice),
|
|
||||||
.class_init = spapr_vio_bridge_class_init,
|
.class_init = spapr_vio_bridge_class_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#define TYPE_SPAPR_VIO_BUS "spapr-vio-bus"
|
#define TYPE_SPAPR_VIO_BUS "spapr-vio-bus"
|
||||||
#define SPAPR_VIO_BUS(obj) OBJECT_CHECK(VIOsPAPRBus, (obj), TYPE_SPAPR_VIO_BUS)
|
#define SPAPR_VIO_BUS(obj) OBJECT_CHECK(VIOsPAPRBus, (obj), TYPE_SPAPR_VIO_BUS)
|
||||||
|
|
||||||
struct VIOsPAPRDevice;
|
#define TYPE_SPAPR_VIO_BRIDGE "spapr-vio-bridge"
|
||||||
|
|
||||||
typedef struct VIOsPAPR_CRQ {
|
typedef struct VIOsPAPR_CRQ {
|
||||||
uint64_t qladdr;
|
uint64_t qladdr;
|
||||||
|
|
Loading…
Reference in New Issue