WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Remove the CPU feature handling, unimplem

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Remove the CPU feature handling, unimplementable as it stands.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 30 Jan 2007 06:01:27 -0800
Delivery-date: Tue, 30 Jan 2007 06:05:55 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Date 1170115805 0
# Node ID 44d5651817098d45a7f0321ce1e71b2530e759f7
# Parent  eb7b2a9ce40ca37bded8deb1f9a17a57d0fbb413
Remove the CPU feature handling, unimplementable as it stands.

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
---
 tools/libxen/include/xen_cpu_feature.h          |  387 --------------------
 tools/libxen/include/xen_cpu_feature_internal.h |   37 -
 tools/libxen/src/xen_cpu_feature.c              |  143 -------
 docs/xen-api/xenapi-datamodel.tex               |  445 ------------------------
 tools/libxen/include/xen_host_cpu.h             |    9 
 tools/libxen/include/xen_vm.h                   |   79 ----
 tools/libxen/src/xen_host_cpu.c                 |   23 -
 tools/libxen/src/xen_vm.c                       |  182 ---------
 tools/python/xen/xend/XendAPI.py                |   41 --
 9 files changed, 1346 deletions(-)

diff -r eb7b2a9ce40c -r 44d565181709 docs/xen-api/xenapi-datamodel.tex
--- a/docs/xen-api/xenapi-datamodel.tex Mon Jan 29 19:04:54 2007 +0000
+++ b/docs/xen-api/xenapi-datamodel.tex Tue Jan 30 00:10:05 2007 +0000
@@ -163,78 +163,6 @@ The following enumeration types are used
 \vspace{1cm}
 \begin{longtable}{|ll|}
 \hline
-{\tt enum cpu\_feature} & \\
-\hline
-\hspace{0.5cm}{\tt FPU} &  Onboard FPU  \\
-\hspace{0.5cm}{\tt VME} &  Virtual Mode Extensions  \\
-\hspace{0.5cm}{\tt DE} &  Debugging Extensions  \\
-\hspace{0.5cm}{\tt PSE} &  Page Size Extensions  \\
-\hspace{0.5cm}{\tt TSC} &  Time Stamp Counter  \\
-\hspace{0.5cm}{\tt MSR} &  Model-Specific Registers, RDMSR, WRMSR  \\
-\hspace{0.5cm}{\tt PAE} &  Physical Address Extensions  \\
-\hspace{0.5cm}{\tt MCE} &  Machine Check Architecture  \\
-\hspace{0.5cm}{\tt CX8} &  CMPXCHG8 instruction  \\
-\hspace{0.5cm}{\tt APIC} &  Onboard APIC  \\
-\hspace{0.5cm}{\tt SEP} &  SYSENTER/SYSEXIT  \\
-\hspace{0.5cm}{\tt MTRR} &  Memory Type Range Registers  \\
-\hspace{0.5cm}{\tt PGE} &  Page Global Enable  \\
-\hspace{0.5cm}{\tt MCA} &  Machine Check Architecture  \\
-\hspace{0.5cm}{\tt CMOV} &  CMOV instruction (FCMOVCC and FCOMI too if FPU 
present)  \\
-\hspace{0.5cm}{\tt PAT} &  Page Attribute Table  \\
-\hspace{0.5cm}{\tt PSE36} &  36-bit PSEs  \\
-\hspace{0.5cm}{\tt PN} &  Processor serial number  \\
-\hspace{0.5cm}{\tt CLFLSH} &  Supports the CLFLUSH instruction  \\
-\hspace{0.5cm}{\tt DTES} &  Debug Trace Store  \\
-\hspace{0.5cm}{\tt ACPI} &  ACPI via MSR  \\
-\hspace{0.5cm}{\tt MMX} &  Multimedia Extensions  \\
-\hspace{0.5cm}{\tt FXSR} &  FXSAVE and FXRSTOR instructions (fast save and 
restore  \\
-\hspace{0.5cm}{\tt XMM} &  Streaming SIMD Extensions  \\
-\hspace{0.5cm}{\tt XMM2} &  Streaming SIMD Extensions-2  \\
-\hspace{0.5cm}{\tt SELFSNOOP} &  CPU self snoop  \\
-\hspace{0.5cm}{\tt HT} &  Hyper-Threading  \\
-\hspace{0.5cm}{\tt ACC} &  Automatic clock control  \\
-\hspace{0.5cm}{\tt IA64} &  IA-64 processor  \\
-\hspace{0.5cm}{\tt SYSCALL} &  SYSCALL/SYSRET  \\
-\hspace{0.5cm}{\tt MP} &  MP Capable.  \\
-\hspace{0.5cm}{\tt NX} &  Execute Disable  \\
-\hspace{0.5cm}{\tt MMXEXT} &  AMD MMX extensions  \\
-\hspace{0.5cm}{\tt LM} &  Long Mode (x86-64)  \\
-\hspace{0.5cm}{\tt THREEDNOWEXT} &  AMD 3DNow! extensions  \\
-\hspace{0.5cm}{\tt THREEDNOW} &  3DNow!  \\
-\hspace{0.5cm}{\tt RECOVERY} &  CPU in recovery mode  \\
-\hspace{0.5cm}{\tt LONGRUN} &  Longrun power control  \\
-\hspace{0.5cm}{\tt LRTI} &  LongRun table interface  \\
-\hspace{0.5cm}{\tt CXMMX} &  Cyrix MMX extensions  \\
-\hspace{0.5cm}{\tt K6\_MTRR} &  AMD K6 nonstandard MTRRs  \\
-\hspace{0.5cm}{\tt CYRIX\_ARR} &  Cyrix ARRs (= MTRRs)  \\
-\hspace{0.5cm}{\tt CENTAUR\_MCR} &  Centaur MCRs (= MTRRs)  \\
-\hspace{0.5cm}{\tt K8} &  Opteron, Athlon64  \\
-\hspace{0.5cm}{\tt K7} &  Athlon  \\
-\hspace{0.5cm}{\tt P3} &  P3  \\
-\hspace{0.5cm}{\tt P4} &  P4  \\
-\hspace{0.5cm}{\tt CONSTANT\_TSC} &  TSC ticks at a constant rate  \\
-\hspace{0.5cm}{\tt FXSAVE\_LEAK} &  FXSAVE leaks FOP/FIP/FOP  \\
-\hspace{0.5cm}{\tt XMM3} &  Streaming SIMD Extensions-3  \\
-\hspace{0.5cm}{\tt MWAIT} &  Monitor/Mwait support  \\
-\hspace{0.5cm}{\tt DSCPL} &  CPL Qualified Debug Store  \\
-\hspace{0.5cm}{\tt EST} &  Enhanced SpeedStep  \\
-\hspace{0.5cm}{\tt TM2} &  Thermal Monitor 2  \\
-\hspace{0.5cm}{\tt CID} &  Context ID  \\
-\hspace{0.5cm}{\tt CX16} &  CMPXCHG16B  \\
-\hspace{0.5cm}{\tt XTPR} &  Send Task Priority Messages  \\
-\hspace{0.5cm}{\tt XSTORE} &  on-CPU RNG present (xstore insn)  \\
-\hspace{0.5cm}{\tt XSTORE\_EN} &  on-CPU RNG enabled  \\
-\hspace{0.5cm}{\tt XCRYPT} &  on-CPU crypto (xcrypt insn)  \\
-\hspace{0.5cm}{\tt XCRYPT\_EN} &  on-CPU crypto enabled  \\
-\hspace{0.5cm}{\tt LAHF\_LM} &  LAHF/SAHF in long mode  \\
-\hspace{0.5cm}{\tt CMP\_LEGACY} &  If yes HyperThreading not valid  \\
-\hspace{0.5cm}{\tt VMX} &  VMX instruction set  \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
 {\tt enum on\_normal\_exit} & \\
 \hline
 \hspace{0.5cm}{\tt destroy} & destroy the VM state \\
@@ -1104,10 +1032,6 @@ Quals & Field & Type & Description \\
 $\mathit{RW}$ &  {\tt VCPUs/params} & string & string-encoded parameters 
passed to selected VCPU policy \\
 $\mathit{RW}$ &  {\tt VCPUs/number} & int & Current number of VCPUs \\
 $\mathit{RO}_\mathit{run}$ &  {\tt VCPUs/utilisation} & (int $\rightarrow$ 
float) Map & Utilisation for all of guest's current VCPUs \\
-$\mathit{RO}_\mathit{ins}$ &  {\tt VCPUs/features/required} & (cpu\_feature) 
Set & CPU features the guest demands the host supports \\
-$\mathit{RO}_\mathit{ins}$ &  {\tt VCPUs/features/can\_use} & (cpu\_feature) 
Set & CPU features the guest can use if available \\
-$\mathit{RW}$ &  {\tt VCPUs/features/force\_on} & (cpu\_feature) Set & CPU 
features to expose to the guest above the bare minimum \\
-$\mathit{RW}$ &  {\tt VCPUs/features/force\_off} & (cpu\_feature) Set & CPU 
features to hide to the guest \\
 $\mathit{RW}$ &  {\tt actions/after\_shutdown} & on\_normal\_exit & action to 
take after the guest has shutdown itself \\
 $\mathit{RW}$ &  {\tt actions/after\_reboot} & on\_normal\_exit & action to 
take after the guest has rebooted itself \\
 $\mathit{RW}$ &  {\tt actions/after\_suspend} & on\_normal\_exit & action to 
take after the guest has suspended itself \\
@@ -2402,342 +2326,6 @@ value of the field
 \vspace{0.3cm}
 \vspace{0.3cm}
 \vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_features\_required}
