i8254: QOM'ify some more

Introduce type constant and avoid DO_UPCAST().

Prepares for PIT realizefn.

Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
Andreas Färber 2012-11-25 18:05:53 +01:00
parent db895a1e6a
commit 3afe7e14a4
2 changed files with 13 additions and 9 deletions

View file

@ -265,7 +265,7 @@ static void pit_irq_timer(void *opaque)
static void pit_reset(DeviceState *dev) static void pit_reset(DeviceState *dev)
{ {
PITCommonState *pit = DO_UPCAST(PITCommonState, dev.qdev, dev); PITCommonState *pit = PIT_COMMON(dev);
PITChannelState *s; PITChannelState *s;
pit_reset_common(pit); pit_reset_common(pit);
@ -348,7 +348,7 @@ static void pit_class_initfn(ObjectClass *klass, void *data)
} }
static const TypeInfo pit_info = { static const TypeInfo pit_info = {
.name = "isa-pit", .name = TYPE_I8254,
.parent = TYPE_PIT_COMMON, .parent = TYPE_PIT_COMMON,
.instance_size = sizeof(PITCommonState), .instance_size = sizeof(PITCommonState),
.class_init = pit_class_initfn, .class_init = pit_class_initfn,

View file

@ -37,18 +37,22 @@ typedef struct PITChannelInfo {
int out; int out;
} PITChannelInfo; } PITChannelInfo;
#define TYPE_I8254 "isa-pit"
static inline ISADevice *pit_init(ISABus *bus, int base, int isa_irq, static inline ISADevice *pit_init(ISABus *bus, int base, int isa_irq,
qemu_irq alt_irq) qemu_irq alt_irq)
{ {
ISADevice *dev; DeviceState *dev;
ISADevice *d;
dev = isa_create(bus, "isa-pit"); d = isa_create(bus, TYPE_I8254);
qdev_prop_set_uint32(&dev->qdev, "iobase", base); dev = DEVICE(d);
qdev_init_nofail(&dev->qdev); qdev_prop_set_uint32(dev, "iobase", base);
qdev_connect_gpio_out(&dev->qdev, 0, qdev_init_nofail(dev);
isa_irq >= 0 ? isa_get_irq(dev, isa_irq) : alt_irq); qdev_connect_gpio_out(dev, 0,
isa_irq >= 0 ? isa_get_irq(d, isa_irq) : alt_irq);
return dev; return d;
} }
static inline ISADevice *kvm_pit_init(ISABus *bus, int base) static inline ISADevice *kvm_pit_init(ISABus *bus, int base)