xref: /openbmc/linux/arch/x86/include/asm/kvm-x86-ops.h (revision abb6d479)
19af5471bSJason Baron /* SPDX-License-Identifier: GPL-2.0 */
2e4fc23baSPaolo Bonzini #if !defined(KVM_X86_OP) || !defined(KVM_X86_OP_OPTIONAL)
39af5471bSJason Baron BUILD_BUG_ON(1)
49af5471bSJason Baron #endif
59af5471bSJason Baron 
69af5471bSJason Baron /*
7e4fc23baSPaolo Bonzini  * KVM_X86_OP() and KVM_X86_OP_OPTIONAL() are used to help generate
8e4fc23baSPaolo Bonzini  * both DECLARE/DEFINE_STATIC_CALL() invocations and
9e4fc23baSPaolo Bonzini  * "static_call_update()" calls.
10e4fc23baSPaolo Bonzini  *
11e4fc23baSPaolo Bonzini  * KVM_X86_OP_OPTIONAL() can be used for those functions that can have
12e4fc23baSPaolo Bonzini  * a NULL definition, for example if "static_call_cond()" will be used
13e4fc23baSPaolo Bonzini  * at the call sites.
149af5471bSJason Baron  */
15e4fc23baSPaolo Bonzini KVM_X86_OP(hardware_enable)
16e4fc23baSPaolo Bonzini KVM_X86_OP(hardware_disable)
17e4fc23baSPaolo Bonzini KVM_X86_OP(hardware_unsetup)
189af5471bSJason Baron KVM_X86_OP(has_emulated_msr)
199af5471bSJason Baron KVM_X86_OP(vcpu_after_set_cpuid)
209af5471bSJason Baron KVM_X86_OP(vm_init)
21e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(vm_destroy)
229af5471bSJason Baron KVM_X86_OP(vcpu_create)
239af5471bSJason Baron KVM_X86_OP(vcpu_free)
249af5471bSJason Baron KVM_X86_OP(vcpu_reset)
25e27bc044SSean Christopherson KVM_X86_OP(prepare_switch_to_guest)
269af5471bSJason Baron KVM_X86_OP(vcpu_load)
279af5471bSJason Baron KVM_X86_OP(vcpu_put)
289af5471bSJason Baron KVM_X86_OP(update_exception_bitmap)
299af5471bSJason Baron KVM_X86_OP(get_msr)
309af5471bSJason Baron KVM_X86_OP(set_msr)
319af5471bSJason Baron KVM_X86_OP(get_segment_base)
329af5471bSJason Baron KVM_X86_OP(get_segment)
339af5471bSJason Baron KVM_X86_OP(get_cpl)
349af5471bSJason Baron KVM_X86_OP(set_segment)
35e4fc23baSPaolo Bonzini KVM_X86_OP(get_cs_db_l_bits)
369af5471bSJason Baron KVM_X86_OP(set_cr0)
37e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(post_set_cr3)
389af5471bSJason Baron KVM_X86_OP(is_valid_cr4)
399af5471bSJason Baron KVM_X86_OP(set_cr4)
409af5471bSJason Baron KVM_X86_OP(set_efer)
419af5471bSJason Baron KVM_X86_OP(get_idt)
429af5471bSJason Baron KVM_X86_OP(set_idt)
439af5471bSJason Baron KVM_X86_OP(get_gdt)
449af5471bSJason Baron KVM_X86_OP(set_gdt)
459af5471bSJason Baron KVM_X86_OP(sync_dirty_debug_regs)
469af5471bSJason Baron KVM_X86_OP(set_dr7)
479af5471bSJason Baron KVM_X86_OP(cache_reg)
489af5471bSJason Baron KVM_X86_OP(get_rflags)
499af5471bSJason Baron KVM_X86_OP(set_rflags)
50c5063551SMarc Orr KVM_X86_OP(get_if_flag)
51e27bc044SSean Christopherson KVM_X86_OP(flush_tlb_all)
52e27bc044SSean Christopherson KVM_X86_OP(flush_tlb_current)
53e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(tlb_remote_flush)
54e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(tlb_remote_flush_with_range)
55e27bc044SSean Christopherson KVM_X86_OP(flush_tlb_gva)
56e27bc044SSean Christopherson KVM_X86_OP(flush_tlb_guest)
57fc4fad79SSean Christopherson KVM_X86_OP(vcpu_pre_run)
58e27bc044SSean Christopherson KVM_X86_OP(vcpu_run)
59e4fc23baSPaolo Bonzini KVM_X86_OP(handle_exit)
60e4fc23baSPaolo Bonzini KVM_X86_OP(skip_emulated_instruction)
61e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(update_emulated_instruction)
629af5471bSJason Baron KVM_X86_OP(set_interrupt_shadow)
639af5471bSJason Baron KVM_X86_OP(get_interrupt_shadow)
649af5471bSJason Baron KVM_X86_OP(patch_hypercall)
65e27bc044SSean Christopherson KVM_X86_OP(inject_irq)
66e27bc044SSean Christopherson KVM_X86_OP(inject_nmi)
679af5471bSJason Baron KVM_X86_OP(queue_exception)
689af5471bSJason Baron KVM_X86_OP(cancel_injection)
699af5471bSJason Baron KVM_X86_OP(interrupt_allowed)
709af5471bSJason Baron KVM_X86_OP(nmi_allowed)
719af5471bSJason Baron KVM_X86_OP(get_nmi_mask)
729af5471bSJason Baron KVM_X86_OP(set_nmi_mask)
739af5471bSJason Baron KVM_X86_OP(enable_nmi_window)
749af5471bSJason Baron KVM_X86_OP(enable_irq_window)
75e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(update_cr8_intercept)
769af5471bSJason Baron KVM_X86_OP(check_apicv_inhibit_reasons)
779af5471bSJason Baron KVM_X86_OP(refresh_apicv_exec_ctrl)
78*abb6d479SPaolo Bonzini KVM_X86_OP_OPTIONAL(hwapic_irr_update)
79*abb6d479SPaolo Bonzini KVM_X86_OP_OPTIONAL(hwapic_isr_update)
80e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(guest_apic_has_interrupt)
81*abb6d479SPaolo Bonzini KVM_X86_OP_OPTIONAL(load_eoi_exitmap)
82*abb6d479SPaolo Bonzini KVM_X86_OP_OPTIONAL(set_virtual_apic_mode)
83e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(set_apic_access_page_addr)
8457dfd7b5SSean Christopherson KVM_X86_OP(deliver_interrupt)
85e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(sync_pir_to_irr)
869af5471bSJason Baron KVM_X86_OP(set_tss_addr)
879af5471bSJason Baron KVM_X86_OP(set_identity_map_addr)
889af5471bSJason Baron KVM_X86_OP(get_mt_mask)
899af5471bSJason Baron KVM_X86_OP(load_mmu_pgd)
90e4fc23baSPaolo Bonzini KVM_X86_OP(has_wbinvd_exit)
91307a94c7SIlias Stamatis KVM_X86_OP(get_l2_tsc_offset)
92307a94c7SIlias Stamatis KVM_X86_OP(get_l2_tsc_multiplier)
93edcfe540SIlias Stamatis KVM_X86_OP(write_tsc_offset)
941ab9287aSIlias Stamatis KVM_X86_OP(write_tsc_multiplier)
959af5471bSJason Baron KVM_X86_OP(get_exit_info)
969af5471bSJason Baron KVM_X86_OP(check_intercept)
979af5471bSJason Baron KVM_X86_OP(handle_exit_irqoff)
98e4fc23baSPaolo Bonzini KVM_X86_OP(request_immediate_exit)
999af5471bSJason Baron KVM_X86_OP(sched_in)
100e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(update_cpu_dirty_logging)
101e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(vcpu_blocking)
102e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(vcpu_unblocking)
103e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(pi_update_irte)
104e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(pi_start_assignment)
105*abb6d479SPaolo Bonzini KVM_X86_OP_OPTIONAL(apicv_post_state_restore)
106e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(dy_apicv_has_pending_interrupt)
107e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(set_hv_timer)
108e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(cancel_hv_timer)
1099af5471bSJason Baron KVM_X86_OP(setup_mce)
1109af5471bSJason Baron KVM_X86_OP(smi_allowed)
111ecc513e5SSean Christopherson KVM_X86_OP(enter_smm)
112ecc513e5SSean Christopherson KVM_X86_OP(leave_smm)
1139af5471bSJason Baron KVM_X86_OP(enable_smi_window)
114e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(mem_enc_ioctl)
115e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(mem_enc_register_region)
116e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(mem_enc_unregister_region)
117e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(vm_copy_enc_context_from)
118e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(vm_move_enc_context_from)
1199af5471bSJason Baron KVM_X86_OP(get_msr_feature)
1209af5471bSJason Baron KVM_X86_OP(can_emulate_instruction)
1219af5471bSJason Baron KVM_X86_OP(apic_init_signal_blocked)
122e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(enable_direct_tlbflush)
123e4fc23baSPaolo Bonzini KVM_X86_OP_OPTIONAL(migrate_timers)
1249af5471bSJason Baron KVM_X86_OP(msr_filter_changed)
125e4fc23baSPaolo Bonzini KVM_X86_OP(complete_emulated_msr)
126a0941a64SSean Christopherson KVM_X86_OP(vcpu_deliver_sipi_vector)
1279af5471bSJason Baron 
1289af5471bSJason Baron #undef KVM_X86_OP
129e4fc23baSPaolo Bonzini #undef KVM_X86_OP_OPTIONAL
130