Revision 74475455 qemu-timer.c
b/qemu-timer.c | ||
---|---|---|
242 | 242 |
return; |
243 | 243 |
|
244 | 244 |
cur_time = cpu_get_clock(); |
245 |
cur_icount = qemu_get_clock(vm_clock); |
|
245 |
cur_icount = qemu_get_clock_ns(vm_clock);
|
|
246 | 246 |
delta = cur_icount - cur_time; |
247 | 247 |
/* FIXME: This is a very crude algorithm, somewhat prone to oscillation. */ |
248 | 248 |
if (delta > 0 |
... | ... | |
271 | 271 |
static void icount_adjust_vm(void * opaque) |
272 | 272 |
{ |
273 | 273 |
qemu_mod_timer(icount_vm_timer, |
274 |
qemu_get_clock(vm_clock) + get_ticks_per_sec() / 10); |
|
274 |
qemu_get_clock_ns(vm_clock) + get_ticks_per_sec() / 10);
|
|
275 | 275 |
icount_adjust(); |
276 | 276 |
} |
277 | 277 |
|
... | ... | |
604 | 604 |
icount_rt_timer = qemu_new_timer_ms(rt_clock, icount_adjust_rt, NULL); |
605 | 605 |
qemu_mod_timer(icount_rt_timer, |
606 | 606 |
qemu_get_clock_ms(rt_clock) + 1000); |
607 |
icount_vm_timer = qemu_new_timer(vm_clock, icount_adjust_vm, NULL); |
|
607 |
icount_vm_timer = qemu_new_timer_ns(vm_clock, icount_adjust_vm, NULL);
|
|
608 | 608 |
qemu_mod_timer(icount_vm_timer, |
609 |
qemu_get_clock(vm_clock) + get_ticks_per_sec() / 10); |
|
609 |
qemu_get_clock_ns(vm_clock) + get_ticks_per_sec() / 10);
|
|
610 | 610 |
} |
611 | 611 |
|
612 | 612 |
void qemu_run_all_timers(void) |
... | ... | |
646 | 646 |
static int64_t delta_min = INT64_MAX; |
647 | 647 |
static int64_t delta_max, delta_cum, last_clock, delta, ti; |
648 | 648 |
static int count; |
649 |
ti = qemu_get_clock(vm_clock); |
|
649 |
ti = qemu_get_clock_ns(vm_clock);
|
|
650 | 650 |
if (last_clock != 0) { |
651 | 651 |
delta = ti - last_clock; |
652 | 652 |
if (delta < delta_min) |
... | ... | |
706 | 706 |
|
707 | 707 |
if (!use_icount && active_timers[QEMU_CLOCK_VIRTUAL]) { |
708 | 708 |
delta = active_timers[QEMU_CLOCK_VIRTUAL]->expire_time - |
709 |
qemu_get_clock(vm_clock); |
|
709 |
qemu_get_clock_ns(vm_clock);
|
|
710 | 710 |
} else { |
711 | 711 |
delta = INT32_MAX; |
712 | 712 |
} |
Also available in: Unified diff