|
@@ -337,26 +337,6 @@ void qtest_set_virtual_clock(int64_t count)
|
|
qatomic_set_i64(&qtest_clock_counter, count);
|
|
qatomic_set_i64(&qtest_clock_counter, count);
|
|
}
|
|
}
|
|
|
|
|
|
-static void qtest_clock_warp(int64_t dest)
|
|
|
|
-{
|
|
|
|
- int64_t clock = cpus_get_virtual_clock();
|
|
|
|
- AioContext *aio_context;
|
|
|
|
- assert(qtest_enabled());
|
|
|
|
- aio_context = qemu_get_aio_context();
|
|
|
|
- while (clock < dest) {
|
|
|
|
- int64_t deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL,
|
|
|
|
- QEMU_TIMER_ATTR_ALL);
|
|
|
|
- int64_t warp = qemu_soonest_timeout(dest - clock, deadline);
|
|
|
|
-
|
|
|
|
- cpus_set_virtual_clock(cpus_get_virtual_clock() + warp);
|
|
|
|
-
|
|
|
|
- qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
|
|
|
|
- timerlist_run_timers(aio_context->tlg.tl[QEMU_CLOCK_VIRTUAL]);
|
|
|
|
- clock = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
|
|
|
|
- }
|
|
|
|
- qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static bool (*process_command_cb)(CharBackend *chr, gchar **words);
|
|
static bool (*process_command_cb)(CharBackend *chr, gchar **words);
|
|
|
|
|
|
void qtest_set_command_cb(bool (*pc_cb)(CharBackend *chr, gchar **words))
|
|
void qtest_set_command_cb(bool (*pc_cb)(CharBackend *chr, gchar **words))
|
|
@@ -751,7 +731,8 @@ static void qtest_process_command(CharBackend *chr, gchar **words)
|
|
ns = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL,
|
|
ns = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL,
|
|
QEMU_TIMER_ATTR_ALL);
|
|
QEMU_TIMER_ATTR_ALL);
|
|
}
|
|
}
|
|
- qtest_clock_warp(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + ns);
|
|
|
|
|
|
+ qemu_clock_advance_virtual_time(
|
|
|
|
+ qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + ns);
|
|
qtest_send_prefix(chr);
|
|
qtest_send_prefix(chr);
|
|
qtest_sendf(chr, "OK %"PRIi64"\n",
|
|
qtest_sendf(chr, "OK %"PRIi64"\n",
|
|
(int64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL));
|
|
(int64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL));
|
|
@@ -777,7 +758,7 @@ static void qtest_process_command(CharBackend *chr, gchar **words)
|
|
g_assert(words[1]);
|
|
g_assert(words[1]);
|
|
ret = qemu_strtoi64(words[1], NULL, 0, &ns);
|
|
ret = qemu_strtoi64(words[1], NULL, 0, &ns);
|
|
g_assert(ret == 0);
|
|
g_assert(ret == 0);
|
|
- qtest_clock_warp(ns);
|
|
|
|
|
|
+ qemu_clock_advance_virtual_time(ns);
|
|
qtest_send_prefix(chr);
|
|
qtest_send_prefix(chr);
|
|
qtest_sendf(chr, "OK %"PRIi64"\n",
|
|
qtest_sendf(chr, "OK %"PRIi64"\n",
|
|
(int64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL));
|
|
(int64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL));
|