aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/svm
diff options
context:
space:
mode:
authorAravindh Puthiyaparambil <aravindh@virtuata.com>2012-04-27 17:54:00 +0200
committerAravindh Puthiyaparambil <aravindh@virtuata.com>2012-04-27 17:54:00 +0200
commit7febbdae3bda9ccca27870c3396850c3fb45f728 (patch)
tree739786b54b400ff008b43ade7d955159112175cc /xen/arch/x86/hvm/svm
parent99169e3037660a1a44127b92d35344e864489c3c (diff)
downloadxen-7febbdae3bda9ccca27870c3396850c3fb45f728.tar.gz
xen-7febbdae3bda9ccca27870c3396850c3fb45f728.tar.bz2
xen-7febbdae3bda9ccca27870c3396850c3fb45f728.zip
x86/hvm: Add get_shadow_gs_base() wrapper function
Add a wrapper function to the HVM function table that returns the shadow GS base. Signed-off-by: Aravindh Puthiyaparambil <aravindh@virtuata.com> Committed-by: Jan Beulich <jbeulich@suse.com>
Diffstat (limited to 'xen/arch/x86/hvm/svm')
-rw-r--r--xen/arch/x86/hvm/svm/svm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 6b7b653c21..47fe9846fe 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -645,6 +645,11 @@ static void svm_set_segment_register(struct vcpu *v, enum x86_segment seg,
svm_vmload(vmcb);
}
+static unsigned long svm_get_shadow_gs_base(struct vcpu *v)
+{
+ return v->arch.hvm_svm.vmcb->kerngsbase;
+}
+
static int svm_set_guest_pat(struct vcpu *v, u64 gpat)
{
struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
@@ -1990,6 +1995,7 @@ static struct hvm_function_table __read_mostly svm_function_table = {
.guest_x86_mode = svm_guest_x86_mode,
.get_segment_register = svm_get_segment_register,
.set_segment_register = svm_set_segment_register,
+ .get_shadow_gs_base = svm_get_shadow_gs_base,
.update_host_cr3 = svm_update_host_cr3,
.update_guest_cr = svm_update_guest_cr,
.update_guest_efer = svm_update_guest_efer,