linux/arch/x86/include/asm/kvm-x86-ops.h

/* SPDX-License-Identifier: GPL-2.0 */
#if !defined(KVM_X86_OP) || !defined(KVM_X86_OP_OPTIONAL)
BUILD_BUG_ON(1)
#endif

/*
 * KVM_X86_OP() and KVM_X86_OP_OPTIONAL() are used to help generate
 * both DECLARE/DEFINE_STATIC_CALL() invocations and
 * "static_call_update()" calls.
 *
 * KVM_X86_OP_OPTIONAL() can be used for those functions that can have
 * a NULL definition.  KVM_X86_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_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL(vm_destroy)
KVM_X86_OP_OPTIONAL_RET0(vcpu_precreate)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL(post_set_cr3)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
#if IS_ENABLED(CONFIG_HYPERV)
KVM_X86_OP_OPTIONAL(flush_remote_tlbs)
KVM_X86_OP_OPTIONAL(flush_remote_tlbs_range)
#endif
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL(update_emulated_instruction)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL_RET0(is_vnmi_pending)
KVM_X86_OP_OPTIONAL_RET0(set_vnmi_pending)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL(update_cr8_intercept)
KVM_X86_OP
KVM_X86_OP_OPTIONAL(hwapic_irr_update)
KVM_X86_OP_OPTIONAL(hwapic_isr_update)
KVM_X86_OP_OPTIONAL(load_eoi_exitmap)
KVM_X86_OP_OPTIONAL(set_virtual_apic_mode)
KVM_X86_OP_OPTIONAL(set_apic_access_page_addr)
KVM_X86_OP
KVM_X86_OP_OPTIONAL(sync_pir_to_irr)
KVM_X86_OP_OPTIONAL_RET0(set_tss_addr)
KVM_X86_OP_OPTIONAL_RET0(set_identity_map_addr)
KVM_X86_OP_OPTIONAL_RET0(get_mt_mask)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL(update_cpu_dirty_logging)
KVM_X86_OP_OPTIONAL(vcpu_blocking)
KVM_X86_OP_OPTIONAL(vcpu_unblocking)
KVM_X86_OP_OPTIONAL(pi_update_irte)
KVM_X86_OP_OPTIONAL(pi_start_assignment)
KVM_X86_OP_OPTIONAL(apicv_pre_state_restore)
KVM_X86_OP_OPTIONAL(apicv_post_state_restore)
KVM_X86_OP_OPTIONAL_RET0(dy_apicv_has_pending_interrupt)
KVM_X86_OP_OPTIONAL(set_hv_timer)
KVM_X86_OP_OPTIONAL(cancel_hv_timer)
KVM_X86_OP
#ifdef CONFIG_KVM_SMM
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
#endif
KVM_X86_OP_OPTIONAL(dev_get_attr)
KVM_X86_OP_OPTIONAL(mem_enc_ioctl)
KVM_X86_OP_OPTIONAL(mem_enc_register_region)
KVM_X86_OP_OPTIONAL(mem_enc_unregister_region)
KVM_X86_OP_OPTIONAL(vm_copy_enc_context_from)
KVM_X86_OP_OPTIONAL(vm_move_enc_context_from)
KVM_X86_OP_OPTIONAL(guest_memory_reclaimed)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL(enable_l2_tlb_flush)
KVM_X86_OP_OPTIONAL(migrate_timers)
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP
KVM_X86_OP_OPTIONAL_RET0(vcpu_get_apicv_inhibit_reasons);
KVM_X86_OP_OPTIONAL(get_untagged_addr)
KVM_X86_OP_OPTIONAL(alloc_apic_backing_page)
KVM_X86_OP_OPTIONAL_RET0(gmem_prepare)
KVM_X86_OP_OPTIONAL_RET0(private_max_mapping_level)
KVM_X86_OP_OPTIONAL(gmem_invalidate)

#undef KVM_X86_OP
#undef KVM_X86_OP_OPTIONAL
#undef KVM_X86_OP_OPTIONAL_RET0