1: #ifndef QEMU_TIMER_H
2: #define QEMU_TIMER_H
3:
4:
5:
6: typedef struct QEMUClock QEMUClock;
7: typedef void QEMUTimerCB(void *opaque);
8:
9:
10:
11:
12:
13: extern QEMUClock *rt_clock;
14:
15:
16:
17:
18: extern QEMUClock *vm_clock;
19:
20: int64_t qemu_get_clock(QEMUClock *clock);
21:
22: QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque);
23: void qemu_free_timer(QEMUTimer *ts);
24: void qemu_del_timer(QEMUTimer *ts);
25: void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);
26: int qemu_timer_pending(QEMUTimer *ts);
27:
28: extern int64_t ticks_per_sec;
29:
30: void qemu_get_timer(QEMUFile *f, QEMUTimer *ts);
31: void qemu_put_timer(QEMUFile *f, QEMUTimer *ts);
32:
33:
34: typedef struct ptimer_state ptimer_state;
35: typedef void (*ptimer_cb)(void *opaque);
36:
37: ptimer_state *ptimer_init(QEMUBH *bh);
38: void ptimer_set_period(ptimer_state *s, int64_t period);
39: void ptimer_set_freq(ptimer_state *s, uint32_t freq);
40: void ptimer_set_limit(ptimer_state *s, uint64_t limit, int reload);
41: uint64_t ptimer_get_count(ptimer_state *s);
42: void ptimer_set_count(ptimer_state *s, uint64_t count);
43: void ptimer_run(ptimer_state *s, int oneshot);
44: void ptimer_stop(ptimer_state *s);
45: void qemu_put_ptimer(QEMUFile *f, ptimer_state *s);
46: void qemu_get_ptimer(QEMUFile *f, ptimer_state *s);
47:
48: #endif