[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 2/9] xen/arm: Add more registers for saving and restoring vcpu registers
On Fri, 2013-10-04 at 13:43 +0900, Jaeyong Yoo wrote: > diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h > index 5d359af..bf6dc9a 100644 > --- a/xen/include/public/arch-arm.h > +++ b/xen/include/public/arch-arm.h > @@ -253,6 +253,41 @@ struct vcpu_guest_context { > > uint32_t sctlr, ttbcr; > uint64_t ttbr0, ttbr1; > + uint32_t ifar, dfar; > + uint32_t ifsr, dfsr; > + uint32_t dacr; > + uint64_t par; > + > +#ifdef CONFIG_ARM_32 I'm afraid a per arch ifdef isn't allowed in the include/public tree. The interface should be identical for both 32 and 64 bit callers. Also think of 32-on-64 guests etc. Also, this struct is guest facing (via VCPUOP_initialise) but many/all of these new registers are not things which a guest needs to specify via a hypercall. IOW I think many of them should be part of some toolstack private save/restore interface. I think x86 has a hvm_hw_cpu struct, which I think seems more appropriate. Tim, what do you think? > + uint32_t mair0, mair1; > + uint32_t tpidr_el0; > + uint32_t tpidr_el1; > + uint32_t tpidrro_el0; > + uint32_t vbar; > +#else > + uint64_t mair; > + uint64_t tpidr_el0; > + uint64_t tpidr_el1; > + uint64_t tpidrro_el0; > + uint64_t vbar; > +#endif > + > + /* Control Registers */ > + uint32_t actlr; > + uint32_t cpacr; > + > + uint32_t afsr0, afsr1; > + > + uint32_t contextidr; > + > + uint32_t teecr, teehbr; /* ThumbEE, 32-bit guests only */ > + > +#ifdef CONFIG_ARM_32 > + uint32_t joscr, jmcr; > +#endif > + > + /* CP 15 */ > + uint32_t csselr; > }; > typedef struct vcpu_guest_context vcpu_guest_context_t; > DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |