123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #ifndef QEMU_TIMER_H
- #define QEMU_TIMER_H
- /* timers */
- typedef struct QEMUClock QEMUClock;
- typedef void QEMUTimerCB(void *opaque);
- /* The real time clock should be used only for stuff which does not
- change the virtual machine state, as it is run even if the virtual
- machine is stopped. The real time clock has a frequency of 1000
- Hz. */
- extern QEMUClock *rt_clock;
- /* The virtual clock is only run during the emulation. It is stopped
- when the virtual machine is stopped. Virtual timers use a high
- precision clock, usually cpu cycles (use ticks_per_sec). */
- extern QEMUClock *vm_clock;
- int64_t qemu_get_clock(QEMUClock *clock);
- QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque);
- void qemu_free_timer(QEMUTimer *ts);
- void qemu_del_timer(QEMUTimer *ts);
- void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);
- int qemu_timer_pending(QEMUTimer *ts);
- extern int64_t ticks_per_sec;
- void qemu_get_timer(QEMUFile *f, QEMUTimer *ts);
- void qemu_put_timer(QEMUFile *f, QEMUTimer *ts);
- /* ptimer.c */
- typedef struct ptimer_state ptimer_state;
- typedef void (*ptimer_cb)(void *opaque);
- ptimer_state *ptimer_init(QEMUBH *bh);
- void ptimer_set_period(ptimer_state *s, int64_t period);
- void ptimer_set_freq(ptimer_state *s, uint32_t freq);
- void ptimer_set_limit(ptimer_state *s, uint64_t limit, int reload);
- uint64_t ptimer_get_count(ptimer_state *s);
- void ptimer_set_count(ptimer_state *s, uint64_t count);
- void ptimer_run(ptimer_state *s, int oneshot);
- void ptimer_stop(ptimer_state *s);
- void qemu_put_ptimer(QEMUFile *f, ptimer_state *s);
- void qemu_get_ptimer(QEMUFile *f, ptimer_state *s);
- #endif
|