* THE SOFTWARE.
*/
-#include "sysemu.h"
-#include "net.h"
-#include "monitor.h"
-#include "console.h"
+#include "sysemu/sysemu.h"
+#include "monitor/monitor.h"
+#include "ui/console.h"
#include "hw/hw.h"
-#include "qemu-timer.h"
+#include "qemu/timer.h"
#ifdef CONFIG_POSIX
#include <pthread.h>
#endif
#if defined(__linux__)
-#include "compatfd.h"
+#include "qemu/compatfd.h"
static int dynticks_start_timer(struct qemu_alarm_timer *t)
{
static int mm_start_timer(struct qemu_alarm_timer *t)
{
timeGetDevCaps(&mm_tc, sizeof(mm_tc));
-
- timeBeginPeriod(mm_tc.wPeriodMin);
-
- mm_timer = timeSetEvent(mm_tc.wPeriodMin, /* interval (ms) */
- mm_tc.wPeriodMin, /* resolution */
- mm_alarm_handler, /* function */
- (DWORD_PTR)t, /* parameter */
- TIME_ONESHOT | TIME_CALLBACK_FUNCTION);
-
- if (!mm_timer) {
- fprintf(stderr, "Failed to initialize win32 alarm timer\n");
- timeEndPeriod(mm_tc.wPeriodMin);
- return -1;
- }
-
return 0;
}
static void mm_stop_timer(struct qemu_alarm_timer *t)
{
- timeKillEvent(mm_timer);
- timeEndPeriod(mm_tc.wPeriodMin);
+ if (mm_timer) {
+ timeKillEvent(mm_timer);
+ }
}
static void mm_rearm_timer(struct qemu_alarm_timer *t, int64_t delta)
nearest_delta_ms = mm_tc.wPeriodMax;
}
- timeKillEvent(mm_timer);
+ if (mm_timer) {
+ timeKillEvent(mm_timer);
+ }
mm_timer = timeSetEvent((UINT)nearest_delta_ms,
mm_tc.wPeriodMin,
mm_alarm_handler,
t->stop(t);
}
+#ifdef CONFIG_POSIX
static void reinit_timers(void)
{
struct qemu_alarm_timer *t = alarm_timer;
}
qemu_rearm_alarm_timer(t);
}
+#endif /* CONFIG_POSIX */
int init_timer_alarm(void)
{