Revision b6964827
b/vl.c | ||
---|---|---|
1002 | 1002 |
} |
1003 | 1003 |
}; |
1004 | 1004 |
|
1005 |
static void qemu_event_increment(void); |
|
1005 |
static void qemu_run_all_timers(void) |
|
1006 |
{ |
|
1007 |
/* rearm timer, if not periodic */ |
|
1008 |
if (alarm_timer->expired) { |
|
1009 |
alarm_timer->expired = 0; |
|
1010 |
qemu_rearm_alarm_timer(alarm_timer); |
|
1011 |
} |
|
1012 |
|
|
1013 |
alarm_timer->pending = 0; |
|
1014 |
|
|
1015 |
/* vm time timers */ |
|
1016 |
if (vm_running) { |
|
1017 |
if (!cur_cpu || likely(!(cur_cpu->singlestep_enabled & SSTEP_NOTIMER))) |
|
1018 |
qemu_run_timers(&active_timers[QEMU_CLOCK_VIRTUAL], |
|
1019 |
qemu_get_clock(vm_clock)); |
|
1020 |
} |
|
1021 |
|
|
1022 |
/* real time timers */ |
|
1023 |
qemu_run_timers(&active_timers[QEMU_CLOCK_REALTIME], |
|
1024 |
qemu_get_clock(rt_clock)); |
|
1025 |
|
|
1026 |
qemu_run_timers(&active_timers[QEMU_CLOCK_HOST], |
|
1027 |
qemu_get_clock(host_clock)); |
|
1028 |
} |
|
1006 | 1029 |
|
1007 | 1030 |
#ifdef _WIN32 |
1008 | 1031 |
static void CALLBACK host_alarm_handler(UINT uTimerID, UINT uMsg, |
... | ... | |
3891 | 3914 |
|
3892 | 3915 |
slirp_select_poll(&rfds, &wfds, &xfds, (ret < 0)); |
3893 | 3916 |
|
3894 |
/* rearm timer, if not periodic */ |
|
3895 |
if (alarm_timer->expired) { |
|
3896 |
alarm_timer->expired = 0; |
|
3897 |
qemu_rearm_alarm_timer(alarm_timer); |
|
3898 |
} |
|
3899 |
|
|
3900 |
alarm_timer->pending = 0; |
|
3901 |
|
|
3902 |
/* vm time timers */ |
|
3903 |
if (vm_running) { |
|
3904 |
if (!cur_cpu || likely(!(cur_cpu->singlestep_enabled & SSTEP_NOTIMER))) |
|
3905 |
qemu_run_timers(&active_timers[QEMU_CLOCK_VIRTUAL], |
|
3906 |
qemu_get_clock(vm_clock)); |
|
3907 |
} |
|
3908 |
|
|
3909 |
/* real time timers */ |
|
3910 |
qemu_run_timers(&active_timers[QEMU_CLOCK_REALTIME], |
|
3911 |
qemu_get_clock(rt_clock)); |
|
3912 |
|
|
3913 |
qemu_run_timers(&active_timers[QEMU_CLOCK_HOST], |
|
3914 |
qemu_get_clock(host_clock)); |
|
3917 |
qemu_run_all_timers(); |
|
3915 | 3918 |
|
3916 | 3919 |
/* Check bottom-halves last in case any of the earlier events triggered |
3917 | 3920 |
them. */ |
Also available in: Unified diff