diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-12-10 13:27:41 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-12-10 13:27:41 +0000 |
commit | 7542c4ff00f26a91840afb3336058e8782399365 (patch) | |
tree | b14eaad4185402e0e6f3070a61a023919054dd4c /xen/common/sysctl.c | |
parent | 630b6713472007f100b40bf100246ca169b23a14 (diff) | |
download | xen-7542c4ff00f26a91840afb3336058e8782399365.tar.gz xen-7542c4ff00f26a91840afb3336058e8782399365.tar.bz2 xen-7542c4ff00f26a91840afb3336058e8782399365.zip |
Add user PM control interface
Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
Diffstat (limited to 'xen/common/sysctl.c')
-rw-r--r-- | xen/common/sysctl.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c index c3f1b42716..9350cfe3c2 100644 --- a/xen/common/sysctl.c +++ b/xen/common/sysctl.c @@ -26,6 +26,7 @@ #include <xsm/xsm.h> extern int do_get_pm_info(struct xen_sysctl_get_pmstat *op); +extern int do_pm_op(struct xen_sysctl_pm_op *op); extern long arch_do_sysctl( struct xen_sysctl *op, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl); @@ -224,6 +225,21 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl) } break; + case XEN_SYSCTL_pm_op: + { + ret = do_pm_op(&op->u.pm_op); + if ( ret && (ret != -EAGAIN) ) + break; + + if ( op->u.pm_op.cmd == GET_CPUFREQ_PARA ) + if ( copy_to_guest(u_sysctl, op, 1) ) + { + ret = -EFAULT; + break; + } + } + break; + default: ret = arch_do_sysctl(op, u_sysctl); break; |