Revision db895a1e hw/timer/m48t59.c
b/hw/timer/m48t59.c | ||
---|---|---|
691 | 691 |
return s; |
692 | 692 |
} |
693 | 693 |
|
694 |
static void m48t59_init_common(M48t59State *s)
|
|
694 |
static void m48t59_realize_common(M48t59State *s, Error **errp)
|
|
695 | 695 |
{ |
696 | 696 |
s->buffer = g_malloc0(s->size); |
697 | 697 |
if (s->model == 59) { |
... | ... | |
703 | 703 |
vmstate_register(NULL, -1, &vmstate_m48t59, s); |
704 | 704 |
} |
705 | 705 |
|
706 |
static int m48t59_init_isa1(ISADevice *dev)
|
|
706 |
static void m48t59_isa_realize(DeviceState *dev, Error **errp)
|
|
707 | 707 |
{ |
708 |
ISADevice *isadev = ISA_DEVICE(dev); |
|
708 | 709 |
M48t59ISAState *d = ISA_M48T59(dev); |
709 | 710 |
M48t59State *s = &d->state; |
710 | 711 |
|
711 |
isa_init_irq(dev, &s->IRQ, 8); |
|
712 |
m48t59_init_common(s); |
|
713 |
|
|
714 |
return 0; |
|
712 |
isa_init_irq(isadev, &s->IRQ, 8); |
|
713 |
m48t59_realize_common(s, errp); |
|
715 | 714 |
} |
716 | 715 |
|
717 | 716 |
static int m48t59_init1(SysBusDevice *dev) |
718 | 717 |
{ |
719 | 718 |
M48t59SysBusState *d = FROM_SYSBUS(M48t59SysBusState, dev); |
720 | 719 |
M48t59State *s = &d->state; |
720 |
Error *err = NULL; |
|
721 | 721 |
|
722 | 722 |
sysbus_init_irq(dev, &s->IRQ); |
723 | 723 |
|
724 | 724 |
memory_region_init_io(&s->iomem, &nvram_ops, s, "m48t59.nvram", s->size); |
725 | 725 |
sysbus_init_mmio(dev, &s->iomem); |
726 |
m48t59_init_common(s); |
|
726 |
m48t59_realize_common(s, &err); |
|
727 |
if (err != NULL) { |
|
728 |
error_free(err); |
|
729 |
return -1; |
|
730 |
} |
|
727 | 731 |
|
728 | 732 |
return 0; |
729 | 733 |
} |
... | ... | |
738 | 742 |
static void m48t59_isa_class_init(ObjectClass *klass, void *data) |
739 | 743 |
{ |
740 | 744 |
DeviceClass *dc = DEVICE_CLASS(klass); |
741 |
ISADeviceClass *ic = ISA_DEVICE_CLASS(klass); |
|
742 |
ic->init = m48t59_init_isa1;
|
|
745 |
|
|
746 |
dc->realize = m48t59_isa_realize;
|
|
743 | 747 |
dc->no_user = 1; |
744 | 748 |
dc->reset = m48t59_reset_isa; |
745 | 749 |
dc->props = m48t59_isa_properties; |
Also available in: Unified diff