[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 10/17] hw/misc: QOM'ify eccmemctl.c
From: |
xiaoqiang zhao |
Subject: |
[Qemu-devel] [PATCH 10/17] hw/misc: QOM'ify eccmemctl.c |
Date: |
Tue, 7 Jun 2016 18:35:40 +0800 |
* Split the old SysBus init into an instance_init and a
DeviceClass::realize function
* Drop the old SysBus init function and use instance_init
Signed-off-by: xiaoqiang zhao <address@hidden>
---
hw/misc/eccmemctl.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/hw/misc/eccmemctl.c b/hw/misc/eccmemctl.c
index a0071f3..bb7cc52 100644
--- a/hw/misc/eccmemctl.c
+++ b/hw/misc/eccmemctl.c
@@ -295,22 +295,29 @@ static void ecc_reset(DeviceState *d)
s->regs[ECC_ECR1] = 0;
}
-static int ecc_init1(SysBusDevice *dev)
+static void ecc_init(Object *obj)
{
- ECCState *s = ECC_MEMCTL(dev);
+ ECCState *s = ECC_MEMCTL(obj);
+ SysBusDevice *dev = SYS_BUS_DEVICE(obj);
sysbus_init_irq(dev, &s->irq);
- s->regs[0] = s->version;
- memory_region_init_io(&s->iomem, OBJECT(dev), &ecc_mem_ops, s, "ecc",
ECC_SIZE);
+
+ memory_region_init_io(&s->iomem, obj, &ecc_mem_ops, s, "ecc", ECC_SIZE);
sysbus_init_mmio(dev, &s->iomem);
+}
+
+static void ecc_realize(DeviceState *dev, Error **errp)
+{
+ ECCState *s = ECC_MEMCTL(dev);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
+
+ s->regs[0] = s->version;
if (s->version == ECC_MCC) { // SS-600MP only
memory_region_init_io(&s->iomem_diag, OBJECT(dev), &ecc_diag_mem_ops,
s,
"ecc.diag", ECC_DIAG_SIZE);
- sysbus_init_mmio(dev, &s->iomem_diag);
+ sysbus_init_mmio(sbd, &s->iomem_diag);
}
-
- return 0;
}
static Property ecc_properties[] = {
@@ -321,9 +328,8 @@ static Property ecc_properties[] = {
static void ecc_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
- k->init = ecc_init1;
+ dc->realize = ecc_realize;
dc->reset = ecc_reset;
dc->vmsd = &vmstate_ecc;
dc->props = ecc_properties;
@@ -333,6 +339,7 @@ static const TypeInfo ecc_info = {
.name = TYPE_ECC_MEMCTL,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(ECCState),
+ .instance_init = ecc_init,
.class_init = ecc_class_init,
};
--
2.1.4
- [Qemu-devel] [PATCH 10/17] hw/misc: QOM'ify eccmemctl.c,
xiaoqiang zhao <=
- [Qemu-devel] [PATCH 11/17] hw/misc: QOM'ify exynos4210_pmu.c, xiaoqiang zhao, 2016/06/07
- [Qemu-devel] [PATCH 14/17] hw/dma: QOM'ify pxa2xx_dma.c, xiaoqiang zhao, 2016/06/07
- [Qemu-devel] [PATCH 17/17] hw/sd: QOM'ify pl181.c, xiaoqiang zhao, 2016/06/07
- [Qemu-devel] [PATCH 15/17] hw/dma: QOM'ify sparc32_dma.c, xiaoqiang zhao, 2016/06/07
- [Qemu-devel] [PATCH 16/17] hw/dma: QOM'ify sun4m_iommu.c, xiaoqiang zhao, 2016/06/07
- [Qemu-devel] [PATCH 12/17] hw/misc: QOM'ify mst_fpga.c, xiaoqiang zhao, 2016/06/07
- [Qemu-devel] [PATCH 13/17] hw/misc: QOM'ify slavio_misc.c, xiaoqiang zhao, 2016/06/07