From: Vincent Hanquez Date: Wed, 10 Jun 2009 09:07:08 +0000 (+0100) Subject: add binding to get the acpi S_STATE of a domain X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=dd01487f22de450b76bab3a689628a2c65d3656f;p=xenclient%2Ftoolstack.git add binding to get the acpi S_STATE of a domain --- diff --git a/libs/xc/xc.h b/libs/xc/xc.h index b19ca08..2ed7020 100644 --- a/libs/xc/xc.h +++ b/libs/xc/xc.h @@ -170,6 +170,7 @@ int xc_domain_send_s3resume(int handle, unsigned int domid); int xc_domain_set_vpt_align(int handle, unsigned int domid, int vpt_align); int xc_domain_set_hpet(int handle, unsigned int domid, int hpet); int xc_domain_set_timer_mode(int handle, unsigned int domid, int mode); +int xc_domain_get_acpi_s_state(int handle, unsigned int domid); #if XEN_SYSCTL_INTERFACE_VERSION >= 6 #define SAFEDIV(a, b) (((b) >= 0) ? (a) / (b) : (a)) diff --git a/libs/xc/xc.ml b/libs/xc/xc.ml index b7b2173..4d93d29 100644 --- a/libs/xc/xc.ml +++ b/libs/xc/xc.ml @@ -231,6 +231,7 @@ external domain_set_hpet: handle -> domid -> int -> unit = "stub_xc_domain_set_h external domain_set_vpt_align: handle -> domid -> int -> unit = "stub_xc_domain_set_vpt_align" external domain_send_s3resume: handle -> domid -> unit = "stub_xc_domain_send_s3resume" +external domain_get_acpi_s_state: handle -> domid -> int = "stub_xc_domain_get_acpi_s_state" (** check if some hvm domain got pv driver or not *) external hvm_check_pvdriver: handle -> domid -> bool diff --git a/libs/xc/xc.mli b/libs/xc/xc.mli index 75880a1..cbb3c83 100644 --- a/libs/xc/xc.mli +++ b/libs/xc/xc.mli @@ -152,6 +152,7 @@ external domain_set_vpt_align: handle -> domid -> int -> unit = "stub_xc_domain_ external domain_send_s3resume: handle -> domid -> unit = "stub_xc_domain_send_s3resume" +external domain_get_acpi_s_state: handle -> domid -> int = "stub_xc_domain_get_acpi_s_state" external hvm_check_pvdriver : handle -> domid -> bool = "stub_xc_hvm_check_pvdriver" diff --git a/libs/xc/xc_lib.c b/libs/xc/xc_lib.c index e3d3adb..8c33508 100644 --- a/libs/xc/xc_lib.c +++ b/libs/xc/xc_lib.c @@ -1489,3 +1489,10 @@ int xc_domain_set_vpt_align(int handle, unsigned int domid, int vpt_align) { return xc_set_hvm_param(handle, domid, HVM_PARAM_HPET_ENABLED, (unsigned long) vpt_align); } + +int xc_domain_get_acpi_s_state(int handle, unsigned int domid) +{ + unsigned long v; + xc_get_hvm_param(handle, domid, HVM_PARAM_ACPI_S_STATE, &v); + return v; +} diff --git a/libs/xc/xc_stubs.c b/libs/xc/xc_stubs.c index a297b79..f86ac7d 100644 --- a/libs/xc/xc_stubs.c +++ b/libs/xc/xc_stubs.c @@ -1139,6 +1139,14 @@ CAMLprim value stub_xc_domain_send_s3resume(value handle, value domid) CAMLreturn(Val_unit); } +CAMLprim value stub_xc_domain_get_acpi_s_state(value handle, value domid) +{ + CAMLparam2(handle, domid); + int state; + state = xc_domain_get_acpi_s_state(_H(handle), _D(domid)); + CAMLreturn(Val_int(state)); +} + /* * Local variables: * indent-tabs-mode: t