/* SPDX-License-Identifier: GPL-2.0 */ #if !defined(KVM_X86_NESTED_OP) || \ !defined(KVM_X86_NESTED_OP_OPTIONAL) || \ !defined(KVM_X86_NESTED_OP_OPTIONAL_RET0) #error Missing one or more KVM_X86_NESTED_OP #defines #else /* * KVM_X86_NESTED_OP() and KVM_X86_NESTED_OP_OPTIONAL() are used to help * generate both DECLARE/DEFINE_STATIC_CALL() invocations and * "static_call_update()" calls. * * KVM_X86_NESTED_OP_OPTIONAL() can be used for those functions that can have * a NULL definition. KVM_X86_NESTED_OP_OPTIONAL_RET0() can be used likewise * to make a definition optional, but in this case the default will * be __static_call_return0. */ KVM_X86_NESTED_OP(leave_nested) KVM_X86_NESTED_OP(is_exception_vmexit) KVM_X86_NESTED_OP(check_events) KVM_X86_NESTED_OP_OPTIONAL_RET0(has_events) KVM_X86_NESTED_OP(triple_fault) KVM_X86_NESTED_OP(get_state) KVM_X86_NESTED_OP(set_state) KVM_X86_NESTED_OP(get_nested_state_pages) KVM_X86_NESTED_OP_OPTIONAL_RET0(write_log_dirty) KVM_X86_NESTED_OP(translate_nested_gpa) #ifdef CONFIG_KVM_HYPERV KVM_X86_NESTED_OP_OPTIONAL(enable_evmcs) KVM_X86_NESTED_OP_OPTIONAL_RET0(get_evmcs_version) KVM_X86_NESTED_OP(hv_inject_synthetic_vmexit_post_tlb_flush) #endif #endif #undef KVM_X86_NESTED_OP #undef KVM_X86_NESTED_OP_OPTIONAL #undef KVM_X86_NESTED_OP_OPTIONAL_RET0