|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 03/21] arm: implement VGCF_online
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Tim Deegan <tim@xxxxxxx>
---
tools/libxc/xc_dom_arm.c | 2 ++
xen/arch/arm/domain.c | 5 ++++-
xen/include/public/arch-arm.h | 4 ++++
3 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
index 3eef0d0..65dafe8 100644
--- a/tools/libxc/xc_dom_arm.c
+++ b/tools/libxc/xc_dom_arm.c
@@ -101,6 +101,8 @@ static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
ctxt->user_regs.cpsr = PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC;
+ ctxt->flags = VGCF_online;
+
DOMPRINTF("Initial state CPSR %#"PRIx32" PC %#"PRIx32,
ctxt->user_regs.cpsr, ctxt->user_regs.pc);
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 57d8746..ee58d68 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -503,7 +503,10 @@ int arch_set_info_guest(
v->arch.ttbr1 = ctxt->ttbr1;
v->arch.ttbcr = ctxt->ttbcr;
- clear_bit(_VPF_down, &v->pause_flags);
+ if ( ctxt->flags & VGCF_online )
+ clear_bit(_VPF_down, &v->pause_flags);
+ else
+ set_bit(_VPF_down, &v->pause_flags);
return 0;
}
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index f18bafa..e3d4ad9 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -125,6 +125,10 @@ typedef uint64_t xen_pfn_t;
typedef uint32_t xen_ulong_t;
struct vcpu_guest_context {
+#define _VGCF_online 0
+#define VGCF_online (1<<_VGCF_online)
+ uint32_t flags; /* VGCF_* */
+
struct cpu_user_regs user_regs; /* User-level CPU registers */
uint32_t sctlr;
--
1.7.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |