From: Andreas Färber Date: Sun, 18 Aug 2013 18:48:33 +0000 (+0200) Subject: arm11mpcore: Create container MemoryRegion in instance_init X-Git-Tag: v1.7.0-rc0~21^2~19 X-Git-Url: https://git.proxmox.com/?p=qemu.git;a=commitdiff_plain;h=2c42c3a063c2a8dda74b613bfab021b86ebc7ee5 arm11mpcore: Create container MemoryRegion in instance_init This allows to map the region directly after object initialization. Reviewed-by: Peter Maydell Signed-off-by: Andreas Färber --- diff --git a/hw/cpu/arm11mpcore.c b/hw/cpu/arm11mpcore.c index 8719634e2..5f80e7bc8 100644 --- a/hw/cpu/arm11mpcore.c +++ b/hw/cpu/arm11mpcore.c @@ -90,8 +90,6 @@ static void mpcore_priv_map_setup(ARM11MPCorePriveState *s) SysBusDevice *gicbusdev = SYS_BUS_DEVICE(s->gic); SysBusDevice *timerbusdev = SYS_BUS_DEVICE(s->mptimer); SysBusDevice *wdtbusdev = SYS_BUS_DEVICE(s->wdtimer); - memory_region_init(&s->container, OBJECT(s), - "mpcore-priv-container", 0x2000); memory_region_init_io(&s->iomem, OBJECT(s), &mpcore_scu_ops, s, "mpcore-scu", 0x100); memory_region_add_subregion(&s->container, 0, &s->iomem); @@ -155,10 +153,19 @@ static int mpcore_priv_init(SysBusDevice *sbd) qdev_init_nofail(s->wdtimer); mpcore_priv_map_setup(s); - sysbus_init_mmio(sbd, &s->container); return 0; } +static void mpcore_priv_initfn(Object *obj) +{ + SysBusDevice *sbd = SYS_BUS_DEVICE(obj); + ARM11MPCorePriveState *s = ARM11MPCORE_PRIV(obj); + + memory_region_init(&s->container, OBJECT(s), + "mpcore-priv-container", 0x2000); + sysbus_init_mmio(sbd, &s->container); +} + #define TYPE_REALVIEW_MPCORE_RIRQ "realview_mpcore" #define REALVIEW_MPCORE_RIRQ(obj) \ OBJECT_CHECK(mpcore_rirq_state, (obj), TYPE_REALVIEW_MPCORE_RIRQ) @@ -277,6 +284,7 @@ static const TypeInfo mpcore_priv_info = { .name = TYPE_ARM11MPCORE_PRIV, .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(ARM11MPCorePriveState), + .instance_init = mpcore_priv_initfn, .class_init = mpcore_priv_class_init, };