aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/platform_hypercall.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2011-08-22 10:12:36 +0100
committerJan Beulich <jbeulich@novell.com>2011-08-22 10:12:36 +0100
commit1d6ffea6d04357f92cca684d44e7bed44de7cbcd (patch)
tree1a3f9ed447979a7120ee8a10ca1b546c0c366ef9 /xen/arch/x86/platform_hypercall.c
parent2fba91e1d95292860076efce894c850413de8a15 (diff)
downloadxen-1d6ffea6d04357f92cca684d44e7bed44de7cbcd.tar.gz
xen-1d6ffea6d04357f92cca684d44e7bed44de7cbcd.tar.bz2
xen-1d6ffea6d04357f92cca684d44e7bed44de7cbcd.zip
ACPI: add _PDC input override mechanism
In order to have Dom0 call _PDC with input fully representing Xen's capabilities, and in order to avoid building knowledge of Xen implementation details into Dom0, this provides a mechanism by which the Dom0 kernel can, once it filled the _PDC input buffer according to its own knowledge, present the buffer to Xen to apply overrides for the parts of the C-, P-, and T-state management that it controls. This is particularly to address the dependency of Xen using MWAIT to enter certain C-states on the availability of the break-on-interrupt extension (which the Dom0 kernel should have no need to know about). Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/arch/x86/platform_hypercall.c')
-rw-r--r--xen/arch/x86/platform_hypercall.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index f6bcb59bec..db5554c47f 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -415,6 +415,15 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
ret = -EINVAL;
break;
+ case XEN_PM_PDC:
+ {
+ XEN_GUEST_HANDLE(uint32) pdc;
+
+ guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
+ ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
+ }
+ break;
+
default:
ret = -EINVAL;
break;