[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 19/31] libxl: provide STATE_AO_GC
On Tue, 2012-04-10 at 20:07 +0100, Ian Jackson wrote: > Provide a convenience macro for use in ao callback functions, and > document that it should be used. > > Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > --- > tools/libxl/libxl_internal.h | 11 ++++++++--- > 1 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > index a8372bb..76875bb 100644 > --- a/tools/libxl/libxl_internal.h > +++ b/tools/libxl/libxl_internal.h > @@ -1266,9 +1266,10 @@ _hidden void libxl__egc_cleanup(libxl__egc *egc); > * - Note that during callback functions, two gcs are available: > * - The one in egc, whose lifetime is only this callback > * - The one in ao, whose lifetime is the asynchronous operation > - * Usually callback function should use CONTAINER_OF > - * to obtain its own structure, containing a pointer to the ao, > - * and then use the gc from that ao. > + * Usually callback function should use CONTAINER_OF to obtain its > + * own state structure, containing a pointer to the ao. It should > + * then obtain the ao and use the ao's gc; this is most easily done > + * using the convenience macro STATE_AO_GC. > */ > > #define AO_CREATE(ctx, domid, ao_how) \ > @@ -1298,6 +1299,10 @@ _hidden void libxl__egc_cleanup(libxl__egc *egc); > #define AO_GC \ > libxl__gc *const gc = &ao->gc > > +#define STATE_AO_GC(op) \ > + libxl__ao *const ao = op->ao; \ > + AO_GC > + > > /* All of these MUST be called with the ctx locked. > * libxl__ao_inprogress MUST be called with the ctx locked exactly once. */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |