2 * Stubs for the ptimer-test
4 * Copyright (c) 2016 Dmitry Osipenko <digetx@gmail.com>
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
11 #include "qemu/osdep.h"
12 #include "qemu/main-loop.h"
13 #include "sysemu/replay.h"
14 #include "migration/vmstate.h"
16 #include "ptimer-test.h"
18 const VMStateInfo vmstate_info_uint8
;
19 const VMStateInfo vmstate_info_uint32
;
20 const VMStateInfo vmstate_info_uint64
;
21 const VMStateInfo vmstate_info_int64
;
22 const VMStateInfo vmstate_info_timer
;
29 QEMUTimerListGroup main_loop_tlg
;
31 int64_t ptimer_test_time_ns
;
33 /* Do not artificially limit period - see hw/core/ptimer.c. */
37 void timer_init_tl(QEMUTimer
*ts
,
38 QEMUTimerList
*timer_list
, int scale
,
39 QEMUTimerCB
*cb
, void *opaque
)
41 ts
->timer_list
= timer_list
;
48 void timer_mod(QEMUTimer
*ts
, int64_t expire_time
)
50 QEMUTimerList
*timer_list
= ts
->timer_list
;
51 QEMUTimer
*t
= &timer_list
->active_timers
;
53 while (t
->next
!= NULL
) {
61 ts
->expire_time
= MAX(expire_time
* ts
->scale
, 0);
66 void timer_del(QEMUTimer
*ts
)
68 QEMUTimerList
*timer_list
= ts
->timer_list
;
69 QEMUTimer
*t
= &timer_list
->active_timers
;
71 while (t
->next
!= NULL
) {
81 int64_t qemu_clock_get_ns(QEMUClockType type
)
83 return ptimer_test_time_ns
;
86 int64_t qemu_clock_deadline_ns_all(QEMUClockType type
)
88 QEMUTimerList
*timer_list
= main_loop_tlg
.tl
[type
];
89 QEMUTimer
*t
= timer_list
->active_timers
.next
;
90 int64_t deadline
= -1;
94 deadline
= t
->expire_time
;
96 deadline
= MIN(deadline
, t
->expire_time
);
105 QEMUBH
*qemu_bh_new(QEMUBHFunc
*cb
, void *opaque
)
107 QEMUBH
*bh
= g_new(QEMUBH
, 1);
115 void qemu_bh_delete(QEMUBH
*bh
)
120 void replay_bh_schedule_event(QEMUBH
*bh
)