Skip to content

Commit

Permalink
ahci: QOM'ify some more
Browse files Browse the repository at this point in the history
Introduce type constant and avoid DO_UPCAST().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
  • Loading branch information
Hu Tao authored and afaerber committed Jul 22, 2013
1 parent 3509c39 commit b3b162c
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions hw/ide/ahci.c
Expand Up @@ -1286,8 +1286,14 @@ const VMStateDescription vmstate_ahci = {
},
};

#define TYPE_SYSBUS_AHCI "sysbus-ahci"
#define SYSBUS_AHCI(obj) OBJECT_CHECK(SysbusAHCIState, (obj), TYPE_SYSBUS_AHCI)

typedef struct SysbusAHCIState {
SysBusDevice busdev;
/*< private >*/
SysBusDevice parent_obj;
/*< public >*/

AHCIState ahci;
uint32_t num_ports;
} SysbusAHCIState;
Expand All @@ -1303,15 +1309,15 @@ static const VMStateDescription vmstate_sysbus_ahci = {

static void sysbus_ahci_reset(DeviceState *dev)
{
SysbusAHCIState *s = DO_UPCAST(SysbusAHCIState, busdev.qdev, dev);
SysbusAHCIState *s = SYSBUS_AHCI(dev);

ahci_reset(&s->ahci);
}

static int sysbus_ahci_init(SysBusDevice *dev)
{
SysbusAHCIState *s = FROM_SYSBUS(SysbusAHCIState, dev);
ahci_init(&s->ahci, &dev->qdev, NULL, s->num_ports);
SysbusAHCIState *s = SYSBUS_AHCI(dev);
ahci_init(&s->ahci, DEVICE(dev), NULL, s->num_ports);

sysbus_init_mmio(dev, &s->ahci.mem);
sysbus_init_irq(dev, &s->ahci.irq);
Expand All @@ -1335,7 +1341,7 @@ static void sysbus_ahci_class_init(ObjectClass *klass, void *data)
}

static const TypeInfo sysbus_ahci_info = {
.name = "sysbus-ahci",
.name = TYPE_SYSBUS_AHCI,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(SysbusAHCIState),
.class_init = sysbus_ahci_class_init,
Expand Down

0 comments on commit b3b162c

Please sign in to comment.