[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V4 16/24] libxl: copy function for builtin types
On Wed, May 07, 2014 at 11:57:59AM +0100, Ian Campbell wrote: > On Wed, 2014-05-07 at 11:47 +0100, Ian Jackson wrote: > > Ian Campbell writes ("Re: [PATCH V4 16/24] libxl: copy function for builtin > > types"): > > > On Thu, 2014-05-01 at 13:58 +0100, Wei Liu wrote: > > > > +typedef struct libxl__ctx libxl_ctx; > > > > + > > > > int libxl_uuid_is_nil(libxl_uuid *uuid); > > > > void libxl_uuid_generate(libxl_uuid *uuid); > > > > int libxl_uuid_from_string(libxl_uuid *uuid, const char *in); > > > > void libxl_uuid_copy(libxl_uuid *dst, const libxl_uuid *src); > > > > +void libxl_uuid_copy_ctx(libxl_ctx *ctx, libxl_uuid *dst, > > > > + const libxl_uuid *src); > > > > > > Hrm, this is rather unfortunate. > > > > > > All of these only take a ctx so they can use NOGC. I wonder if a #define > > > INIT_NOGC which provides a suitable gc (with maxsize == -1) might be > > > nicer than this? > > > > The problem with this is that the caller's log functions won't be > > respected. > > Ah yes, I'd forgotten this. > > > I think it would be better to make all of the copy > > functions take a ctx. > > Right. I was mostly annoyed by libxl_uuid_copy vs. libxl_uuid_copy_ctx. > So was I. I felt so guilty when I needed to invent a new variant with ugly name. > I think we can probably use LIBXL_API_VERSION to add this parameter, > similar to how we did for libxl_domain_create_restore. That would mean > libxl_uuid_copy would have to accept ctx==NULL, but it seems unlikely to > need to log anyway. > > Something like: > > #define LIBXL_HAVE_UUID_COPY_CTX_PARAM > > void libxl_uuid_copy(libxl_ctx *ctx, libxl_uuid *dst, > const libxl_uuid *src); > > #if defined(LIBXL_API_VERSION) && LIBXL_API_VERSION < 0x040400 > #define libxl_uuid_copy(dst, src) libxl_uuid_copy(NULL, dst, src) > #endif > This approach looks reasonable. One question, should I bump LIBXL_API_VERSION to 0x040500? > ought to do it I think? Perhaps we should do all of libxl_uuid_* for > consistency? > I don't think so. Looking at the existing API not every function takes a ctx. Other functions which don't involve memory allocation should be fine without a ctx. Wei. > > Alternatively we should at least document this restriction, but also > > then we shouldn't ever call the copy functions from within libxl which > > (without reading the rest of the series) I think would probably defeat > > the point. > > I think they are currently all used from xl, but one of my comments > might change that. > > Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |