1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 #ifndef _ASM_X86_VIRT_H 3 #define _ASM_X86_VIRT_H 4 5 #include <asm/reboot.h> 6 7 typedef void (cpu_emergency_virt_cb)(void); 8 9 #if IS_ENABLED(CONFIG_KVM_X86) 10 extern bool virt_rebooting; 11 12 void __init x86_virt_init(void); 13 14 #if IS_ENABLED(CONFIG_KVM_INTEL) 15 int x86_vmx_enable_virtualization_cpu(void); 16 int x86_vmx_disable_virtualization_cpu(void); 17 #endif 18 19 #if IS_ENABLED(CONFIG_KVM_AMD) 20 int x86_svm_enable_virtualization_cpu(void); 21 int x86_svm_disable_virtualization_cpu(void); 22 #endif 23 24 int x86_virt_emergency_disable_virtualization_cpu(void); 25 26 void x86_virt_register_emergency_callback(cpu_emergency_virt_cb *callback); 27 void x86_virt_unregister_emergency_callback(cpu_emergency_virt_cb *callback); 28 #else 29 static __always_inline void x86_virt_init(void) {} 30 static inline int x86_virt_emergency_disable_virtualization_cpu(void) { return -ENOENT; } 31 #endif 32 33 #endif /* _ASM_X86_VIRT_H */ 34