aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/domctl.h
diff options
context:
space:
mode:
authorLiu, Jinsong <jinsong.liu@intel.com>2012-09-26 12:05:55 +0200
committerLiu, Jinsong <jinsong.liu@intel.com>2012-09-26 12:05:55 +0200
commit19b03acdd1cdb8a6c35a30079ae6d6fb72caa285 (patch)
tree734c7cb2e579c64fae4183bb4201eb9d98f01e2b /xen/include/public/domctl.h
parent513e591c04d9d4f9ffe9ec282daaba798c30c176 (diff)
downloadxen-19b03acdd1cdb8a6c35a30079ae6d6fb72caa285.tar.gz
xen-19b03acdd1cdb8a6c35a30079ae6d6fb72caa285.tar.bz2
xen-19b03acdd1cdb8a6c35a30079ae6d6fb72caa285.zip
x86: vMCE save and restore
This patch provides vMCE save/restore when migration. 1. MCG_CAP is well-defined. However, considering future cap extension, we keep save/restore logic that Jan implement at c/s 24887; 2. MCi_CTL2 initialized by guestos when booting, so need save/restore otherwise guest would surprise; 3. Other MSRs do not need save/restore since they are either error- related and pointless to save/restore, or, unified among all vMCE platform; Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com> - fix handling of partial data in XEN_DOMCTL_set_ext_vcpucontext - fix adjustment of xen_domctl_ext_vcpucontext Signed-off-by: Jan Beulich <jbeulich@suse.com> Committed-by: Jan Beulich <jbeulich@suse.com>
Diffstat (limited to 'xen/include/public/domctl.h')
-rw-r--r--xen/include/public/domctl.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index f367ce2b2c..a5836470ea 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -32,6 +32,7 @@
#error "domctl operations are intended for use by node control tools only"
#endif
+#include <xen/hvm/save.h>
#include "xen.h"
#include "grant_table.h"
@@ -564,7 +565,14 @@ struct xen_domctl_ext_vcpucontext {
uint16_t sysenter_callback_cs;
uint8_t syscall32_disables_events;
uint8_t sysenter_disables_events;
- uint64_aligned_t mcg_cap;
+#if defined(__GNUC__)
+ union {
+ uint64_aligned_t mcg_cap;
+ struct hvm_vmce_vcpu vmce;
+ };
+#else
+ struct hvm_vmce_vcpu vmce;
+#endif
#endif
};
typedef struct xen_domctl_ext_vcpucontext xen_domctl_ext_vcpucontext_t;