[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 26/30] tools/libxc: Expose the automatically generated cpu featuremask information
On Fri, Feb 05, 2016 at 01:42:19PM +0000, Andrew Cooper wrote: > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > --- > CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> > CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> > CC: Wei Liu <wei.liu2@xxxxxxxxxx> > > New in v2 > --- > tools/libxc/Makefile | 9 ++++++ > tools/libxc/include/xenctrl.h | 14 ++++++++ > tools/libxc/xc_cpuid_x86.c | 75 > +++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 98 insertions(+) > > diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile > index 0a8614c..30de3fe 100644 > --- a/tools/libxc/Makefile > +++ b/tools/libxc/Makefile > @@ -145,6 +145,15 @@ $(eval $(genpath-target)) > > xc_private.h: _paths.h > > +ifeq ($(CONFIG_X86),y) > + > +_xc_cpuid_autogen.h: $(XEN_ROOT)/xen/include/public/arch-x86/cpufeatureset.h > $(XEN_ROOT)/xen/tools/gen-cpuid.py > + $(PYTHON) $(XEN_ROOT)/xen/tools/gen-cpuid.py -i $^ -o $@.new I don't seem to see this file in tree or in this series. And I think ultimately that file should be maintained by x86 maintainers. > + $(call move-if-changed,$@.new,$@) > + > +build: _xc_cpuid_autogen.h > +endif > + > $(CTRL_LIB_OBJS) $(GUEST_LIB_OBJS) \ > $(CTRL_PIC_OBJS) $(GUEST_PIC_OBJS): xc_private.h > > diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h > index 5a7500a..1da372d 100644 > --- a/tools/libxc/include/xenctrl.h > +++ b/tools/libxc/include/xenctrl.h > @@ -2574,6 +2574,20 @@ int xc_psr_cat_get_l3_info(xc_interface *xch, uint32_t > socket, > > int xc_get_cpu_featureset(xc_interface *xch, uint32_t index, > uint32_t *nr_features, uint32_t *featureset); > + > +uint32_t xc_get_cpu_featureset_size(void); > + > +enum xc_static_cpu_featuremask { > + XC_FEATUREMASK_KNOWN, > + XC_FEATUREMASK_INVERTED, > + XC_FEATUREMASK_PV, > + XC_FEATUREMASK_HVM_SHADOW, > + XC_FEATUREMASK_HVM_HAP, > + XC_FEATUREMASK_DEEP_FEATURES, > +}; > +const uint32_t *xc_get_static_cpu_featuremask(enum > xc_static_cpu_featuremask); > +const uint32_t *xc_get_feature_deep_deps(uint32_t feature); > + > #endif > > /* Compat shims */ > diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c > index 348cbdd..7ef37d2 100644 > --- a/tools/libxc/xc_cpuid_x86.c > +++ b/tools/libxc/xc_cpuid_x86.c > @@ -22,6 +22,7 @@ > #include <stdlib.h> > #include <stdbool.h> > #include "xc_private.h" > +#include "_xc_cpuid_autogen.h" > #include <xen/arch-x86/cpufeatureset.h> > #include <xen/hvm/params.h> > > @@ -60,6 +61,80 @@ int xc_get_cpu_featureset(xc_interface *xch, uint32_t > index, > return ret; > } > > +uint32_t xc_get_cpu_featureset_size(void) > +{ > + return FEATURESET_NR_ENTRIES; > +} > + > +const uint32_t *xc_get_static_cpu_featuremask( > + enum xc_static_cpu_featuremask mask) I can only get a vague idea how these functions are supposed to work. I think I will leave this to hypervisor maintainers. Wei. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |