From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56998) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2n9m-0000yi-Kl for qemu-devel@nongnu.org; Fri, 26 Jul 2013 14:54:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V2n9l-0001jN-80 for qemu-devel@nongnu.org; Fri, 26 Jul 2013 14:54:26 -0400 Received: from cantor2.suse.de ([195.135.220.15]:41736 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2n9k-0001jF-Up for qemu-devel@nongnu.org; Fri, 26 Jul 2013 14:54:25 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Fri, 26 Jul 2013 20:54:05 +0200 Message-Id: <1374864854-32454-7-git-send-email-afaerber@suse.de> In-Reply-To: <1374864854-32454-1-git-send-email-afaerber@suse.de> References: <1374864854-32454-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH qom-next for-1.6 06/15] grlib_irqmp: QOM cast cleanup List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Andreas=20F=C3=A4rber?= , Fabien Chouteau Signed-off-by: Andreas F=C3=A4rber --- hw/intc/grlib_irqmp.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/hw/intc/grlib_irqmp.c b/hw/intc/grlib_irqmp.c index 181f614..42e00bc 100644 --- a/hw/intc/grlib_irqmp.c +++ b/hw/intc/grlib_irqmp.c @@ -45,10 +45,14 @@ #define FORCE_OFFSET 0x80 #define EXTENDED_OFFSET 0xC0 =20 +#define TYPE_GRLIB_IRQMP "grlib,irqmp" +#define GRLIB_IRQMP(obj) OBJECT_CHECK(IRQMP, (obj), TYPE_GRLIB_IRQMP) + typedef struct IRQMPState IRQMPState; =20 typedef struct IRQMP { - SysBusDevice busdev; + SysBusDevice parent_obj; + MemoryRegion iomem; =20 void *set_pil_in; @@ -102,19 +106,10 @@ static void grlib_irqmp_check_irqs(IRQMPState *stat= e) =20 void grlib_irqmp_ack(DeviceState *dev, int intno) { - SysBusDevice *sdev; - IRQMP *irqmp; + IRQMP *irqmp =3D GRLIB_IRQMP(dev); IRQMPState *state; uint32_t mask; =20 - assert(dev !=3D NULL); - - sdev =3D SYS_BUS_DEVICE(dev); - assert(sdev !=3D NULL); - - irqmp =3D FROM_SYSBUS(typeof(*irqmp), sdev); - assert(irqmp !=3D NULL); - state =3D irqmp->state; assert(state !=3D NULL); =20 @@ -132,15 +127,10 @@ void grlib_irqmp_ack(DeviceState *dev, int intno) =20 void grlib_irqmp_set_irq(void *opaque, int irq, int level) { - IRQMP *irqmp; + IRQMP *irqmp =3D GRLIB_IRQMP(opaque); IRQMPState *s; int i =3D 0; =20 - assert(opaque !=3D NULL); - - irqmp =3D FROM_SYSBUS(typeof(*irqmp), SYS_BUS_DEVICE(opaque)); - assert(irqmp !=3D NULL); - s =3D irqmp->state; assert(s !=3D NULL); assert(s->parent !=3D NULL); @@ -325,8 +315,7 @@ static const MemoryRegionOps grlib_irqmp_ops =3D { =20 static void grlib_irqmp_reset(DeviceState *d) { - IRQMP *irqmp =3D container_of(d, IRQMP, busdev.qdev); - assert(irqmp !=3D NULL); + IRQMP *irqmp =3D GRLIB_IRQMP(d); assert(irqmp->state !=3D NULL); =20 memset(irqmp->state, 0, sizeof *irqmp->state); @@ -335,9 +324,7 @@ static void grlib_irqmp_reset(DeviceState *d) =20 static int grlib_irqmp_init(SysBusDevice *dev) { - IRQMP *irqmp =3D FROM_SYSBUS(typeof(*irqmp), dev); - - assert(irqmp !=3D NULL); + IRQMP *irqmp =3D GRLIB_IRQMP(dev); =20 /* Check parameters */ if (irqmp->set_pil_in =3D=3D NULL) { @@ -371,7 +358,7 @@ static void grlib_irqmp_class_init(ObjectClass *klass= , void *data) } =20 static const TypeInfo grlib_irqmp_info =3D { - .name =3D "grlib,irqmp", + .name =3D TYPE_GRLIB_IRQMP, .parent =3D TYPE_SYS_BUS_DEVICE, .instance_size =3D sizeof(IRQMP), .class_init =3D grlib_irqmp_class_init, --=20 1.8.1.4