Commit 1ea9f2ed authored by David Woodhouse's avatar David Woodhouse
Browse files

KVM: x86/xen: add definitions of compat_shared_info, compat_vcpu_info



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: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
parent a3833b81
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -27,4 +27,40 @@ static inline bool kvm_xen_hypercall_enabled(struct kvm *kvm)
		 KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL);
}


/* 32-bit compatibility definitions, also used natively in 32-bit build */
#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[32];
	uint32_t evtchn_mask[32];
	struct pvclock_wall_clock wc;
	struct compat_arch_shared_info arch;
};

#endif /* __ARCH_X86_KVM_XEN_H__ */