[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 2/5] libxl: add query function for backend support by device model
On 30/03/16 13:05, Juergen Gross wrote: > Add a function to query whether the device model is supporting a > specific backend type. The device model is writing the supported > backend types to Xenstore on startup. The new query function checks > for the appropriate entry to be present. > > As not all versions of qemu are capable to indicate support of > specific backends the query function is to be called with an indicator > whether the default return value should be "supported" (in case qemu > doesn't know set any support information) or "not supported". > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Has this approach (writing backend capabilities into xenstore) been agreed on the qemu side? It's significantly different than what's been done so far wrt qemu feature discovery, right? I suppose we can just revert this whole series if they end up disagreeing with this approach, but I think that's something we'd like to avoid. (Although I suppose that's ultimately the release manager's call.) -George > --- > tools/libxl/libxl_dm.c | 19 +++++++++++++++++++ > tools/libxl/libxl_internal.h | 5 +++++ > 2 files changed, 24 insertions(+) > > diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > index 0d88c37..7d9abbe 100644 > --- a/tools/libxl/libxl_dm.c > +++ b/tools/libxl/libxl_dm.c > @@ -1920,6 +1920,25 @@ out: > device_model_spawn_outcome(egc, dmss, rc); > } > > +bool libxl__query_qemu_backend(libxl__gc *gc, uint32_t domid, > + uint32_t backend_id, const char *type, bool > def) > +{ > + char *path; > + char **dir; > + unsigned int n; > + > + path = GCSPRINTF("%s/device-model/%u/backends", > + libxl__xs_get_dompath(gc, backend_id), domid); > + dir = libxl__xs_directory(gc, XBT_NULL, path, &n); > + if (!dir) > + return def; > + > + path = GCSPRINTF("%s/device-model/%u/backends/%s", > + libxl__xs_get_dompath(gc, backend_id), domid, type); > + dir = libxl__xs_directory(gc, XBT_NULL, path, &n); > + > + return !!dir; > +} > > static void device_model_confirm(libxl__egc *egc, libxl__spawn_state *spawn, > const char *xsdata) > diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > index fc7bdab..c06ffc0 100644 > --- a/tools/libxl/libxl_internal.h > +++ b/tools/libxl/libxl_internal.h > @@ -1617,6 +1617,11 @@ _hidden const char > *libxl__domain_device_model(libxl__gc *gc, > const libxl_domain_build_info *info); > _hidden int libxl__need_xenpv_qemu(libxl__gc *gc, > libxl_domain_config *d_config); > +_hidden bool libxl__query_qemu_backend(libxl__gc *gc, > + uint32_t domid, > + uint32_t backend_id, > + const char *type, > + bool def); > > /* > * This function will fix reserved device memory conflict > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |