From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V7Xz5-0006c4-L5 for qemu-devel@nongnu.org; Thu, 08 Aug 2013 17:43:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V7Xz4-00077E-Ll for qemu-devel@nongnu.org; Thu, 08 Aug 2013 17:43:03 -0400 Received: from mail.avalus.com ([2001:41c8:10:1dd::10]:35997) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V7Xz3-00076w-UE for qemu-devel@nongnu.org; Thu, 08 Aug 2013 17:43:02 -0400 From: Alex Bligh Date: Thu, 8 Aug 2013 22:42:14 +0100 Message-Id: <1375998147-24292-18-git-send-email-alex@alex.org.uk> In-Reply-To: <1375998147-24292-1-git-send-email-alex@alex.org.uk> References: <1375998147-24292-1-git-send-email-alex@alex.org.uk> Subject: [Qemu-devel] [RFC] [PATCHv8 17/30] aio / timers: Introduce new API qemu_timer_new and friends List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Anthony Liguori , Alex Bligh , liu ping fan , Stefan Hajnoczi , Paolo Bonzini , MORITA Kazutaka , rth@twiddle.net Introduce new API for creating timers - qemu_timer_new and _ns, _ms, _us derivatives. Signed-off-by: Alex Bligh --- include/qemu/timer.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/include/qemu/timer.h b/include/qemu/timer.h index 68f76df..da9ead3 100644 --- a/include/qemu/timer.h +++ b/include/qemu/timer.h @@ -340,6 +340,24 @@ QEMUTimer *qemu_new_timer(QEMUClock *clock, int scale, QEMUTimer *timer_new(QEMUTimerList *timer_list, int scale, QEMUTimerCB *cb, void *opaque); +/** + * qemu_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 *qemu_timer_new(QEMUClockType type, int scale, + QEMUTimerCB *cb, void *opaque) +{ + return timer_new(main_loop_tlg[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); @@ -503,6 +521,23 @@ static inline QEMUTimer *qemu_new_timer_ns(QEMUClock *clock, QEMUTimerCB *cb, } /** + * qemu_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 *qemu_timer_new_ns(QEMUClockType type, QEMUTimerCB *cb, + void *opaque) +{ + return qemu_timer_new(type, SCALE_NS, cb, opaque); +} + +/** * timer_new_ns: * @timer_list: the timer list to associate with the timer * @callback: the callback to call when the timer expires @@ -539,6 +574,23 @@ static inline QEMUTimer *qemu_new_timer_us(QEMUClock *clock, } /** + * qemu_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 *qemu_timer_new_us(QEMUClockType type, QEMUTimerCB *cb, + void *opaque) +{ + return qemu_timer_new(type, SCALE_US, cb, opaque); +} + +/** * timer_new_us: * @timer_list: the timer list to associate with the timer * @callback: the callback to call when the timer expires @@ -575,6 +627,23 @@ static inline QEMUTimer *qemu_new_timer_ms(QEMUClock *clock, } /** + * qemu_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 *qemu_timer_new_ms(QEMUClockType type, QEMUTimerCB *cb, + void *opaque) +{ + return qemu_timer_new(type, SCALE_MS, cb, opaque); +} + +/** * timer_new_ms: * @timer_list: the timer list to associate with the timer * @callback: the callback to call when the timer expires -- 1.7.9.5