[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v3 09/16] hw/timer: QOM'ify m48txx_sysbus (pass 1)
From: |
xiaoqiang zhao |
Subject: |
[Qemu-arm] [PATCH v3 09/16] hw/timer: QOM'ify m48txx_sysbus (pass 1) |
Date: |
Tue, 16 Feb 2016 19:09:41 +0800 |
* split the old SysBus init function into an instance_init
and a Device realize function
* use DeviceClass::realize instead of SysBusDeviceClass::init
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: xiaoqiang zhao <address@hidden>
---
hw/timer/m48t59.c | 35 ++++++++++++++++++-----------------
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c
index bbcfeb2..3c683aa 100644
--- a/hw/timer/m48t59.c
+++ b/hw/timer/m48t59.c
@@ -763,30 +763,31 @@ static void m48t59_isa_realize(DeviceState *dev, Error
**errp)
}
}
-static int m48t59_init1(SysBusDevice *dev)
+static void m48t59_init1(Object *obj)
{
- M48txxSysBusDeviceClass *u = M48TXX_SYS_BUS_GET_CLASS(dev);
- M48txxSysBusState *d = M48TXX_SYS_BUS(dev);
- Object *o = OBJECT(dev);
+ M48txxSysBusDeviceClass *u = M48TXX_SYS_BUS_GET_CLASS(obj);
+ M48txxSysBusState *d = M48TXX_SYS_BUS(obj);
+ SysBusDevice *dev = SYS_BUS_DEVICE(obj);
M48t59State *s = &d->state;
- Error *err = NULL;
s->model = u->info.model;
s->size = u->info.size;
sysbus_init_irq(dev, &s->IRQ);
- memory_region_init_io(&s->iomem, o, &nvram_ops, s, "m48t59.nvram",
+ memory_region_init_io(&s->iomem, obj, &nvram_ops, s, "m48t59.nvram",
s->size);
- memory_region_init_io(&d->io, o, &m48t59_io_ops, s, "m48t59", 4);
- sysbus_init_mmio(dev, &s->iomem);
- sysbus_init_mmio(dev, &d->io);
- m48t59_realize_common(s, &err);
- if (err != NULL) {
- error_free(err);
- return -1;
- }
+ memory_region_init_io(&d->io, obj, &m48t59_io_ops, s, "m48t59", 4);
+}
- return 0;
+static void m48t59_realize(DeviceState *dev, Error **errp)
+{
+ M48txxSysBusState *d = M48TXX_SYS_BUS(dev);
+ M48t59State *s = &d->state;
+ SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
+
+ sysbus_init_mmio(sbd, &s->iomem);
+ sysbus_init_mmio(sbd, &d->io);
+ m48t59_realize_common(s, errp);
}
static uint32_t m48txx_isa_read(Nvram *obj, uint32_t addr)
@@ -860,10 +861,9 @@ static Property m48t59_sysbus_properties[] = {
static void m48txx_sysbus_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
NvramClass *nc = NVRAM_CLASS(klass);
- k->init = m48t59_init1;
+ dc->realize = m48t59_realize;
dc->reset = m48t59_reset_sysbus;
dc->props = m48t59_sysbus_properties;
nc->read = m48txx_sysbus_read;
@@ -889,6 +889,7 @@ static const TypeInfo m48txx_sysbus_type_info = {
.name = TYPE_M48TXX_SYS_BUS,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(M48txxSysBusState),
+ .instance_init = m48t59_init1,
.abstract = true,
.class_init = m48txx_sysbus_class_init,
.interfaces = (InterfaceInfo[]) {
--
2.1.4
- [Qemu-arm] [PATCH v3 00/16] QOM'ify hw/timer/*, xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 02/16] hw/timer: QOM'ify arm_timer (pass 2), xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 07/16] hw/timer: QOM'ify grlib_gptimer, xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 04/16] hw/timer: QOM'ify exynos4210_mct, xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 06/16] hw/timer: QOM'ify exynos4210_rtc, xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 01/16] hw/timer: QOM'ify arm_timer (pass 1), xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 09/16] hw/timer: QOM'ify m48txx_sysbus (pass 1),
xiaoqiang zhao <=
- [Qemu-arm] [PATCH v3 05/16] hw/timer: QOM'ify exynos4210_pwm, xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 03/16] hw/timer: QOM'ify etraxfs_timer, xiaoqiang zhao, 2016/02/16
- [Qemu-arm] [PATCH v3 08/16] hw/timer: QOM'ify lm32_timer, xiaoqiang zhao, 2016/02/16
- Re: [Qemu-arm] [PATCH v3 00/16] QOM'ify hw/timer/*, Peter Maydell, 2016/02/18