Revision 2faf58cd vl.c

b/vl.c
1074 1074
    }
1075 1075
}
1076 1076

  
1077
static void timer_save(QEMUFile *f, void *opaque)
1078
{
1079
    struct TimersState *s = opaque;
1080

  
1081
    qemu_put_be64(f, s->cpu_ticks_offset);
1082
    qemu_put_be64(f, s->ticks_per_sec);
1083
    qemu_put_be64(f, s->cpu_clock_offset);
1084
}
1085

  
1086
static int timer_load(QEMUFile *f, void *opaque, int version_id)
1087
{
1088
    struct TimersState *s = opaque;
1089

  
1090
    if (version_id != 1 && version_id != 2)
1091
        return -EINVAL;
1092
    s->cpu_ticks_offset = qemu_get_be64(f);
1093
    s->ticks_per_sec = qemu_get_be64(f);
1094
    if (version_id == 2) {
1095
        s->cpu_clock_offset = qemu_get_be64(f);
1077
static const VMStateDescription vmstate_timers = {
1078
    .name = "timer",
1079
    .version_id = 2,
1080
    .minimum_version_id = 1,
1081
    .minimum_version_id_old = 1,
1082
    .fields      = (VMStateField []) {
1083
        VMSTATE_INT64(cpu_ticks_offset, TimersState),
1084
        VMSTATE_INT64(ticks_per_sec, TimersState),
1085
        VMSTATE_INT64_V(cpu_clock_offset, TimersState, 2),
1086
        VMSTATE_END_OF_LIST()
1096 1087
    }
1097
    return 0;
1098
}
1088
};
1099 1089

  
1100 1090
static void qemu_event_increment(void);
1101 1091

  
......
5626 5616
    if (qemu_opts_foreach(&qemu_drive_opts, drive_init_func, machine, 1) != 0)
5627 5617
        exit(1);
5628 5618

  
5629
    register_savevm("timer", 0, 2, timer_save, timer_load, &timers_state);
5619
    vmstate_register(0, &vmstate_timers ,&timers_state);
5630 5620
    register_savevm_live("ram", 0, 3, ram_save_live, NULL, ram_load, NULL);
5631 5621

  
5632 5622
    /* Maintain compatibility with multiple stdio monitors */

Also available in: Unified diff