[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/7] libxl, Introduce dm-version xenstore key.
On Fri, 2011-10-07 at 13:10 +0100, Anthony PERARD wrote: > The key is /local/domain/$domid/dm-version. I've been wondering if we should introduce /libxl/$domid/ as a place for keeping tooltack internal droppings like this. The danger with putting stuff in /local/domain is that domains come to rely on them. > This come with libxl__device_model_version_running helper function. > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > --- > tools/libxl/libxl_create.c | 5 +++++ > tools/libxl/libxl_internal.c | 19 +++++++++++++++++++ > tools/libxl/libxl_internal.h | 5 +++++ > 3 files changed, 29 insertions(+), 0 deletions(-) > > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c > index e1e3258..3f33d90 100644 > --- a/tools/libxl/libxl_create.c > +++ b/tools/libxl/libxl_create.c > @@ -175,6 +175,11 @@ int libxl__domain_build(libxl__gc *gc, > > gettimeofday(&start_time, NULL); > > + localents = libxl__calloc(gc, 3, sizeof (char *)); > + i = 0; > + localents[i++] = "dm-version"; > + localents[i++] = libxl__strdup(gc, > libxl_device_model_version_to_string(dm_info->device_model_version)); > + You don't seem to use this anywhere? > switch (info->type) { > case LIBXL_DOMAIN_TYPE_HVM: > ret = libxl__build_hvm(gc, domid, info, dm_info, state); > diff --git a/tools/libxl/libxl_internal.c b/tools/libxl/libxl_internal.c > index 3b8a41f..e535c0c 100644 > --- a/tools/libxl/libxl_internal.c > +++ b/tools/libxl/libxl_internal.c > @@ -318,3 +318,22 @@ int libxl__fd_set_cloexec(int fd) > } > return fcntl(fd, F_SETFD, flags | FD_CLOEXEC); > } > + > +libxl_device_model_version libxl__device_model_version_running(libxl__gc *gc, > + uint32_t > domid) > +{ > + char *path = NULL; > + char *dm_version = NULL; > + libxl_device_model_version value; > + > + path = libxl__sprintf(gc, "/local/domain/%d/dm-version", domid); > + dm_version = libxl__xs_read(gc, XBT_NULL, path); > + if (!dm_version) { This would be a bug, since it would imply an inconsistent version of libxl was used to create the domain? (not sure what our policy around this actually is / should be). > + return LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL; > + } > + > + if (libxl_device_model_version_from_string(dm_version, &value) < 0) { > + return LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL; > + } > + return value; > +} > diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > index 935c899..4dd0f91 100644 > --- a/tools/libxl/libxl_internal.h > +++ b/tools/libxl/libxl_internal.h > @@ -554,4 +554,9 @@ _hidden void libxl__json_object_free(libxl__gc *gc, > libxl__json_object *obj); > > _hidden libxl__json_object *libxl__json_parse(libxl__gc *gc, const char *s); > > + /* Based on /local/domain/$domid/dm-version xenstore key > + * default is qemu xen traditional */ > +_hidden libxl_device_model_version > +libxl__device_model_version_running(libxl__gc *gc, uint32_t domid); > + > #endif _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |