/* SPDX-License-Identifier: GPL-2.0-only */ /* * Common Hyper-V on KVM and KVM on Hyper-V definitions (SVM). */ #ifndef __ARCH_X86_KVM_SVM_HYPERV_H__ #define __ARCH_X86_KVM_SVM_HYPERV_H__ #include #include "../hyperv.h" /* * Hyper-V uses the software reserved 32 bytes in VMCB * control area to expose SVM enlightenments to guests. */ struct hv_enlightenments { struct __packed hv_enlightenments_control { u32 nested_flush_hypercall:1; u32 msr_bitmap:1; u32 enlightened_npt_tlb: 1; u32 reserved:29; } __packed hv_enlightenments_control; u32 hv_vp_id; u64 hv_vm_id; u64 partition_assist_page; u64 reserved; } __packed; /* * Hyper-V uses the software reserved clean bit in VMCB */ #define VMCB_HV_NESTED_ENLIGHTENMENTS VMCB_SW #endif /* __ARCH_X86_KVM_SVM_HYPERV_H__ */