Revision 972abbe0 vl.c

b/vl.c
578 578

  
579 579
struct QEMUClock {
580 580
    int type;
581
    int enabled;
581 582
    /* XXX: add frequency */
582 583
};
583 584

  
......
812 813
    QEMUClock *clock;
813 814
    clock = qemu_mallocz(sizeof(QEMUClock));
814 815
    clock->type = type;
816
    clock->enabled = 1;
815 817
    return clock;
816 818
}
817 819

  
820
static void qemu_clock_enable(QEMUClock *clock, int enabled)
821
{
822
    clock->enabled = enabled;
823
}
824

  
818 825
QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque)
819 826
{
820 827
    QEMUTimer *ts;
......
907 914
{
908 915
    QEMUTimer **ptimer_head, *ts;
909 916
    int64_t current_time;
917
   
918
    if (!clock->enabled)
919
        return;
910 920

  
911 921
    current_time = qemu_get_clock (clock);
912 922
    ptimer_head = &active_timers[clock->type];
......
1017 1027

  
1018 1028
    /* vm time timers */
1019 1029
    if (vm_running) {
1020
        if (!cur_cpu || likely(!(cur_cpu->singlestep_enabled & SSTEP_NOTIMER)))
1021
            qemu_run_timers(vm_clock);
1030
        qemu_run_timers(vm_clock);
1022 1031
    }
1023 1032

  
1024 1033
    qemu_run_timers(rt_clock);
......
3969 3978
    for (; next_cpu != NULL; next_cpu = next_cpu->next_cpu) {
3970 3979
        CPUState *env = cur_cpu = next_cpu;
3971 3980

  
3981
        qemu_clock_enable(vm_clock,
3982
                          (cur_cpu->singlestep_enabled & SSTEP_NOTIMER) == 0);
3983

  
3972 3984
        if (alarm_timer->pending)
3973 3985
            break;
3974 3986
        if (cpu_can_run(env))

Also available in: Unified diff