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