xref: /openbmc/linux/arch/x86/include/asm/kvm-x86-ops.h (revision 9af5471b)
1*9af5471bSJason Baron /* SPDX-License-Identifier: GPL-2.0 */
2*9af5471bSJason Baron #if !defined(KVM_X86_OP) || !defined(KVM_X86_OP_NULL)
3*9af5471bSJason Baron BUILD_BUG_ON(1)
4*9af5471bSJason Baron #endif
5*9af5471bSJason Baron 
6*9af5471bSJason Baron /*
7*9af5471bSJason Baron  * KVM_X86_OP() and KVM_X86_OP_NULL() are used to help generate
8*9af5471bSJason Baron  * "static_call()"s. They are also intended for use when defining
9*9af5471bSJason Baron  * the vmx/svm kvm_x86_ops. KVM_X86_OP() can be used for those
10*9af5471bSJason Baron  * functions that follow the [svm|vmx]_func_name convention.
11*9af5471bSJason Baron  * KVM_X86_OP_NULL() can leave a NULL definition for the
12*9af5471bSJason Baron  * case where there is no definition or a function name that
13*9af5471bSJason Baron  * doesn't match the typical naming convention is supplied.
14*9af5471bSJason Baron  */
15*9af5471bSJason Baron KVM_X86_OP_NULL(hardware_enable)
16*9af5471bSJason Baron KVM_X86_OP_NULL(hardware_disable)
17*9af5471bSJason Baron KVM_X86_OP_NULL(hardware_unsetup)
18*9af5471bSJason Baron KVM_X86_OP_NULL(cpu_has_accelerated_tpr)
19*9af5471bSJason Baron KVM_X86_OP(has_emulated_msr)
20*9af5471bSJason Baron KVM_X86_OP(vcpu_after_set_cpuid)
21*9af5471bSJason Baron KVM_X86_OP(vm_init)
22*9af5471bSJason Baron KVM_X86_OP_NULL(vm_destroy)
23*9af5471bSJason Baron KVM_X86_OP(vcpu_create)
24*9af5471bSJason Baron KVM_X86_OP(vcpu_free)
25*9af5471bSJason Baron KVM_X86_OP(vcpu_reset)
26*9af5471bSJason Baron KVM_X86_OP(prepare_guest_switch)
27*9af5471bSJason Baron KVM_X86_OP(vcpu_load)
28*9af5471bSJason Baron KVM_X86_OP(vcpu_put)
29*9af5471bSJason Baron KVM_X86_OP(update_exception_bitmap)
30*9af5471bSJason Baron KVM_X86_OP(get_msr)
31*9af5471bSJason Baron KVM_X86_OP(set_msr)
32*9af5471bSJason Baron KVM_X86_OP(get_segment_base)
33*9af5471bSJason Baron KVM_X86_OP(get_segment)
34*9af5471bSJason Baron KVM_X86_OP(get_cpl)
35*9af5471bSJason Baron KVM_X86_OP(set_segment)
36*9af5471bSJason Baron KVM_X86_OP_NULL(get_cs_db_l_bits)
37*9af5471bSJason Baron KVM_X86_OP(set_cr0)
38*9af5471bSJason Baron KVM_X86_OP(is_valid_cr4)
39*9af5471bSJason Baron KVM_X86_OP(set_cr4)
40*9af5471bSJason Baron KVM_X86_OP(set_efer)
41*9af5471bSJason Baron KVM_X86_OP(get_idt)
42*9af5471bSJason Baron KVM_X86_OP(set_idt)
43*9af5471bSJason Baron KVM_X86_OP(get_gdt)
44*9af5471bSJason Baron KVM_X86_OP(set_gdt)
45*9af5471bSJason Baron KVM_X86_OP(sync_dirty_debug_regs)
46*9af5471bSJason Baron KVM_X86_OP(set_dr7)
47*9af5471bSJason Baron KVM_X86_OP(cache_reg)
48*9af5471bSJason Baron KVM_X86_OP(get_rflags)
49*9af5471bSJason Baron KVM_X86_OP(set_rflags)
50*9af5471bSJason Baron KVM_X86_OP(tlb_flush_all)
51*9af5471bSJason Baron KVM_X86_OP(tlb_flush_current)
52*9af5471bSJason Baron KVM_X86_OP_NULL(tlb_remote_flush)
53*9af5471bSJason Baron KVM_X86_OP_NULL(tlb_remote_flush_with_range)
54*9af5471bSJason Baron KVM_X86_OP(tlb_flush_gva)
55*9af5471bSJason Baron KVM_X86_OP(tlb_flush_guest)
56*9af5471bSJason Baron KVM_X86_OP(run)
57*9af5471bSJason Baron KVM_X86_OP_NULL(handle_exit)
58*9af5471bSJason Baron KVM_X86_OP_NULL(skip_emulated_instruction)
59*9af5471bSJason Baron KVM_X86_OP_NULL(update_emulated_instruction)
60*9af5471bSJason Baron KVM_X86_OP(set_interrupt_shadow)
61*9af5471bSJason Baron KVM_X86_OP(get_interrupt_shadow)
62*9af5471bSJason Baron KVM_X86_OP(patch_hypercall)
63*9af5471bSJason Baron KVM_X86_OP(set_irq)
64*9af5471bSJason Baron KVM_X86_OP(set_nmi)
65*9af5471bSJason Baron KVM_X86_OP(queue_exception)
66*9af5471bSJason Baron KVM_X86_OP(cancel_injection)
67*9af5471bSJason Baron KVM_X86_OP(interrupt_allowed)
68*9af5471bSJason Baron KVM_X86_OP(nmi_allowed)
69*9af5471bSJason Baron KVM_X86_OP(get_nmi_mask)
70*9af5471bSJason Baron KVM_X86_OP(set_nmi_mask)
71*9af5471bSJason Baron KVM_X86_OP(enable_nmi_window)
72*9af5471bSJason Baron KVM_X86_OP(enable_irq_window)
73*9af5471bSJason Baron KVM_X86_OP(update_cr8_intercept)
74*9af5471bSJason Baron KVM_X86_OP(check_apicv_inhibit_reasons)
75*9af5471bSJason Baron KVM_X86_OP_NULL(pre_update_apicv_exec_ctrl)
76*9af5471bSJason Baron KVM_X86_OP(refresh_apicv_exec_ctrl)
77*9af5471bSJason Baron KVM_X86_OP(hwapic_irr_update)
78*9af5471bSJason Baron KVM_X86_OP(hwapic_isr_update)
79*9af5471bSJason Baron KVM_X86_OP_NULL(guest_apic_has_interrupt)
80*9af5471bSJason Baron KVM_X86_OP(load_eoi_exitmap)
81*9af5471bSJason Baron KVM_X86_OP(set_virtual_apic_mode)
82*9af5471bSJason Baron KVM_X86_OP_NULL(set_apic_access_page_addr)
83*9af5471bSJason Baron KVM_X86_OP(deliver_posted_interrupt)
84*9af5471bSJason Baron KVM_X86_OP_NULL(sync_pir_to_irr)
85*9af5471bSJason Baron KVM_X86_OP(set_tss_addr)
86*9af5471bSJason Baron KVM_X86_OP(set_identity_map_addr)
87*9af5471bSJason Baron KVM_X86_OP(get_mt_mask)
88*9af5471bSJason Baron KVM_X86_OP(load_mmu_pgd)
89*9af5471bSJason Baron KVM_X86_OP_NULL(has_wbinvd_exit)
90*9af5471bSJason Baron KVM_X86_OP(write_l1_tsc_offset)
91*9af5471bSJason Baron KVM_X86_OP(get_exit_info)
92*9af5471bSJason Baron KVM_X86_OP(check_intercept)
93*9af5471bSJason Baron KVM_X86_OP(handle_exit_irqoff)
94*9af5471bSJason Baron KVM_X86_OP_NULL(request_immediate_exit)
95*9af5471bSJason Baron KVM_X86_OP(sched_in)
96*9af5471bSJason Baron KVM_X86_OP_NULL(slot_enable_log_dirty)
97*9af5471bSJason Baron KVM_X86_OP_NULL(slot_disable_log_dirty)
98*9af5471bSJason Baron KVM_X86_OP_NULL(flush_log_dirty)
99*9af5471bSJason Baron KVM_X86_OP_NULL(enable_log_dirty_pt_masked)
100*9af5471bSJason Baron KVM_X86_OP_NULL(cpu_dirty_log_size)
101*9af5471bSJason Baron KVM_X86_OP_NULL(pre_block)
102*9af5471bSJason Baron KVM_X86_OP_NULL(post_block)
103*9af5471bSJason Baron KVM_X86_OP_NULL(vcpu_blocking)
104*9af5471bSJason Baron KVM_X86_OP_NULL(vcpu_unblocking)
105*9af5471bSJason Baron KVM_X86_OP_NULL(update_pi_irte)
106*9af5471bSJason Baron KVM_X86_OP_NULL(apicv_post_state_restore)
107*9af5471bSJason Baron KVM_X86_OP_NULL(dy_apicv_has_pending_interrupt)
108*9af5471bSJason Baron KVM_X86_OP_NULL(set_hv_timer)
109*9af5471bSJason Baron KVM_X86_OP_NULL(cancel_hv_timer)
110*9af5471bSJason Baron KVM_X86_OP(setup_mce)
111*9af5471bSJason Baron KVM_X86_OP(smi_allowed)
112*9af5471bSJason Baron KVM_X86_OP(pre_enter_smm)
113*9af5471bSJason Baron KVM_X86_OP(pre_leave_smm)
114*9af5471bSJason Baron KVM_X86_OP(enable_smi_window)
115*9af5471bSJason Baron KVM_X86_OP_NULL(mem_enc_op)
116*9af5471bSJason Baron KVM_X86_OP_NULL(mem_enc_reg_region)
117*9af5471bSJason Baron KVM_X86_OP_NULL(mem_enc_unreg_region)
118*9af5471bSJason Baron KVM_X86_OP(get_msr_feature)
119*9af5471bSJason Baron KVM_X86_OP(can_emulate_instruction)
120*9af5471bSJason Baron KVM_X86_OP(apic_init_signal_blocked)
121*9af5471bSJason Baron KVM_X86_OP_NULL(enable_direct_tlbflush)
122*9af5471bSJason Baron KVM_X86_OP_NULL(migrate_timers)
123*9af5471bSJason Baron KVM_X86_OP(msr_filter_changed)
124*9af5471bSJason Baron KVM_X86_OP_NULL(complete_emulated_msr)
125*9af5471bSJason Baron 
126*9af5471bSJason Baron #undef KVM_X86_OP
127*9af5471bSJason Baron #undef KVM_X86_OP_NULL
128