xref: /openbmc/linux/arch/x86/include/asm/kvm-x86-ops.h (revision fc4fad79)
19af5471bSJason Baron /* SPDX-License-Identifier: GPL-2.0 */
29af5471bSJason Baron #if !defined(KVM_X86_OP) || !defined(KVM_X86_OP_NULL)
39af5471bSJason Baron BUILD_BUG_ON(1)
49af5471bSJason Baron #endif
59af5471bSJason Baron 
69af5471bSJason Baron /*
79af5471bSJason Baron  * KVM_X86_OP() and KVM_X86_OP_NULL() are used to help generate
89af5471bSJason Baron  * "static_call()"s. They are also intended for use when defining
99af5471bSJason Baron  * the vmx/svm kvm_x86_ops. KVM_X86_OP() can be used for those
109af5471bSJason Baron  * functions that follow the [svm|vmx]_func_name convention.
119af5471bSJason Baron  * KVM_X86_OP_NULL() can leave a NULL definition for the
129af5471bSJason Baron  * case where there is no definition or a function name that
139af5471bSJason Baron  * doesn't match the typical naming convention is supplied.
149af5471bSJason Baron  */
159af5471bSJason Baron KVM_X86_OP_NULL(hardware_enable)
169af5471bSJason Baron KVM_X86_OP_NULL(hardware_disable)
179af5471bSJason Baron KVM_X86_OP_NULL(hardware_unsetup)
189af5471bSJason Baron KVM_X86_OP_NULL(cpu_has_accelerated_tpr)
199af5471bSJason Baron KVM_X86_OP(has_emulated_msr)
209af5471bSJason Baron KVM_X86_OP(vcpu_after_set_cpuid)
219af5471bSJason Baron KVM_X86_OP(vm_init)
229af5471bSJason Baron KVM_X86_OP_NULL(vm_destroy)
239af5471bSJason Baron KVM_X86_OP(vcpu_create)
249af5471bSJason Baron KVM_X86_OP(vcpu_free)
259af5471bSJason Baron KVM_X86_OP(vcpu_reset)
269af5471bSJason Baron KVM_X86_OP(prepare_guest_switch)
279af5471bSJason Baron KVM_X86_OP(vcpu_load)
289af5471bSJason Baron KVM_X86_OP(vcpu_put)
299af5471bSJason Baron KVM_X86_OP(update_exception_bitmap)
309af5471bSJason Baron KVM_X86_OP(get_msr)
319af5471bSJason Baron KVM_X86_OP(set_msr)
329af5471bSJason Baron KVM_X86_OP(get_segment_base)
339af5471bSJason Baron KVM_X86_OP(get_segment)
349af5471bSJason Baron KVM_X86_OP(get_cpl)
359af5471bSJason Baron KVM_X86_OP(set_segment)
369af5471bSJason Baron KVM_X86_OP_NULL(get_cs_db_l_bits)
379af5471bSJason Baron KVM_X86_OP(set_cr0)
38405329fcSMichael Roth KVM_X86_OP_NULL(post_set_cr3)
399af5471bSJason Baron KVM_X86_OP(is_valid_cr4)
409af5471bSJason Baron KVM_X86_OP(set_cr4)
419af5471bSJason Baron KVM_X86_OP(set_efer)
429af5471bSJason Baron KVM_X86_OP(get_idt)
439af5471bSJason Baron KVM_X86_OP(set_idt)
449af5471bSJason Baron KVM_X86_OP(get_gdt)
459af5471bSJason Baron KVM_X86_OP(set_gdt)
469af5471bSJason Baron KVM_X86_OP(sync_dirty_debug_regs)
479af5471bSJason Baron KVM_X86_OP(set_dr7)
489af5471bSJason Baron KVM_X86_OP(cache_reg)
499af5471bSJason Baron KVM_X86_OP(get_rflags)
509af5471bSJason Baron KVM_X86_OP(set_rflags)
51c5063551SMarc Orr KVM_X86_OP(get_if_flag)
529af5471bSJason Baron KVM_X86_OP(tlb_flush_all)
539af5471bSJason Baron KVM_X86_OP(tlb_flush_current)
549af5471bSJason Baron KVM_X86_OP_NULL(tlb_remote_flush)
559af5471bSJason Baron KVM_X86_OP_NULL(tlb_remote_flush_with_range)
569af5471bSJason Baron KVM_X86_OP(tlb_flush_gva)
579af5471bSJason Baron KVM_X86_OP(tlb_flush_guest)
58*fc4fad79SSean Christopherson KVM_X86_OP(vcpu_pre_run)
599af5471bSJason Baron KVM_X86_OP(run)
609af5471bSJason Baron KVM_X86_OP_NULL(handle_exit)
619af5471bSJason Baron KVM_X86_OP_NULL(skip_emulated_instruction)
629af5471bSJason Baron KVM_X86_OP_NULL(update_emulated_instruction)
639af5471bSJason Baron KVM_X86_OP(set_interrupt_shadow)
649af5471bSJason Baron KVM_X86_OP(get_interrupt_shadow)
659af5471bSJason Baron KVM_X86_OP(patch_hypercall)
669af5471bSJason Baron KVM_X86_OP(set_irq)
679af5471bSJason Baron KVM_X86_OP(set_nmi)
689af5471bSJason Baron KVM_X86_OP(queue_exception)
699af5471bSJason Baron KVM_X86_OP(cancel_injection)
709af5471bSJason Baron KVM_X86_OP(interrupt_allowed)
719af5471bSJason Baron KVM_X86_OP(nmi_allowed)
729af5471bSJason Baron KVM_X86_OP(get_nmi_mask)
739af5471bSJason Baron KVM_X86_OP(set_nmi_mask)
749af5471bSJason Baron KVM_X86_OP(enable_nmi_window)
759af5471bSJason Baron KVM_X86_OP(enable_irq_window)
769af5471bSJason Baron KVM_X86_OP(update_cr8_intercept)
779af5471bSJason Baron KVM_X86_OP(check_apicv_inhibit_reasons)
789af5471bSJason Baron KVM_X86_OP(refresh_apicv_exec_ctrl)
799af5471bSJason Baron KVM_X86_OP(hwapic_irr_update)
809af5471bSJason Baron KVM_X86_OP(hwapic_isr_update)
819af5471bSJason Baron KVM_X86_OP_NULL(guest_apic_has_interrupt)
829af5471bSJason Baron KVM_X86_OP(load_eoi_exitmap)
839af5471bSJason Baron KVM_X86_OP(set_virtual_apic_mode)
849af5471bSJason Baron KVM_X86_OP_NULL(set_apic_access_page_addr)
859af5471bSJason Baron KVM_X86_OP(deliver_posted_interrupt)
869af5471bSJason Baron KVM_X86_OP_NULL(sync_pir_to_irr)
879af5471bSJason Baron KVM_X86_OP(set_tss_addr)
889af5471bSJason Baron KVM_X86_OP(set_identity_map_addr)
899af5471bSJason Baron KVM_X86_OP(get_mt_mask)
909af5471bSJason Baron KVM_X86_OP(load_mmu_pgd)
919af5471bSJason Baron KVM_X86_OP_NULL(has_wbinvd_exit)
92307a94c7SIlias Stamatis KVM_X86_OP(get_l2_tsc_offset)
93307a94c7SIlias Stamatis KVM_X86_OP(get_l2_tsc_multiplier)
94edcfe540SIlias Stamatis KVM_X86_OP(write_tsc_offset)
951ab9287aSIlias Stamatis KVM_X86_OP(write_tsc_multiplier)
969af5471bSJason Baron KVM_X86_OP(get_exit_info)
979af5471bSJason Baron KVM_X86_OP(check_intercept)
989af5471bSJason Baron KVM_X86_OP(handle_exit_irqoff)
999af5471bSJason Baron KVM_X86_OP_NULL(request_immediate_exit)
1009af5471bSJason Baron KVM_X86_OP(sched_in)
101a85863c2SMakarand Sonare KVM_X86_OP_NULL(update_cpu_dirty_logging)
1029af5471bSJason Baron KVM_X86_OP_NULL(pre_block)
1039af5471bSJason Baron KVM_X86_OP_NULL(post_block)
1049af5471bSJason Baron KVM_X86_OP_NULL(vcpu_blocking)
1059af5471bSJason Baron KVM_X86_OP_NULL(vcpu_unblocking)
1069af5471bSJason Baron KVM_X86_OP_NULL(update_pi_irte)
10757ab8794SMarcelo Tosatti KVM_X86_OP_NULL(start_assignment)
1089af5471bSJason Baron KVM_X86_OP_NULL(apicv_post_state_restore)
1099af5471bSJason Baron KVM_X86_OP_NULL(dy_apicv_has_pending_interrupt)
1109af5471bSJason Baron KVM_X86_OP_NULL(set_hv_timer)
1119af5471bSJason Baron KVM_X86_OP_NULL(cancel_hv_timer)
1129af5471bSJason Baron KVM_X86_OP(setup_mce)
1139af5471bSJason Baron KVM_X86_OP(smi_allowed)
114ecc513e5SSean Christopherson KVM_X86_OP(enter_smm)
115ecc513e5SSean Christopherson KVM_X86_OP(leave_smm)
1169af5471bSJason Baron KVM_X86_OP(enable_smi_window)
1179af5471bSJason Baron KVM_X86_OP_NULL(mem_enc_op)
1189af5471bSJason Baron KVM_X86_OP_NULL(mem_enc_reg_region)
1199af5471bSJason Baron KVM_X86_OP_NULL(mem_enc_unreg_region)
1209af5471bSJason Baron KVM_X86_OP(get_msr_feature)
1219af5471bSJason Baron KVM_X86_OP(can_emulate_instruction)
1229af5471bSJason Baron KVM_X86_OP(apic_init_signal_blocked)
1239af5471bSJason Baron KVM_X86_OP_NULL(enable_direct_tlbflush)
1249af5471bSJason Baron KVM_X86_OP_NULL(migrate_timers)
1259af5471bSJason Baron KVM_X86_OP(msr_filter_changed)
1269af5471bSJason Baron KVM_X86_OP_NULL(complete_emulated_msr)
1279af5471bSJason Baron 
1289af5471bSJason Baron #undef KVM_X86_OP
1299af5471bSJason Baron #undef KVM_X86_OP_NULL
130