From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:33620) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TcmKZ-0007Uq-1G for qemu-devel@nongnu.org; Sun, 25 Nov 2012 19:13:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TcmKT-0000HX-CC for qemu-devel@nongnu.org; Sun, 25 Nov 2012 19:13:46 -0500 Received: from cantor2.suse.de ([195.135.220.15]:46224 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TcmKT-0000Gc-2I for qemu-devel@nongnu.org; Sun, 25 Nov 2012 19:13:41 -0500 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 26 Nov 2012 01:12:25 +0100 Message-Id: <1353888766-6951-14-git-send-email-afaerber@suse.de> In-Reply-To: <1353888766-6951-1-git-send-email-afaerber@suse.de> References: <1353888766-6951-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] [RFC 13/34] ide: QOM'ify ISA IDE List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , =?UTF-8?q?Andreas=20F=C3=A4rber?= , anthony@codemonkey.ws Introduce type constant and cast macro to obsolete DO_UPCAST(). Add missing braces. Prepares for ISA realizefn. Signed-off-by: Andreas F=C3=A4rber --- hw/ide/isa.c | 41 +++++++++++++++++++++++++---------------- 1 Datei ge=C3=A4ndert, 25 Zeilen hinzugef=C3=BCgt(+), 16 Zeilen entfernt= (-) diff --git a/hw/ide/isa.c b/hw/ide/isa.c index 8ab2718..4d55885 100644 --- a/hw/ide/isa.c +++ b/hw/ide/isa.c @@ -33,8 +33,12 @@ /***********************************************************/ /* ISA IDE definitions */ =20 +#define TYPE_ISA_IDE "isa-ide" +#define ISA_IDE(obj) OBJECT_CHECK(ISAIDEState, (obj), TYPE_ISA_IDE) + typedef struct ISAIDEState { - ISADevice dev; + ISADevice parent_obj; + IDEBus bus; uint32_t iobase; uint32_t iobase2; @@ -44,7 +48,7 @@ typedef struct ISAIDEState { =20 static void isa_ide_reset(DeviceState *d) { - ISAIDEState *s =3D container_of(d, ISAIDEState, dev.qdev); + ISAIDEState *s =3D ISA_IDE(d); =20 ide_bus_reset(&s->bus); } @@ -63,9 +67,9 @@ static const VMStateDescription vmstate_ide_isa =3D { =20 static int isa_ide_initfn(ISADevice *dev) { - ISAIDEState *s =3D DO_UPCAST(ISAIDEState, dev, dev); + ISAIDEState *s =3D ISA_IDE(dev); =20 - ide_bus_new(&s->bus, &s->dev.qdev, 0); + ide_bus_new(&s->bus, DEVICE(dev), 0); ide_init_ioport(&s->bus, dev, s->iobase, s->iobase2); isa_init_irq(dev, &s->irq, s->isairq); ide_init2(&s->bus, s->irq); @@ -76,22 +80,27 @@ static int isa_ide_initfn(ISADevice *dev) ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq= , DriveInfo *hd0, DriveInfo *hd1) { - ISADevice *dev; + DeviceState *dev; + ISADevice *isadev; ISAIDEState *s; =20 - dev =3D isa_create(bus, "isa-ide"); - qdev_prop_set_uint32(&dev->qdev, "iobase", iobase); - qdev_prop_set_uint32(&dev->qdev, "iobase2", iobase2); - qdev_prop_set_uint32(&dev->qdev, "irq", isairq); - if (qdev_init(&dev->qdev) < 0) + isadev =3D isa_create(bus, TYPE_ISA_IDE); + dev =3D DEVICE(isadev); + qdev_prop_set_uint32(dev, "iobase", iobase); + qdev_prop_set_uint32(dev, "iobase2", iobase2); + qdev_prop_set_uint32(dev, "irq", isairq); + if (qdev_init(dev) < 0) { return NULL; + } =20 - s =3D DO_UPCAST(ISAIDEState, dev, dev); - if (hd0) + s =3D ISA_IDE(dev); + if (hd0) { ide_create_drive(&s->bus, 0, hd0); - if (hd1) + } + if (hd1) { ide_create_drive(&s->bus, 1, hd1); - return dev; + } + return isadev; } =20 static Property isa_ide_properties[] =3D { @@ -111,8 +120,8 @@ static void isa_ide_class_initfn(ObjectClass *klass, = void *data) dc->props =3D isa_ide_properties; } =20 -static TypeInfo isa_ide_info =3D { - .name =3D "isa-ide", +static const TypeInfo isa_ide_info =3D { + .name =3D TYPE_ISA_IDE, .parent =3D TYPE_ISA_DEVICE, .instance_size =3D sizeof(ISAIDEState), .class_init =3D isa_ide_class_initfn, --=20 1.7.10.4