aboutsummaryrefslogtreecommitdiff
path: root/include/xen/interface/version.h
diff options
context:
space:
mode:
authorLiu, Jinsong <jinsong.liu@intel.com>2012-11-08 05:41:13 +0000
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-11-26 15:07:19 -0500
commit92e3229dcdc80ff0b6304f14c578d76e7e10e226 (patch)
tree6c4a67d4b721b3eb6c2c2b07db2cd173313c9669 /include/xen/interface/version.h
parentb3e40b72bb24237b0aee9f6ba2e9f88dd4ff3c0a (diff)
xen/acpi: ACPI PAD driver
PAD is acpi Processor Aggregator Device which provides a control point that enables the platform to perform specific processor configuration and control that applies to all processors in the platform. This patch is to implement Xen acpi pad logic. When running under Xen virt platform, native pad driver would not work. Instead Xen pad driver, a self-contained and thin logic level, would take over acpi pad logic. When acpi pad notify OSPM, xen pad logic intercept and parse _PUR object to get the expected idle cpu number, and then hypercall to hypervisor. Xen hypervisor would then do the rest work, say, core parking, to idle specific number of cpus on its own policy. Signed-off-by: Jan Beulich <JBeulich@suse.com> Signed-off-by: Liu Jinsong <jinsong.liu@intel.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'include/xen/interface/version.h')
-rw-r--r--include/xen/interface/version.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/xen/interface/version.h b/include/xen/interface/version.h
index 7ff6498679a..96d8d3deea6 100644
--- a/include/xen/interface/version.h
+++ b/include/xen/interface/version.h
@@ -63,4 +63,19 @@ struct xen_feature_info {
/* arg == xen_domain_handle_t. */
#define XENVER_guest_handle 8
+/* Check if running on Xen version (major, minor) or later */
+static inline bool
+xen_running_on_version_or_later(unsigned int major, unsigned int minor)
+{
+ unsigned int version;
+
+ if (!xen_domain())
+ return false;
+
+ version = HYPERVISOR_xen_version(XENVER_version, NULL);
+ if ((((version >> 16) == major) && ((version & 0xffff) >= minor)) ||
+ ((version >> 16) > major))
+ return true;
+ return false;
+}
#endif /* __XEN_PUBLIC_VERSION_H__ */