From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50457) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VA4G9-0002g2-7P for qemu-devel@nongnu.org; Thu, 15 Aug 2013 16:35:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VA4G3-0001Ha-Fn for qemu-devel@nongnu.org; Thu, 15 Aug 2013 16:35:05 -0400 Received: from mail.avalus.com ([2001:41c8:10:1dd::10]:53797) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VA4G3-0001Fs-80 for qemu-devel@nongnu.org; Thu, 15 Aug 2013 16:34:59 -0400 From: Alex Bligh Date: Thu, 15 Aug 2013 21:34:22 +0100 Message-Id: <1376598879-18976-15-git-send-email-alex@alex.org.uk> In-Reply-To: <1376598879-18976-1-git-send-email-alex@alex.org.uk> References: <1376598879-18976-1-git-send-email-alex@alex.org.uk> Subject: [Qemu-devel] [PATCHv11 14/31] aio / timers: Add aio_timer_init & aio_timer_new wrappers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Anthony Liguori , Alex Bligh , Jan Kiszka , liu ping fan , Stefan Hajnoczi , Paolo Bonzini , MORITA Kazutaka , rth@twiddle.net Add aio_timer_init and aio_timer_new wrapper functions. Signed-off-by: Alex Bligh --- include/block/aio.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/include/block/aio.h b/include/block/aio.h index 84d7366..d19d9d2 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -256,4 +256,47 @@ void qemu_aio_set_fd_handler(int fd, void *opaque); #endif +/** + * aio_timer_new: + * @ctx: the aio context + * @type: the clock type + * @scale: the scale + * @cb: the callback to call on timer expiry + * @opaque: the opaque pointer to pass to the callback + * + * Allocate a new timer attached to the context @ctx. + * The function is responsible for memory allocation. + * + * The preferred interface is aio_timer_init. Use that + * unless you really need dynamic memory allocation. + * + * Returns: a pointer to the new timer + */ +static inline QEMUTimer *aio_timer_new(AioContext *ctx, QEMUClockType type, + int scale, + QEMUTimerCB *cb, void *opaque) +{ + return timer_new_tl(ctx->tlg.tl[type], scale, cb, opaque); +} + +/** + * aio_timer_init: + * @ctx: the aio context + * @ts: the timer + * @type: the clock type + * @scale: the scale + * @cb: the callback to call on timer expiry + * @opaque: the opaque pointer to pass to the callback + * + * Initialise a new timer attached to the context @ctx. + * The caller is responsible for memory allocation. + */ +static inline void aio_timer_init(AioContext *ctx, + QEMUTimer *ts, QEMUClockType type, + int scale, + QEMUTimerCB *cb, void *opaque) +{ + timer_init(ts, ctx->tlg.tl[type], scale, cb, opaque); +} + #endif -- 1.7.9.5