]> xenbits.xensource.com Git - people/aperard/xen-arm.git/commitdiff
xen: arm: implement arch_get_info_guest
authorIan Campbell <ian.campbell@citrix.com>
Wed, 19 Dec 2012 14:16:20 +0000 (14:16 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 19 Dec 2012 14:16:20 +0000 (14:16 +0000)
Untested, but basically the inverse of arch_set_info_guest.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/domctl.c
xen/arch/arm/dummy.S

index d54a387d5e3f0df84fca7337f311e9e30143728d..c7ffd8a74595a82b1d8937cfef99249cd5ef80e8 100644 (file)
@@ -8,6 +8,7 @@
 #include <xen/types.h>
 #include <xen/lib.h>
 #include <xen/errno.h>
+#include <xen/sched.h>
 #include <public/domctl.h>
 
 long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
@@ -16,6 +17,22 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
     return -ENOSYS;
 }
 
+void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
+{
+    struct vcpu_guest_context *ctxt = c.nat;
+    struct cpu_user_regs *regs = &c.nat->user_regs;
+
+    *regs = v->arch.cpu_info->guest_cpu_user_regs;
+
+    ctxt->sctlr = v->arch.sctlr;
+    ctxt->ttbr0 = v->arch.ttbr0;
+    ctxt->ttbr1 = v->arch.ttbr1;
+    ctxt->ttbcr = v->arch.ttbcr;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        ctxt->flags |= VGCF_online;
+}
+
 /*
  * Local variables:
  * mode: C
index bfd948acb66b29f2e455ae677fb367f7c3d4ea2e..5ac6af9ec903c64ac0dc9c20229e2d3c23fe955d 100644 (file)
@@ -14,7 +14,6 @@ DUMMY(pirq_guest_unbind);
 DUMMY(pirq_set_affinity);
 
 /* VCPU */
-DUMMY(arch_get_info_guest);
 DUMMY(arch_vcpu_reset);
 NOP(update_vcpu_system_time);