Il 09/08/2013 16:32, Alex Bligh ha scritto: > > On 9 Aug 2013, at 11:06, Paolo Bonzini wrote: > >>> +/** >>> + * 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 >>> + * >>> + * Generate a new timer attached to the context @ctx. >>> + * >>> + * 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(ctx->tlg[type], scale, cb, opaque); >>> +} >> >> Since we're doing a new API, I would prefer to have it as timer_init and >> aio_timer_init. We can remove the allocation completely, it is a >> useless indirection and we misuse it since we hardly ever call >> qemu_free_timer. > > Would that not require change the huge number of qemu_timer_new references > to use this new API? That sounds less than automatic! Not in favour of > that one.
qemu_timer_new can remain for now (only waiting for the next mass-rewriting script to be written). I would just prefer to have the new AioContext-/TimerList-aware not do any allocation. Paolo