From: Keir Fraser Date: Mon, 22 Sep 2008 15:10:25 +0000 (+0100) Subject: libxc: Wrapper functions for cpu online/offline X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14101^2~36 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c134d74fda3a385d796eef07cec35a05d235369e;p=xen.git libxc: Wrapper functions for cpu online/offline Signed-off-by: Shan Haitao --- diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index c68a0f0d9e..4ec156c1d8 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -19,6 +19,7 @@ CTRL_SRCS-y += xc_sedf.c CTRL_SRCS-y += xc_csched.c CTRL_SRCS-y += xc_tbuf.c CTRL_SRCS-y += xc_pm.c +CTRL_SRCS-y += xc_cpu_hotplug.c CTRL_SRCS-y += xc_resume.c CTRL_SRCS-$(CONFIG_X86) += xc_pagetab.c CTRL_SRCS-$(CONFIG_Linux) += xc_linux.c diff --git a/tools/libxc/xc_cpu_hotplug.c b/tools/libxc/xc_cpu_hotplug.c new file mode 100644 index 0000000000..4f68823974 --- /dev/null +++ b/tools/libxc/xc_cpu_hotplug.c @@ -0,0 +1,53 @@ +/****************************************************************************** + * xc_cpu_hotplug.c - Libxc API for Xen Physical CPU hotplug Management + * + * Copyright (c) 2008, Shan Haitao + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ + +#include "xc_private.h" + +int xc_cpu_online(int xc_handle, int cpu) +{ + DECLARE_SYSCTL; + int ret; + + sysctl.cmd = XEN_SYSCTL_cpu_hotplug; + sysctl.u.cpu_hotplug.cpu = cpu; + sysctl.u.cpu_hotplug.op = XEN_SYSCTL_CPU_HOTPLUG_ONLINE; + ret = xc_sysctl(xc_handle, &sysctl); + + return ret; +} + +int xc_cpu_offline(int xc_handle, int cpu) +{ + DECLARE_SYSCTL; + int ret; + + sysctl.cmd = XEN_SYSCTL_cpu_hotplug; + sysctl.u.cpu_hotplug.cpu = cpu; + sysctl.u.cpu_hotplug.op = XEN_SYSCTL_CPU_HOTPLUG_OFFLINE; + ret = xc_sysctl(xc_handle, &sysctl); + + return ret; +} + diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 7202e8171d..bdeaf2647c 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -1156,4 +1156,6 @@ int xc_pm_get_max_cx(int xc_handle, int cpuid, int *max_cx); int xc_pm_get_cxstat(int xc_handle, int cpuid, struct xc_cx_stat *cxpt); int xc_pm_reset_cxstat(int xc_handle, int cpuid); +int xc_cpu_online(int xc_handle, int cpu); +int xc_cpu_offline(int xc_handle, int cpu); #endif /* XENCTRL_H */