Re: [Qemu-devel] [RESEND PATCH 7/9] hw/timer: QOM'ify slavio_timer
On 02/05/2017 10:37 AM, xiaoqiang zhao wrote: rename slavio_timer_init1 to slavio_timer_init and assign it to slavio_timer_info.instance_init, then we drop the SysBusDeviceClass::init Signed-off-by: xiaoqiang zhaoReviewed-by: Philippe Mathieu-Daudé --- hw/timer/slavio_timer.c | 12 +--- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/hw/timer/slavio_timer.c b/hw/timer/slavio_timer.c index bfee1f3027..a8cc9c0148 100644 --- a/hw/timer/slavio_timer.c +++ b/hw/timer/slavio_timer.c @@ -373,9 +373,10 @@ static void slavio_timer_reset(DeviceState *d) s->cputimer_mode = 0; } -static int slavio_timer_init1(SysBusDevice *dev) +static void slavio_timer_init(Object *obj) { -SLAVIO_TIMERState *s = SLAVIO_TIMER(dev); +SLAVIO_TIMERState *s = SLAVIO_TIMER(obj); +SysBusDevice *dev = SYS_BUS_DEVICE(obj); QEMUBH *bh; unsigned int i; TimerContext *tc; @@ -394,14 +395,12 @@ static int slavio_timer_init1(SysBusDevice *dev) size = i == 0 ? SYS_TIMER_SIZE : CPU_TIMER_SIZE; snprintf(timer_name, sizeof(timer_name), "timer-%i", i); -memory_region_init_io(>iomem, OBJECT(s), _timer_mem_ops, tc, +memory_region_init_io(>iomem, obj, _timer_mem_ops, tc, timer_name, size); sysbus_init_mmio(dev, >iomem); sysbus_init_irq(dev, >cputimer[i].irq); } - -return 0; } static Property slavio_timer_properties[] = { @@ -412,9 +411,7 @@ static Property slavio_timer_properties[] = { static void slavio_timer_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); -SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); -k->init = slavio_timer_init1; dc->reset = slavio_timer_reset; dc->vmsd = _slavio_timer; dc->props = slavio_timer_properties; @@ -424,6 +421,7 @@ static const TypeInfo slavio_timer_info = { .name = TYPE_SLAVIO_TIMER, .parent= TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(SLAVIO_TIMERState), +.instance_init = slavio_timer_init, .class_init= slavio_timer_class_init, };
[Qemu-devel] [RESEND PATCH 7/9] hw/timer: QOM'ify slavio_timer
rename slavio_timer_init1 to slavio_timer_init and assign it to slavio_timer_info.instance_init, then we drop the SysBusDeviceClass::init Signed-off-by: xiaoqiang zhao--- hw/timer/slavio_timer.c | 12 +--- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/hw/timer/slavio_timer.c b/hw/timer/slavio_timer.c index bfee1f3027..a8cc9c0148 100644 --- a/hw/timer/slavio_timer.c +++ b/hw/timer/slavio_timer.c @@ -373,9 +373,10 @@ static void slavio_timer_reset(DeviceState *d) s->cputimer_mode = 0; } -static int slavio_timer_init1(SysBusDevice *dev) +static void slavio_timer_init(Object *obj) { -SLAVIO_TIMERState *s = SLAVIO_TIMER(dev); +SLAVIO_TIMERState *s = SLAVIO_TIMER(obj); +SysBusDevice *dev = SYS_BUS_DEVICE(obj); QEMUBH *bh; unsigned int i; TimerContext *tc; @@ -394,14 +395,12 @@ static int slavio_timer_init1(SysBusDevice *dev) size = i == 0 ? SYS_TIMER_SIZE : CPU_TIMER_SIZE; snprintf(timer_name, sizeof(timer_name), "timer-%i", i); -memory_region_init_io(>iomem, OBJECT(s), _timer_mem_ops, tc, +memory_region_init_io(>iomem, obj, _timer_mem_ops, tc, timer_name, size); sysbus_init_mmio(dev, >iomem); sysbus_init_irq(dev, >cputimer[i].irq); } - -return 0; } static Property slavio_timer_properties[] = { @@ -412,9 +411,7 @@ static Property slavio_timer_properties[] = { static void slavio_timer_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); -SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass); -k->init = slavio_timer_init1; dc->reset = slavio_timer_reset; dc->vmsd = _slavio_timer; dc->props = slavio_timer_properties; @@ -424,6 +421,7 @@ static const TypeInfo slavio_timer_info = { .name = TYPE_SLAVIO_TIMER, .parent= TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(SLAVIO_TIMERState), +.instance_init = slavio_timer_init, .class_init= slavio_timer_class_init, }; -- 2.11.0