diff options
author | Alex Bligh <alex@alex.org.uk> | 2013-08-21 16:02:56 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2013-08-22 19:10:28 +0200 |
commit | a3a726ae09cdf6d277ac88cd725cf50d5849db2c (patch) | |
tree | 270b6e4972de465334a316c56d2c79ced4e5188a | |
parent | b1bbfe72ec1ebf302d97f886cc646466c0abd679 (diff) | |
download | qemu-a3a726ae09cdf6d277ac88cd725cf50d5849db2c.zip |
aio / timers: Introduce new API timer_new and friends
Introduce new API for creating timers - timer_new and
_ns, _ms, _us derivatives.
Signed-off-by: Alex Bligh <alex@alex.org.uk>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | include/qemu/timer.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/include/qemu/timer.h b/include/qemu/timer.h index 3fa9fa72bf..205324481a 100644 --- a/include/qemu/timer.h +++ b/include/qemu/timer.h @@ -370,6 +370,24 @@ static inline QEMUTimer *timer_new_tl(QEMUTimerList *timer_list, return ts; } +/** + * timer_new: + * @type: the clock type to use + * @scale: the scale value for the tiemr + * @cb: the callback to be called when the timer expires + * @opaque: the opaque pointer to be passed to the callback + * + * Creeate a new timer and associate it with the default + * timer list for the clock type @type. + * + * Returns: a pointer to the timer + */ +static inline QEMUTimer *timer_new(QEMUClockType type, int scale, + QEMUTimerCB *cb, void *opaque) +{ + return timer_new_tl(main_loop_tlg.tl[type], scale, cb, opaque); +} + void qemu_free_timer(QEMUTimer *ts); void qemu_del_timer(QEMUTimer *ts); void qemu_mod_timer_ns(QEMUTimer *ts, int64_t expire_time); @@ -493,6 +511,23 @@ static inline QEMUTimer *qemu_new_timer_ns(QEMUClock *clock, QEMUTimerCB *cb, } /** + * timer_new_ns: + * @clock: the clock to associate with the timer + * @callback: the callback to call when the timer expires + * @opaque: the opaque pointer to pass to the callback + * + * Create a new timer with nanosecond scale on the default timer list + * associated with the clock. + * + * Returns: a pointer to the newly created timer + */ +static inline QEMUTimer *timer_new_ns(QEMUClockType type, QEMUTimerCB *cb, + void *opaque) +{ + return timer_new(type, SCALE_NS, cb, opaque); +} + +/** * qemu_new_timer_us: * @clock: the clock to associate with the timer * @callback: the callback to call when the timer expires @@ -511,6 +546,23 @@ static inline QEMUTimer *qemu_new_timer_us(QEMUClock *clock, } /** + * timer_new_us: + * @clock: the clock to associate with the timer + * @callback: the callback to call when the timer expires + * @opaque: the opaque pointer to pass to the callback + * + * Create a new timer with microsecond scale on the default timer list + * associated with the clock. + * + * Returns: a pointer to the newly created timer + */ +static inline QEMUTimer *timer_new_us(QEMUClockType type, QEMUTimerCB *cb, + void *opaque) +{ + return timer_new(type, SCALE_US, cb, opaque); +} + +/** * qemu_new_timer_ms: * @clock: the clock to associate with the timer * @callback: the callback to call when the timer expires @@ -528,6 +580,23 @@ static inline QEMUTimer *qemu_new_timer_ms(QEMUClock *clock, return qemu_new_timer(clock, SCALE_MS, cb, opaque); } +/** + * timer_new_ms: + * @clock: the clock to associate with the timer + * @callback: the callback to call when the timer expires + * @opaque: the opaque pointer to pass to the callback + * + * Create a new timer with millisecond scale on the default timer list + * associated with the clock. + * + * Returns: a pointer to the newly created timer + */ +static inline QEMUTimer *timer_new_ms(QEMUClockType type, QEMUTimerCB *cb, + void *opaque) +{ + return timer_new(type, SCALE_MS, cb, opaque); +} + static inline int64_t qemu_get_clock_ms(QEMUClock *clock) { return qemu_get_clock_ns(clock) / SCALE_MS; |