Revision 293c16aa

b/hw/stellaris.c
604 604
    s->dcgc[0] = 1;
605 605
}
606 606

  
607
static void ssys_save(QEMUFile *f, void *opaque)
607
static int stellaris_sys_post_load(void *opaque, int version_id)
608 608
{
609
    ssys_state *s = (ssys_state *)opaque;
610

  
611
    qemu_put_be32(f, s->pborctl);
612
    qemu_put_be32(f, s->ldopctl);
613
    qemu_put_be32(f, s->int_mask);
614
    qemu_put_be32(f, s->int_status);
615
    qemu_put_be32(f, s->resc);
616
    qemu_put_be32(f, s->rcc);
617
    qemu_put_be32(f, s->rcgc[0]);
618
    qemu_put_be32(f, s->rcgc[1]);
619
    qemu_put_be32(f, s->rcgc[2]);
620
    qemu_put_be32(f, s->scgc[0]);
621
    qemu_put_be32(f, s->scgc[1]);
622
    qemu_put_be32(f, s->scgc[2]);
623
    qemu_put_be32(f, s->dcgc[0]);
624
    qemu_put_be32(f, s->dcgc[1]);
625
    qemu_put_be32(f, s->dcgc[2]);
626
    qemu_put_be32(f, s->clkvclr);
627
    qemu_put_be32(f, s->ldoarst);
628
}
629

  
630
static int ssys_load(QEMUFile *f, void *opaque, int version_id)
631
{
632
    ssys_state *s = (ssys_state *)opaque;
633

  
634
    if (version_id != 1)
635
        return -EINVAL;
609
    ssys_state *s = opaque;
636 610

  
637
    s->pborctl = qemu_get_be32(f);
638
    s->ldopctl = qemu_get_be32(f);
639
    s->int_mask = qemu_get_be32(f);
640
    s->int_status = qemu_get_be32(f);
641
    s->resc = qemu_get_be32(f);
642
    s->rcc = qemu_get_be32(f);
643
    s->rcgc[0] = qemu_get_be32(f);
644
    s->rcgc[1] = qemu_get_be32(f);
645
    s->rcgc[2] = qemu_get_be32(f);
646
    s->scgc[0] = qemu_get_be32(f);
647
    s->scgc[1] = qemu_get_be32(f);
648
    s->scgc[2] = qemu_get_be32(f);
649
    s->dcgc[0] = qemu_get_be32(f);
650
    s->dcgc[1] = qemu_get_be32(f);
651
    s->dcgc[2] = qemu_get_be32(f);
652
    s->clkvclr = qemu_get_be32(f);
653
    s->ldoarst = qemu_get_be32(f);
654 611
    ssys_calculate_system_clock(s);
655 612

  
656 613
    return 0;
657 614
}
658 615

  
616
static const VMStateDescription vmstate_stellaris_sys = {
617
    .name = "stellaris_sys",
618
    .version_id = 1,
619
    .minimum_version_id = 1,
620
    .minimum_version_id_old = 1,
621
    .post_load = stellaris_sys_post_load,
622
    .fields      = (VMStateField[]) {
623
        VMSTATE_UINT32(pborctl, ssys_state),
624
        VMSTATE_UINT32(ldopctl, ssys_state),
625
        VMSTATE_UINT32(int_mask, ssys_state),
626
        VMSTATE_UINT32(int_status, ssys_state),
627
        VMSTATE_UINT32(resc, ssys_state),
628
        VMSTATE_UINT32(rcc, ssys_state),
629
        VMSTATE_UINT32_ARRAY(rcgc, ssys_state, 3),
630
        VMSTATE_UINT32_ARRAY(scgc, ssys_state, 3),
631
        VMSTATE_UINT32_ARRAY(dcgc, ssys_state, 3),
632
        VMSTATE_UINT32(clkvclr, ssys_state),
633
        VMSTATE_UINT32(ldoarst, ssys_state),
634
        VMSTATE_END_OF_LIST()
635
    }
636
};
637

  
659 638
static int stellaris_sys_init(uint32_t base, qemu_irq irq,
660 639
                              stellaris_board_info * board,
661 640
                              uint8_t *macaddr)
......
675 654
                                       DEVICE_NATIVE_ENDIAN);
676 655
    cpu_register_physical_memory(base, 0x00001000, iomemtype);
677 656
    ssys_reset(s);
678
    register_savevm(NULL, "stellaris_sys", -1, 1, ssys_save, ssys_load, s);
657
    vmstate_register(NULL, -1, &vmstate_stellaris_sys, s);
679 658
    return 0;
680 659
}
681 660

  

Also available in: Unified diff