From: Olaf Hering <olaf@aepfle.de>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH v4] tools: set migration constraints from cmdline
Date: Tue, 19 Feb 2013 12:42:17 +0100 [thread overview]
Message-ID: <20130219114217.GA8133@aepfle.de> (raw)
In-Reply-To: <1359983463.7743.23.camel@zakaz.uk.xensource.com>
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
next prev parent reply other threads:[~2013-02-19 11:42 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-28 17:32 [PATCH] tools: set migration constraints from cmdline Olaf Hering
2013-01-30 14:30 ` Ian Campbell
2013-01-30 16:43 ` Olaf Hering
2013-02-04 9:57 ` Olaf Hering
2013-02-04 12:54 ` Ian Campbell
2013-02-04 13:09 ` Olaf Hering
2013-02-04 13:14 ` Ian Campbell
2013-01-30 16:41 ` [PATCH v2] " Olaf Hering
2013-01-31 16:17 ` [PATCH v3] " Olaf Hering
2013-02-01 19:34 ` [PATCH v4] " Olaf Hering
2013-02-04 13:11 ` Ian Campbell
2013-02-04 13:41 ` Olaf Hering
2013-02-04 13:46 ` Ian Campbell
2013-02-04 13:55 ` Olaf Hering
2013-02-04 13:59 ` Ian Campbell
2013-02-04 18:43 ` Olaf Hering
2013-02-05 9:22 ` Ian Campbell
2013-02-05 10:16 ` Olaf Hering
2013-02-19 11:42 ` Olaf Hering [this message]
2013-02-19 11:48 ` Ian Campbell
2013-02-19 14:12 ` Olaf Hering
2013-02-05 10:03 ` [PATCH v5] " Olaf Hering
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130219114217.GA8133@aepfle.de \
--to=olaf@aepfle.de \
--cc=Ian.Campbell@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).