[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RFC V1 02/11] qemu-timer: Introduce qemu_run_one_tim
From: |
Anthony PERARD |
Subject: |
[Qemu-devel] [PATCH RFC V1 02/11] qemu-timer: Introduce qemu_run_one_timer |
Date: |
Tue, 4 Oct 2011 15:51:13 +0100 |
Used by the Xen PCI Passthrough code to run the timer about the power
state transition.
Signed-off-by: Anthony PERARD <address@hidden>
---
qemu-timer.c | 15 +++++++++++++++
qemu-timer.h | 3 +++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/qemu-timer.c b/qemu-timer.c
index 46dd483..15e659b 100644
--- a/qemu-timer.c
+++ b/qemu-timer.c
@@ -1163,3 +1163,18 @@ int qemu_calculate_timeout(void)
return 1000;
}
+/* run the specified timer */
+void qemu_run_one_timer(QEMUTimer *ts)
+{
+ uint64_t current_time;
+
+ /* remove timer from the list before calling the callback */
+ qemu_del_timer(ts);
+
+ while ((current_time = qemu_get_clock_ms(rt_clock)) < ts->expire_time)
+ /* sleep until the expire time */
+ usleep((ts->expire_time - current_time) * 1000);
+
+ /* run the callback */
+ ts->cb(ts->opaque);
+}
diff --git a/qemu-timer.h b/qemu-timer.h
index 0a43469..b7b907b 100644
--- a/qemu-timer.h
+++ b/qemu-timer.h
@@ -338,4 +338,7 @@ extern int64_t tlb_flush_time;
extern int64_t dev_time;
#endif
+/* run the specified timer */
+void qemu_run_one_timer(QEMUTimer *ts);
+
#endif
--
Anthony PERARD