[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4] tools: set migration constraints from cmdline
On Mon, Feb 04, Ian Campbell wrote: > On Fri, 2013-02-01 at 19:34 +0000, Olaf Hering wrote: > > +++ b/tools/libxl/libxl.h > > @@ -500,12 +500,25 @@ int libxl_domain_create_restore(libxl_ct > > void libxl_domain_config_init(libxl_domain_config *d_config); > > void libxl_domain_config_dispose(libxl_domain_config *d_config); > > > > -int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, > > +int libxl_domain_suspend_0x040200(libxl_ctx *ctx, uint32_t domid, int fd, > > int flags, /* LIBXL_SUSPEND_* */ > > const libxl_asyncop_how *ao_how) > > LIBXL_EXTERNAL_CALLERS_ONLY; > > +#ifdef LIBXL_API_VERSION > > +#if LIBXL_API_VERSION == 0x040200 > > +#define libxl_domain_suspend libxl_domain_suspend_0x040200 > > int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, > int flags, /* LIBXL_SUSPEND_* */ > int max_iters, int max_factor, > const libxl_asyncop_how *ao_how) > LIBXL_EXTERNAL_CALLERS_ONLY; > #ifdef LIBXL_API_VERSION > #if LIBXL_API_VERSION == 0x040200 > #define libxl_domain_suspend(ctx, domid, fd, flags, ao_how) \ > libxl_domain_suspend(ctx, domid, fd, flags, 0, 0, ao_how) > #endif /* LIBXL_API_VERSION == 0x040200 */ > #endif /* defined(LIBXL_API_VERSION) */ > > Should work? > > Not sure if > #if defined(LIBXL_API_VERSION) && LIBXL_API_VERSION == 0x040200 > works in CPP. > > Maybe we should > #ifndef LIBXL_API_VERSION > #define LIBXL_API_VERSION LIBXL_API_VERSION_LATEST > #endif > ? Here is another attempt to make use of LIBXL_API_VERSION. Two versions just for testing. I would use the static inline variant because we code in C, not cpp. ... /* API compatibility. */ #ifdef LIBXL_API_VERSION #if LIBXL_API_VERSION != 0x040200 && LIBXL_API_VERSION != 0x040300 #error Unknown LIBXL_API_VERSION #endif #endif typedef struct { int xlflags; /* LIBXL_SUSPEND_* */ int max_iters; int max_factor; } libxl_save_properties; int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, const libxl_save_properties *props, const libxl_asyncop_how *ao_how) LIBXL_EXTERNAL_CALLERS_ONLY; #ifdef LIBXL_API_VERSION #if LIBXL_API_VERSION == 0x040200 #define libxl_domain_suspend(__ctx, __domid, __fd, __flags, __ao_how) \ ({ \ libxl_save_properties __props = { .xlflags = (__flags) }; \ int __ret = libxl_domain_suspend((__ctx), (__domid), (__fd), &__props, (__ao_how)); \ __ret; \ }) #elif LIBXL_API_VERSION == 0x040300 static inline int libxl_domain_suspend_0x040300(libxl_ctx *ctx, uint32_t domid, int fd, int flags, const libxl_asyncop_how *ao_how) { libxl_save_properties props = { .xlflags = flags }; return libxl_domain_suspend(ctx, domid, fd, &props, ao_how); } #define libxl_domain_suspend libxl_domain_suspend_0x040300 #endif #endif /* cat > t.c * gcc -Wall -o t t.c --save-temps -g * -I tools/libxc -I tools/libxl * -Ltools/libxc -L tools/libxl -lxenlight * -Wl,-rpath,$PWD/tools/libxc,-rpath,$PWD/tools/libxl */ #define LIBXL_API_VERSION 0x040300 #include "tools/libxl/libxl.h" int main(void) { int ret; #if LIBXL_API_VERSION == 0x040200 ret = libxl_domain_suspend(NULL, 0, 0, 0, NULL); #elif LIBXL_API_VERSION == 0x040300 ret = libxl_domain_suspend(NULL, 0, 0, 0, NULL); #else ret = libxl_domain_suspend(NULL, 0, 0, NULL, NULL); #endif return ret; } Olaf _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |