00001 #ifndef QEMU_TIMER_H
00002 #define QEMU_TIMER_H
00003
00004
00005
00006 typedef struct QEMUClock QEMUClock;
00007 typedef void QEMUTimerCB(void *opaque);
00008
00009
00010
00011
00012
00013 extern QEMUClock *rt_clock;
00014
00015
00016
00017
00018 extern QEMUClock *vm_clock;
00019
00020 int64_t qemu_get_clock(QEMUClock *clock);
00021
00022 QEMUTimer *qemu_new_timer(QEMUClock *clock, QEMUTimerCB *cb, void *opaque);
00023 void qemu_free_timer(QEMUTimer *ts);
00024 void qemu_del_timer(QEMUTimer *ts);
00025 void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time);
00026 int qemu_timer_pending(QEMUTimer *ts);
00027
00028 extern int64_t ticks_per_sec;
00029
00030 void qemu_get_timer(QEMUFile *f, QEMUTimer *ts);
00031 void qemu_put_timer(QEMUFile *f, QEMUTimer *ts);
00032
00033
00034 typedef struct ptimer_state ptimer_state;
00035 typedef void (*ptimer_cb)(void *opaque);
00036
00037 ptimer_state *ptimer_init(QEMUBH *bh);
00038 void ptimer_set_period(ptimer_state *s, int64_t period);
00039 void ptimer_set_freq(ptimer_state *s, uint32_t freq);
00040 void ptimer_set_limit(ptimer_state *s, uint64_t limit, int reload);
00041 uint64_t ptimer_get_count(ptimer_state *s);
00042 void ptimer_set_count(ptimer_state *s, uint64_t count);
00043 void ptimer_run(ptimer_state *s, int oneshot);
00044 void ptimer_stop(ptimer_state *s);
00045 void qemu_put_ptimer(QEMUFile *f, ptimer_state *s);
00046 void qemu_get_ptimer(QEMUFile *f, ptimer_state *s);
00047
00048 #endif