]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
KVM: x86/xen: add definitions of compat_shared_info, compat_vcpu_info
authorDavid Woodhouse <dwmw@amazon.co.uk>
Thu, 3 Dec 2020 18:45:22 +0000 (18:45 +0000)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Fri, 4 Dec 2020 09:06:55 +0000 (09:06 +0000)
There aren't a lot of differences for the things that the kernel needs
to care about, but there are a few.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
arch/x86/kvm/xen.h

index afc6dad41fb5858eca49c47cac0f70db57fd6dea..870ac7197a3ad8a7fe21c3a26e70c3781595b806 100644 (file)
@@ -21,4 +21,43 @@ static inline bool kvm_xen_hypercall_enabled(struct kvm *kvm)
                KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL;
 }
 
+
+/* 32-bit compatibility definitions */
+#include <asm/pvclock-abi.h>
+#include <asm/xen/interface.h>
+
+struct compat_arch_vcpu_info {
+       unsigned int cr2;
+       unsigned int pad[5];
+};
+
+struct compat_vcpu_info {
+        uint8_t evtchn_upcall_pending;
+        uint8_t evtchn_upcall_mask;
+        uint32_t evtchn_pending_sel;
+        struct compat_arch_vcpu_info arch;
+        struct pvclock_vcpu_time_info time;
+}; /* 64 bytes (x86) */
+
+struct compat_arch_shared_info {
+       unsigned int max_pfn;
+       unsigned int pfn_to_mfn_frame_list_list;
+       unsigned int nmi_reason;
+       unsigned int p2m_cr3;
+       unsigned int p2m_vaddr;
+       unsigned int p2m_generation;
+       uint32_t wc_sec_hi;
+};
+
+struct compat_shared_info {
+       struct compat_vcpu_info vcpu_info[MAX_VIRT_CPUS];
+       uint32_t evtchn_pending[sizeof(compat_ulong_t) * 8];
+       uint32_t evtchn_mask[sizeof(compat_ulong_t) * 8];
+       uint32_t wc_version;
+       uint32_t wc_sec;
+       uint32_t wc_nsec;
+       struct compat_arch_shared_info arch;
+
+};
+
 #endif /* __ARCH_X86_KVM_XEN_H__ */