-
-{\bf Overview:} 
-Get the VCPUs/features/required field of the given VM.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_required (session_id 
s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-(cpu\_feature) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_features\_can\_use}
-
-{\bf Overview:} 
-Get the VCPUs/features/can\_use field of the given VM.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_can_use (session_id s, 
VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-(cpu\_feature) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_features\_force\_on}
-
-{\bf Overview:} 
-Get the VCPUs/features/force\_on field of the given VM.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_force_on (session_id 
s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-(cpu\_feature) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_VCPUs\_features\_force\_on}
-
-{\bf Overview:} 
-Set the VCPUs/features/force\_on field of the given VM.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void set_VCPUs_features_force_on (session_id s, VM ref self, 
(cpu_feature) Set value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-{\tt (cpu\_feature) Set } & value & New value to set \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_VCPUs\_features\_force\_on}
-
-{\bf Overview:} 
-Add the given value to the VCPUs/features/force\_on field of the given VM. 
-If the value is already in that Set, then do nothing.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void add_VCPUs_features_force_on (session_id s, VM ref self, 
cpu_feature value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-{\tt cpu\_feature } & value & New value to add \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_VCPUs\_features\_force\_on}
-
-{\bf Overview:} 
-Remove the given value from the VCPUs/features/force\_on field of the given
-VM.  If the value is not in that Set, then do nothing.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void remove_VCPUs_features_force_on (session_id s, VM ref 
self, cpu_feature value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-{\tt cpu\_feature } & value & Value to remove \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_features\_force\_off}
-
-{\bf Overview:} 
-Get the VCPUs/features/force\_off field of the given VM.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} ((cpu_feature) Set) get_VCPUs_features_force_off (session_id 
s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-(cpu\_feature) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_VCPUs\_features\_force\_off}
-
-{\bf Overview:} 
-Set the VCPUs/features/force\_off field of the given VM.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void set_VCPUs_features_force_off (session_id s, VM ref self, 
(cpu_feature) Set value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-{\tt (cpu\_feature) Set } & value & New value to set \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_VCPUs\_features\_force\_off}
-
-{\bf Overview:} 
-Add the given value to the VCPUs/features/force\_off field of the given VM.
- If the value is already in that Set, then do nothing.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void add_VCPUs_features_force_off (session_id s, VM ref self, 
cpu_feature value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-{\tt cpu\_feature } & value & New value to add \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_VCPUs\_features\_force\_off}
-
-{\bf Overview:} 
-Remove the given value from the VCPUs/features/force\_off field of the
-given VM.  If the value is not in that Set, then do nothing.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void remove_VCPUs_features_force_off (session_id s, VM ref 
self, cpu_feature value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline 
-
-{\tt cpu\_feature } & value & Value to remove \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
 \subsubsection{RPC name:~get\_actions\_after\_shutdown}
 
 {\bf Overview:} 
@@ -4896,7 +4484,6 @@ Quals & Field & Type & Description \\
 $\mathit{RO}_\mathit{ins}$ &  {\tt vendor} & string & the vendor of the 
physical CPU \\
 $\mathit{RO}_\mathit{ins}$ &  {\tt speed} & int & the speed of the physical 
CPU \\
 $\mathit{RO}_\mathit{ins}$ &  {\tt modelname} & string & the model name of the 
physical CPU \\
-$\mathit{RO}_\mathit{ins}$ &  {\tt features} & (cpu\_feature) Set & the 
features supported by the CPU \\
 $\mathit{RO}_\mathit{run}$ &  {\tt utilisation} & float & the current CPU 
utilisation \\
 \hline
 \end{longtable}
@@ -5086,38 +4673,6 @@ Get the modelname field of the given hos
  \noindent {\bf Return Type:} 
 {\tt 
 string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_features}
-
-{\bf Overview:} 
-Get the features field of the given host\_cpu.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} ((cpu_feature) Set) get_features (session_id s, host_cpu ref 
self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
- 
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-(cpu\_feature) Set
 }
 
 
diff -r eb7b2a9ce40c -r 44d565181709 tools/libxen/include/xen_cpu_feature.h
--- a/tools/libxen/include/xen_cpu_feature.h    Mon Jan 29 19:04:54 2007 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,387 +0,0 @@
-/*
- * Copyright (c) 2006, XenSource Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
- */
-
-#ifndef XEN_CPU_FEATURE_H
-#define XEN_CPU_FEATURE_H
-
-
-#include "xen_common.h"
-
-
-enum xen_cpu_feature
-{
-    /**
-     *  Onboard FPU
-     */
-    XEN_CPU_FEATURE_FPU,
-
-    /**
-     *  Virtual Mode Extensions
-     */
-    XEN_CPU_FEATURE_VME,
-
-    /**
-     *  Debugging Extensions
-     */
-    XEN_CPU_FEATURE_DE,
-
-    /**
-     *  Page Size Extensions
-     */
-    XEN_CPU_FEATURE_PSE,
-
-    /**
-     *  Time Stamp Counter
-     */
-    XEN_CPU_FEATURE_TSC,
-
-    /**
-     *  Model-Specific Registers, RDMSR, WRMSR
-     */
-    XEN_CPU_FEATURE_MSR,
-
-    /**
-     *  Physical Address Extensions
-     */
-    XEN_CPU_FEATURE_PAE,
-
-    /**
-     *  Machine Check Architecture
-     */
-    XEN_CPU_FEATURE_MCE,
-
-    /**
-     *  CMPXCHG8 instruction
-     */
-    XEN_CPU_FEATURE_CX8,
-
-    /**
-     *  Onboard APIC
-     */
-    XEN_CPU_FEATURE_APIC,
-
-    /**
-     *  SYSENTER/SYSEXIT
-     */
-    XEN_CPU_FEATURE_SEP,
-
-    /**
-     *  Memory Type Range Registers
-     */
-    XEN_CPU_FEATURE_MTRR,
-
-    /**
-     *  Page Global Enable
-     */
-    XEN_CPU_FEATURE_PGE,
-
-    /**
-     *  Machine Check Architecture
-     */
-    XEN_CPU_FEATURE_MCA,
-
-    /**
-     *  CMOV instruction (FCMOVCC and FCOMI too if FPU present)
-     */
-    XEN_CPU_FEATURE_CMOV,
-
-    /**
-     *  Page Attribute Table
-     */
-    XEN_CPU_FEATURE_PAT,
-
-    /**
-     *  36-bit PSEs
-     */
-    XEN_CPU_FEATURE_PSE36,
-
-    /**
-     *  Processor serial number
-     */
-    XEN_CPU_FEATURE_PN,
-
-    /**
-     *  Supports the CLFLUSH instruction
-     */
-    XEN_CPU_FEATURE_CLFLSH,
-
-    /**
-     *  Debug Trace Store
-     */
-    XEN_CPU_FEATURE_DTES,
-
-    /**
-     *  ACPI via MSR
-     */
-    XEN_CPU_FEATURE_ACPI,
-
-    /**
-     *  Multimedia Extensions
-     */
-    XEN_CPU_FEATURE_MMX,
-
-    /**
-     *  FXSAVE and FXRSTOR instructions (fast save and restore
-     */
-    XEN_CPU_FEATURE_FXSR,
-
-    /**
-     *  Streaming SIMD Extensions
-     */
-    XEN_CPU_FEATURE_XMM,
-
-    /**
-     *  Streaming SIMD Extensions-2
-     */
-    XEN_CPU_FEATURE_XMM2,
-
-    /**
-     *  CPU self snoop
-     */
-    XEN_CPU_FEATURE_SELFSNOOP,
-
-    /**
-     *  Hyper-Threading
-     */
-    XEN_CPU_FEATURE_HT,
-
-    /**
-     *  Automatic clock control
-     */
-    XEN_CPU_FEATURE_ACC,
-
-    /**
-     *  IA-64 processor
-     */
-    XEN_CPU_FEATURE_IA64,
-
-    /**
-     *  SYSCALL/SYSRET
-     */
-    XEN_CPU_FEATURE_SYSCALL,
-
-    /**
-     *  MP Capable.
-     */
-    XEN_CPU_FEATURE_MP,
-
-    /**
-     *  Execute Disable
-     */
-    XEN_CPU_FEATURE_NX,
-
-    /**
-     *  AMD MMX extensions
-     */
-    XEN_CPU_FEATURE_MMXEXT,
-
-    /**
-     *  Long Mode (x86-64)
-     */
-    XEN_CPU_FEATURE_LM,
-
-    /**
-     *  AMD 3DNow! extensions
-     */
-    XEN_CPU_FEATURE_THREEDNOWEXT,
-
-    /**
-     *  3DNow!
-     */
-    XEN_CPU_FEATURE_THREEDNOW,
-
-    /**
-     *  CPU in recovery mode
-     */
-    XEN_CPU_FEATURE_RECOVERY,
-
-    /**
-     *  Longrun power control
-     */
-    XEN_CPU_FEATURE_LONGRUN,
-
-    /**
-     *  LongRun table interface
-     */
-    XEN_CPU_FEATURE_LRTI,
-
-    /**
-     *  Cyrix MMX extensions
-     */
-    XEN_CPU_FEATURE_CXMMX,
-
-    /**
-     *  AMD K6 nonstandard MTRRs
-     */
-    XEN_CPU_FEATURE_K6_MTRR,
-
-    /**
-     *  Cyrix ARRs (= MTRRs)
-     */
-    XEN_CPU_FEATURE_CYRIX_ARR,
-
-    /**
-     *  Centaur MCRs (= MTRRs)
-     */
-    XEN_CPU_FEATURE_CENTAUR_MCR,
-
-    /**
-     *  Opteron, Athlon64
-     */
-    XEN_CPU_FEATURE_K8,
-
-    /**
-     *  Athlon
-     */
-    XEN_CPU_FEATURE_K7,
-
-    /**
-     *  P3
-     */
-    XEN_CPU_FEATURE_P3,
-
-    /**
-     *  P4
-     */
-    XEN_CPU_FEATURE_P4,
-
-    /**
-     *  TSC ticks at a constant rate
-     */
-    XEN_CPU_FEATURE_CONSTANT_TSC,
-
-    /**
-     *  FXSAVE leaks FOP/FIP/FOP
-     */
-    XEN_CPU_FEATURE_FXSAVE_LEAK,
-
-    /**
-     *  Streaming SIMD Extensions-3
-     */
-    XEN_CPU_FEATURE_XMM3,
-
-    /**
-     *  Monitor/Mwait support
-     */
-    XEN_CPU_FEATURE_MWAIT,
-
-    /**
-     *  CPL Qualified Debug Store
-     */
-    XEN_CPU_FEATURE_DSCPL,
-
-    /**
-     *  Enhanced SpeedStep
-     */
-    XEN_CPU_FEATURE_EST,
-
-    /**
-     *  Thermal Monitor 2
-     */
-    XEN_CPU_FEATURE_TM2,
-
-    /**
-     *  Context ID
-     */
-    XEN_CPU_FEATURE_CID,
-
-    /**
-     *  CMPXCHG16B
-     */
-    XEN_CPU_FEATURE_CX16,
-
-    /**
-     *  Send Task Priority Messages
-     */
-    XEN_CPU_FEATURE_XTPR,
-
-    /**
-     *  on-CPU RNG present (xstore insn)
-     */
-    XEN_CPU_FEATURE_XSTORE,
-
-    /**
-     *  on-CPU RNG enabled
-     */
-    XEN_CPU_FEATURE_XSTORE_EN,
-
-    /**
-     *  on-CPU crypto (xcrypt insn)
-     */
-    XEN_CPU_FEATURE_XCRYPT,
-
-    /**
-     *  on-CPU crypto enabled
-     */
-    XEN_CPU_FEATURE_XCRYPT_EN,
-
-    /**
-     *  LAHF/SAHF in long mode
-     */
-    XEN_CPU_FEATURE_LAHF_LM,
-
-    /**
-     *  If yes HyperThreading not valid
-     */
-    XEN_CPU_FEATURE_CMP_LEGACY,
-
-    /**
-     *  VMX instruction set
-     */
-    XEN_CPU_FEATURE_VMX
-};
-
-
-typedef struct xen_cpu_feature_set
-{
-    size_t size;
-    enum xen_cpu_feature contents[];
-} xen_cpu_feature_set;
-
-/**
- * Allocate a xen_cpu_feature_set of the given size.
- */
-extern xen_cpu_feature_set *
-xen_cpu_feature_set_alloc(size_t size);
-
-/**
- * Free the given xen_cpu_feature_set.  The given set must have been
- * allocated by this library.
- */
-extern void
-xen_cpu_feature_set_free(xen_cpu_feature_set *set);
-
-
-/**
- * Return the name corresponding to the given code.  This string must
- * not be modified or freed.
- */
-extern const char *
-xen_cpu_feature_to_string(enum xen_cpu_feature val);
-
-
-/**
- * Return the correct code for the given string, or set the session
- * object to failure and return an undefined value if the given string does
- * not match a known code.
- */
-extern enum xen_cpu_feature
-xen_cpu_feature_from_string(xen_session *session, const char *str);
-
-
-#endif
diff -r eb7b2a9ce40c -r 44d565181709 
tools/libxen/include/xen_cpu_feature_internal.h
--- a/tools/libxen/include/xen_cpu_feature_internal.h   Mon Jan 29 19:04:54 
2007 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2006, XenSource Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
- */
-
-
-/*
- * Declarations of the abstract types used during demarshalling of enum
- * xen_cpu_feature.  Internal to this library -- do not use from outside.
- */
-
-
-#ifndef XEN_CPU_FEATURE_INTERNAL_H
-#define XEN_CPU_FEATURE_INTERNAL_H
-
-
-#include "xen_internal.h"
-
-
-extern const abstract_type xen_cpu_feature_abstract_type_;
-extern const abstract_type xen_cpu_feature_set_abstract_type_;
-
-
-#endif
diff -r eb7b2a9ce40c -r 44d565181709 tools/libxen/include/xen_host_cpu.h
--- a/tools/libxen/include/xen_host_cpu.h       Mon Jan 29 19:04:54 2007 +0000
+++ b/tools/libxen/include/xen_host_cpu.h       Tue Jan 30 00:10:05 2007 +0000
@@ -20,7 +20,6 @@
 #define XEN_HOST_CPU_H
 
 #include "xen_common.h"
-#include "xen_cpu_feature.h"
 #include "xen_host_cpu_decl.h"
 #include "xen_host_decl.h"
 
@@ -69,7 +68,6 @@ typedef struct xen_host_cpu_record
     char *vendor;
     int64_t speed;
     char *modelname;
-    struct xen_cpu_feature_set *features;
     double utilisation;
 } xen_host_cpu_record;
 
@@ -223,13 +221,6 @@ xen_host_cpu_get_modelname(xen_session *
 
 
 /**
- * Get the features field of the given host_cpu.
- */
-extern bool
-xen_host_cpu_get_features(xen_session *session, struct xen_cpu_feature_set 
**result, xen_host_cpu host_cpu);
-
-
-/**
  * Get the utilisation field of the given host_cpu.
  */
 extern bool
diff -r eb7b2a9ce40c -r 44d565181709 tools/libxen/include/xen_vm.h
--- a/tools/libxen/include/xen_vm.h     Mon Jan 29 19:04:54 2007 +0000
+++ b/tools/libxen/include/xen_vm.h     Tue Jan 30 00:10:05 2007 +0000
@@ -21,7 +21,6 @@
 
 #include "xen_common.h"
 #include "xen_console_decl.h"
-#include "xen_cpu_feature.h"
 #include "xen_host_decl.h"
 #include "xen_int_float_map.h"
 #include "xen_on_crash_behaviour.h"
@@ -119,10 +118,6 @@ typedef struct xen_vm_record
     char *vcpus_params;
     int64_t vcpus_number;
     xen_int_float_map *vcpus_utilisation;
-    struct xen_cpu_feature_set *vcpus_features_required;
-    struct xen_cpu_feature_set *vcpus_features_can_use;
-    struct xen_cpu_feature_set *vcpus_features_force_on;
-    struct xen_cpu_feature_set *vcpus_features_force_off;
     enum xen_on_normal_exit actions_after_shutdown;
     enum xen_on_normal_exit actions_after_reboot;
     enum xen_on_normal_exit actions_after_suspend;
@@ -383,34 +378,6 @@ xen_vm_get_vcpus_utilisation(xen_session
 
 
 /**
- * Get the VCPUs/features/required field of the given VM.
- */
-extern bool
-xen_vm_get_vcpus_features_required(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm);
-
-
-/**
- * Get the VCPUs/features/can_use field of the given VM.
- */
-extern bool
-xen_vm_get_vcpus_features_can_use(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm);
-
-
-/**
- * Get the VCPUs/features/force_on field of the given VM.
- */
-extern bool
-xen_vm_get_vcpus_features_force_on(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm);
-
-
-/**
- * Get the VCPUs/features/force_off field of the given VM.
- */
-extern bool
-xen_vm_get_vcpus_features_force_off(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm);
-
-
-/**
  * Get the actions/after_shutdown field of the given VM.
  */
 extern bool
@@ -632,52 +599,6 @@ xen_vm_set_vcpus_params(xen_session *ses
  */
 extern bool
 xen_vm_set_vcpus_number(xen_session *session, xen_vm vm, int64_t number);
-
-
-/**
- * Set the VCPUs/features/force_on field of the given VM.
- */
-extern bool
-xen_vm_set_vcpus_features_force_on(xen_session *session, xen_vm vm, struct 
xen_cpu_feature_set *force_on);
-
-
-/**
- * Add the given value to the VCPUs/features/force_on field of the
- * given VM.  If the value is already in that Set, then do nothing.
- */
-extern bool
-xen_vm_add_vcpus_features_force_on(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value);
-
-
-/**
- * Remove the given value from the VCPUs/features/force_on field of the
- * given VM.  If the value is not in that Set, then do nothing.
- */
-extern bool
-xen_vm_remove_vcpus_features_force_on(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value);
-
-
-/**
- * Set the VCPUs/features/force_off field of the given VM.
- */
-extern bool
-xen_vm_set_vcpus_features_force_off(xen_session *session, xen_vm vm, struct 
xen_cpu_feature_set *force_off);
-
-
-/**
- * Add the given value to the VCPUs/features/force_off field of the
- * given VM.  If the value is already in that Set, then do nothing.
- */
-extern bool
-xen_vm_add_vcpus_features_force_off(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value);
-
-
-/**
- * Remove the given value from the VCPUs/features/force_off field of
- * the given VM.  If the value is not in that Set, then do nothing.
- */
-extern bool
-xen_vm_remove_vcpus_features_force_off(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value);
 
 
 /**
diff -r eb7b2a9ce40c -r 44d565181709 tools/libxen/src/xen_cpu_feature.c
--- a/tools/libxen/src/xen_cpu_feature.c        Mon Jan 29 19:04:54 2007 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2006, XenSource Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
- */
-
-#include <string.h>
-
-#include "xen_internal.h"
-#include "xen_cpu_feature.h"
-#include "xen_cpu_feature_internal.h"
-
-
-/*
- * Maintain this in the same order as the enum declaration!
- */
-static const char *lookup_table[] =
-{
-    "FPU",
-    "VME",
-    "DE",
-    "PSE",
-    "TSC",
-    "MSR",
-    "PAE",
-    "MCE",
-    "CX8",
-    "APIC",
-    "SEP",
-    "MTRR",
-    "PGE",
-    "MCA",
-    "CMOV",
-    "PAT",
-    "PSE36",
-    "PN",
-    "CLFLSH",
-    "DTES",
-    "ACPI",
-    "MMX",
-    "FXSR",
-    "XMM",
-    "XMM2",
-    "SELFSNOOP",
-    "HT",
-    "ACC",
-    "IA64",
-    "SYSCALL",
-    "MP",
-    "NX",
-    "MMXEXT",
-    "LM",
-    "THREEDNOWEXT",
-    "THREEDNOW",
-    "RECOVERY",
-    "LONGRUN",
-    "LRTI",
-    "CXMMX",
-    "K6_MTRR",
-    "CYRIX_ARR",
-    "CENTAUR_MCR",
-    "K8",
-    "K7",
-    "P3",
-    "P4",
-    "CONSTANT_TSC",
-    "FXSAVE_LEAK",
-    "XMM3",
-    "MWAIT",
-    "DSCPL",
-    "EST",
-    "TM2",
-    "CID",
-    "CX16",
-    "XTPR",
-    "XSTORE",
-    "XSTORE_EN",
-    "XCRYPT",
-    "XCRYPT_EN",
-    "LAHF_LM",
-    "CMP_LEGACY",
-    "VMX"
-};
-
-
-extern xen_cpu_feature_set *
-xen_cpu_feature_set_alloc(size_t size)
-{
-    return calloc(1, sizeof(xen_cpu_feature_set) +
-                  size * sizeof(enum xen_cpu_feature));
-}
-
-
-extern void
-xen_cpu_feature_set_free(xen_cpu_feature_set *set)
-{
-    free(set);
-}
-
-
-const char *
-xen_cpu_feature_to_string(enum xen_cpu_feature val)
-{
-    return lookup_table[val];
-}
-
-
-extern enum xen_cpu_feature
-xen_cpu_feature_from_string(xen_session *session, const char *str)
-{
-    return ENUM_LOOKUP(session, str, lookup_table);
-}
-
-
-const abstract_type xen_cpu_feature_abstract_type_ =
-    {
-        .typename = ENUM,
-        .enum_marshaller =
-             (const char *(*)(int))&xen_cpu_feature_to_string,
-        .enum_demarshaller =
-             (int (*)(xen_session *, const char *))&xen_cpu_feature_from_string
-    };
-
-
-const abstract_type xen_cpu_feature_set_abstract_type_ =
-    {
-        .typename = SET,
-        .child = &xen_cpu_feature_abstract_type_
-    };
-
-
diff -r eb7b2a9ce40c -r 44d565181709 tools/libxen/src/xen_host_cpu.c
--- a/tools/libxen/src/xen_host_cpu.c   Mon Jan 29 19:04:54 2007 +0000
+++ b/tools/libxen/src/xen_host_cpu.c   Tue Jan 30 00:10:05 2007 +0000
@@ -21,8 +21,6 @@
 #include <stdlib.h>
 
 #include "xen_common.h"
-#include "xen_cpu_feature.h"
-#include "xen_cpu_feature_internal.h"
 #include "xen_host.h"
 #include "xen_host_cpu.h"
 #include "xen_internal.h"
@@ -57,9 +55,6 @@ static const struct_member xen_host_cpu_
         { .key = "modelname",
           .type = &abstract_type_string,
           .offset = offsetof(xen_host_cpu_record, modelname) },
-        { .key = "features",
-          .type = &xen_cpu_feature_set_abstract_type_,
-          .offset = offsetof(xen_host_cpu_record, features) },
         { .key = "utilisation",
           .type = &abstract_type_float,
           .offset = offsetof(xen_host_cpu_record, utilisation) }
@@ -87,7 +82,6 @@ xen_host_cpu_record_free(xen_host_cpu_re
     xen_host_record_opt_free(record->host);
     free(record->vendor);
     free(record->modelname);
-    xen_cpu_feature_set_free(record->features);
     free(record);
 }
 
@@ -247,23 +241,6 @@ xen_host_cpu_get_modelname(xen_session *
 
 
 bool
-xen_host_cpu_get_features(xen_session *session, struct xen_cpu_feature_set 
**result, xen_host_cpu host_cpu)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = host_cpu }
-        };
-
-    abstract_type result_type = xen_cpu_feature_set_abstract_type_;
-
-    *result = NULL;
-    XEN_CALL_("host_cpu.get_features");
-    return session->ok;
-}
-
-
-bool
 xen_host_cpu_get_utilisation(xen_session *session, double *result, 
xen_host_cpu host_cpu)
 {
     abstract_value param_values[] =
diff -r eb7b2a9ce40c -r 44d565181709 tools/libxen/src/xen_vm.c
--- a/tools/libxen/src/xen_vm.c Mon Jan 29 19:04:54 2007 +0000
+++ b/tools/libxen/src/xen_vm.c Tue Jan 30 00:10:05 2007 +0000
@@ -22,8 +22,6 @@
 
 #include "xen_common.h"
 #include "xen_console.h"
-#include "xen_cpu_feature.h"
-#include "xen_cpu_feature_internal.h"
 #include "xen_host.h"
 #include "xen_int_float_map.h"
 #include "xen_internal.h"
@@ -99,18 +97,6 @@ static const struct_member xen_vm_record
         { .key = "VCPUs_utilisation",
           .type = &abstract_type_int_float_map,
           .offset = offsetof(xen_vm_record, vcpus_utilisation) },
-        { .key = "VCPUs_features_required",
-          .type = &xen_cpu_feature_set_abstract_type_,
-          .offset = offsetof(xen_vm_record, vcpus_features_required) },
-        { .key = "VCPUs_features_can_use",
-          .type = &xen_cpu_feature_set_abstract_type_,
-          .offset = offsetof(xen_vm_record, vcpus_features_can_use) },
-        { .key = "VCPUs_features_force_on",
-          .type = &xen_cpu_feature_set_abstract_type_,
-          .offset = offsetof(xen_vm_record, vcpus_features_force_on) },
-        { .key = "VCPUs_features_force_off",
-          .type = &xen_cpu_feature_set_abstract_type_,
-          .offset = offsetof(xen_vm_record, vcpus_features_force_off) },
         { .key = "actions_after_shutdown",
           .type = &xen_on_normal_exit_abstract_type_,
           .offset = offsetof(xen_vm_record, actions_after_shutdown) },
@@ -204,10 +190,6 @@ xen_vm_record_free(xen_vm_record *record
     free(record->vcpus_policy);
     free(record->vcpus_params);
     xen_int_float_map_free(record->vcpus_utilisation);
-    xen_cpu_feature_set_free(record->vcpus_features_required);
-    xen_cpu_feature_set_free(record->vcpus_features_can_use);
-    xen_cpu_feature_set_free(record->vcpus_features_force_on);
-    xen_cpu_feature_set_free(record->vcpus_features_force_off);
     xen_console_record_opt_set_free(record->consoles);
     xen_vif_record_opt_set_free(record->vifs);
     xen_vbd_record_opt_set_free(record->vbds);
@@ -576,74 +558,6 @@ xen_vm_get_vcpus_utilisation(xen_session
 
 
 bool
-xen_vm_get_vcpus_features_required(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm }
-        };
-
-    abstract_type result_type = xen_cpu_feature_set_abstract_type_;
-
-    *result = NULL;
-    XEN_CALL_("VM.get_VCPUs_features_required");
-    return session->ok;
-}
-
-
-bool
-xen_vm_get_vcpus_features_can_use(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm }
-        };
-
-    abstract_type result_type = xen_cpu_feature_set_abstract_type_;
-
-    *result = NULL;
-    XEN_CALL_("VM.get_VCPUs_features_can_use");
-    return session->ok;
-}
-
-
-bool
-xen_vm_get_vcpus_features_force_on(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm }
-        };
-
-    abstract_type result_type = xen_cpu_feature_set_abstract_type_;
-
-    *result = NULL;
-    XEN_CALL_("VM.get_VCPUs_features_force_on");
-    return session->ok;
-}
-
-
-bool
-xen_vm_get_vcpus_features_force_off(xen_session *session, struct 
xen_cpu_feature_set **result, xen_vm vm)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm }
-        };
-
-    abstract_type result_type = xen_cpu_feature_set_abstract_type_;
-
-    *result = NULL;
-    XEN_CALL_("VM.get_VCPUs_features_force_off");
-    return session->ok;
-}
-
-
-bool
 xen_vm_get_actions_after_shutdown(xen_session *session, enum 
xen_on_normal_exit *result, xen_vm vm)
 {
     abstract_value param_values[] =
@@ -1166,102 +1080,6 @@ xen_vm_set_vcpus_number(xen_session *ses
 
 
 bool
-xen_vm_set_vcpus_features_force_on(xen_session *session, xen_vm vm, struct 
xen_cpu_feature_set *force_on)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm },
-            { .type = &xen_cpu_feature_set_abstract_type_,
-              .u.set_val = (arbitrary_set *)force_on }
-        };
-
-    xen_call_(session, "VM.set_VCPUs_features_force_on", param_values, 2, 
NULL, NULL);
-    return session->ok;
-}
-
-
-bool
-xen_vm_add_vcpus_features_force_on(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm },
-            { .type = &xen_cpu_feature_abstract_type_,
-              .u.string_val = xen_cpu_feature_to_string(value) }
-        };
-
-    xen_call_(session, "VM.add_VCPUs_features_force_on", param_values, 2, 
NULL, NULL);
-    return session->ok;
-}
-
-
-bool
-xen_vm_remove_vcpus_features_force_on(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm },
-            { .type = &xen_cpu_feature_abstract_type_,
-              .u.string_val = xen_cpu_feature_to_string(value) }
-        };
-
-    xen_call_(session, "VM.remove_VCPUs_features_force_on", param_values, 2, 
NULL, NULL);
-    return session->ok;
-}
-
-
-bool
-xen_vm_set_vcpus_features_force_off(xen_session *session, xen_vm vm, struct 
xen_cpu_feature_set *force_off)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm },
-            { .type = &xen_cpu_feature_set_abstract_type_,
-              .u.set_val = (arbitrary_set *)force_off }
-        };
-
-    xen_call_(session, "VM.set_VCPUs_features_force_off", param_values, 2, 
NULL, NULL);
-    return session->ok;
-}
-
-
-bool
-xen_vm_add_vcpus_features_force_off(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm },
-            { .type = &xen_cpu_feature_abstract_type_,
-              .u.string_val = xen_cpu_feature_to_string(value) }
-        };
-
-    xen_call_(session, "VM.add_VCPUs_features_force_off", param_values, 2, 
NULL, NULL);
-    return session->ok;
-}
-
-
-bool
-xen_vm_remove_vcpus_features_force_off(xen_session *session, xen_vm vm, enum 
xen_cpu_feature value)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm },
-            { .type = &xen_cpu_feature_abstract_type_,
-              .u.string_val = xen_cpu_feature_to_string(value) }
-        };
-
-    xen_call_(session, "VM.remove_VCPUs_features_force_off", param_values, 2, 
NULL, NULL);
-    return session->ok;
-}
-
-
-bool
 xen_vm_set_actions_after_shutdown(xen_session *session, xen_vm vm, enum 
xen_on_normal_exit after_shutdown)
 {
     abstract_value param_values[] =
diff -r eb7b2a9ce40c -r 44d565181709 tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Mon Jan 29 19:04:54 2007 +0000
+++ b/tools/python/xen/xend/XendAPI.py  Tue Jan 30 00:10:05 2007 +0000
@@ -652,15 +652,11 @@ class XendAPI(object):
 
     host_cpu_attr_ro = ['host',
                         'number',
-                        'features',
                         'utilisation']
 
     # attributes
     def host_cpu_get_host(self, session, host_cpu_ref):
         return xen_api_success(XendNode.instance().uuid)
-    def host_cpu_get_features(self, session, host_cpu_ref):
-        features = XendNode.instance().get_host_cpu_features(host_cpu_ref)
-        return xen_api_success(features)
     def host_cpu_get_utilisation(self, session, host_cpu_ref):
         util = XendNode.instance().get_host_cpu_load(host_cpu_ref)
         return xen_api_success(util)
@@ -676,7 +672,6 @@ class XendAPI(object):
         record = {'uuid': host_cpu_ref,
                   'host': node.uuid,
                   'number': node.get_host_cpu_number(host_cpu_ref),
-                  'features': node.get_host_cpu_features(host_cpu_ref),
                   'utilisation': node.get_host_cpu_load(host_cpu_ref)}
         return xen_api_success(record)
 
@@ -860,8 +855,6 @@ class XendAPI(object):
                   'memory_static_min',
                   'VCPUs_number',
                   'VCPUs_utilisation',
-                  'VCPUs_features_required',
-                  'VCPUs_can_use',
                   'consoles',
                   'VIFs',
                   'VBDs',
@@ -879,8 +872,6 @@ class XendAPI(object):
                   'memory_dynamic_min',
                   'VCPUs_policy',
                   'VCPUs_params',
-                  'VCPUs_features_force_on',
-                  'VCPUs_features_force_off',
                   'actions_after_shutdown',
                   'actions_after_reboot',
                   'actions_after_suspend',
@@ -927,10 +918,6 @@ class XendAPI(object):
         'memory_static_min',
         'VCPUs_policy',
         'VCPUs_params',
-        'VCPUs_features_required',
-        'VCPUs_features_can_use',
-        'VCPUs_features_force_on',
-        'VCPUs_features_force_off',
         'actions_after_shutdown',
         'actions_after_reboot',
         'actions_after_suspend',
@@ -990,14 +977,6 @@ class XendAPI(object):
         dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
         return xen_api_success(dom.get_vcpus_util())
     
-    def VM_get_VCPUs_features_required(self, session, vm_ref):
-        dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
-        return xen_api_todo() # unsupported by xc
-    
-    def VM_get_VCPUs_can_use(self, session, vm_ref):
-        dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
-        return xen_api_todo() # unsupported by xc
-    
     def VM_get_VIFs(self, session, vm_ref):
         dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
         return xen_api_success(dom.get_vifs())
@@ -1055,14 +1034,6 @@ class XendAPI(object):
         dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
         return xen_api_todo() # need access to scheduler
     
-    def VM_get_VCPUs_features_force_on(self, session, vm_ref):
-        dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
-        return xen_api_todo()
-    
-    def VM_get_VCPUs_features_force_off(self, session, vm_ref):
-        dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
-        return xen_api_todo()
-    
     def VM_get_actions_after_shutdown(self, session, vm_ref):
         dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
         return xen_api_success(dom.get_on_shutdown())
@@ -1154,14 +1125,6 @@ class XendAPI(object):
         return xen_api_todo()
     
     def VM_set_VCPUs_params(self, session, vm_ref, params):
-        dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
-        return xen_api_todo()
-    
-    def VM_set_VCPUs_features_force_on(self, session, vm_ref, features):
-        dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
-        return xen_api_todo()
-    
-    def VM_set_VCPUs_features_force_off(self, session, vm_ref, features):
         dom = XendDomain.instance().get_vm_by_uuid(vm_ref)
         return xen_api_todo()
     
@@ -1280,10 +1243,6 @@ class XendAPI(object):
             'VCPUs_params': xeninfo.get_vcpus_params(),
             'VCPUs_number': xeninfo.getVCpuCount(),
             'VCPUs_utilisation': xeninfo.get_vcpus_util(),
-            'VCPUs_features_required': [],
-            'VCPUs_features_can_use': [],
-            'VCPUs_features_force_on': [],
-            'VCPUs_features_force_off': [],
             'actions_after_shutdown': xeninfo.get_on_shutdown(),
             'actions_after_reboot': xeninfo.get_on_reboot(),
             'actions_after_suspend': xeninfo.get_on_suspend(),

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Remove the CPU feature handling, unimplementable as it stands., Xen patchbot-unstable <=