[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, 2013-02-04 at 18:43 +0000, Olaf Hering wrote:
> On Mon, Feb 04, Ian Campbell wrote:
> 
> > It just occurred to me, instead of adding lots of individual arguments
> > perhaps packing them into a (e.g.) libxl_save_properties and adding a
> > pointer would be a nicer and more extensible (in the future) interface?
> 
> Something like this (copy&paste from hg diff)?

It's a tricky balance of what goes in the struct and what goes in the
prototype but I didn't imagine putting domid or fd into the struct,
domid because that's how other libxl APIs behave and fd because it isn't
really a property of the save/migrate as such.

Moving flags into the struct could be optional is it complicates the
compat code too much.

> I did not find a way to put also libxl_asyncop_how into
> libxl_save_properties, the checker complains about missing
> LIBXL_EXTERNAL_CALLERS_ONLY.

I think this is fine to remain in the prototype alongside domid etc.

> 
> Olaf
> 
> diff -r 6087ff7a1aea tools/libxl/libxl.h
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h
> @@ -500,18 +500,24 @@ 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);
> 
> +typedef struct {
> +    uint32_t domid;
> +    int fd;
> +    int flags; /* LIBXL_SUSPEND_* */
> +    int max_iters;
> +    int max_factor;
> +} libxl_save_properties;
> +
>  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;
> +                                  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
>  #endif
>  #else
> -int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd,
> -                         int flags, /* LIBXL_SUSPEND_* */
> -                         int max_iters, int max_factor,
> +int libxl_domain_suspend(libxl_ctx *ctx, const libxl_save_properties *props,
>                           const libxl_asyncop_how *ao_how)
>                           LIBXL_EXTERNAL_CALLERS_ONLY;
>  #endif
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.