blob: 631d5040b31ed3d700d0cbeb2bcee973ca5877a4 [file] [log] [blame]
Jason Baron9af54712021-01-14 22:27:55 -05001/* SPDX-License-Identifier: GPL-2.0 */
2#if !defined(KVM_X86_OP) || !defined(KVM_X86_OP_NULL)
3BUILD_BUG_ON(1)
4#endif
5
6/*
7 * KVM_X86_OP() and KVM_X86_OP_NULL() are used to help generate
8 * "static_call()"s. They are also intended for use when defining
9 * the vmx/svm kvm_x86_ops. KVM_X86_OP() can be used for those
10 * functions that follow the [svm|vmx]_func_name convention.
11 * KVM_X86_OP_NULL() can leave a NULL definition for the
12 * case where there is no definition or a function name that
13 * doesn't match the typical naming convention is supplied.
14 */
15KVM_X86_OP_NULL(hardware_enable)
16KVM_X86_OP_NULL(hardware_disable)
17KVM_X86_OP_NULL(hardware_unsetup)
18KVM_X86_OP_NULL(cpu_has_accelerated_tpr)
19KVM_X86_OP(has_emulated_msr)
20KVM_X86_OP(vcpu_after_set_cpuid)
21KVM_X86_OP(vm_init)
22KVM_X86_OP_NULL(vm_destroy)
23KVM_X86_OP(vcpu_create)
24KVM_X86_OP(vcpu_free)
25KVM_X86_OP(vcpu_reset)
26KVM_X86_OP(prepare_guest_switch)
27KVM_X86_OP(vcpu_load)
28KVM_X86_OP(vcpu_put)
29KVM_X86_OP(update_exception_bitmap)
30KVM_X86_OP(get_msr)
31KVM_X86_OP(set_msr)
32KVM_X86_OP(get_segment_base)
33KVM_X86_OP(get_segment)
34KVM_X86_OP(get_cpl)
35KVM_X86_OP(set_segment)
36KVM_X86_OP_NULL(get_cs_db_l_bits)
37KVM_X86_OP(set_cr0)
Michael Roth405329f2021-12-16 11:13:54 -060038KVM_X86_OP_NULL(post_set_cr3)
Jason Baron9af54712021-01-14 22:27:55 -050039KVM_X86_OP(is_valid_cr4)
40KVM_X86_OP(set_cr4)
41KVM_X86_OP(set_efer)
42KVM_X86_OP(get_idt)
43KVM_X86_OP(set_idt)
44KVM_X86_OP(get_gdt)
45KVM_X86_OP(set_gdt)
46KVM_X86_OP(sync_dirty_debug_regs)
47KVM_X86_OP(set_dr7)
48KVM_X86_OP(cache_reg)
49KVM_X86_OP(get_rflags)
50KVM_X86_OP(set_rflags)
Marc Orrc5063552021-12-09 07:52:57 -080051KVM_X86_OP(get_if_flag)
Jason Baron9af54712021-01-14 22:27:55 -050052KVM_X86_OP(tlb_flush_all)
53KVM_X86_OP(tlb_flush_current)
54KVM_X86_OP_NULL(tlb_remote_flush)
55KVM_X86_OP_NULL(tlb_remote_flush_with_range)
56KVM_X86_OP(tlb_flush_gva)
57KVM_X86_OP(tlb_flush_guest)
Sean Christophersonfc4fad72021-12-28 23:24:36 +000058KVM_X86_OP(vcpu_pre_run)
Jason Baron9af54712021-01-14 22:27:55 -050059KVM_X86_OP(run)
60KVM_X86_OP_NULL(handle_exit)
61KVM_X86_OP_NULL(skip_emulated_instruction)
62KVM_X86_OP_NULL(update_emulated_instruction)
63KVM_X86_OP(set_interrupt_shadow)
64KVM_X86_OP(get_interrupt_shadow)
65KVM_X86_OP(patch_hypercall)
66KVM_X86_OP(set_irq)
67KVM_X86_OP(set_nmi)
68KVM_X86_OP(queue_exception)
69KVM_X86_OP(cancel_injection)
70KVM_X86_OP(interrupt_allowed)
71KVM_X86_OP(nmi_allowed)
72KVM_X86_OP(get_nmi_mask)
73KVM_X86_OP(set_nmi_mask)
74KVM_X86_OP(enable_nmi_window)
75KVM_X86_OP(enable_irq_window)
76KVM_X86_OP(update_cr8_intercept)
77KVM_X86_OP(check_apicv_inhibit_reasons)
Jason Baron9af54712021-01-14 22:27:55 -050078KVM_X86_OP(refresh_apicv_exec_ctrl)
79KVM_X86_OP(hwapic_irr_update)
80KVM_X86_OP(hwapic_isr_update)
81KVM_X86_OP_NULL(guest_apic_has_interrupt)
82KVM_X86_OP(load_eoi_exitmap)
83KVM_X86_OP(set_virtual_apic_mode)
84KVM_X86_OP_NULL(set_apic_access_page_addr)
85KVM_X86_OP(deliver_posted_interrupt)
86KVM_X86_OP_NULL(sync_pir_to_irr)
87KVM_X86_OP(set_tss_addr)
88KVM_X86_OP(set_identity_map_addr)
89KVM_X86_OP(get_mt_mask)
90KVM_X86_OP(load_mmu_pgd)
91KVM_X86_OP_NULL(has_wbinvd_exit)
Ilias Stamatis307a94c2021-05-26 19:44:13 +010092KVM_X86_OP(get_l2_tsc_offset)
93KVM_X86_OP(get_l2_tsc_multiplier)
Ilias Stamatisedcfe542021-05-26 19:44:15 +010094KVM_X86_OP(write_tsc_offset)
Ilias Stamatis1ab92872021-06-07 11:54:38 +010095KVM_X86_OP(write_tsc_multiplier)
Jason Baron9af54712021-01-14 22:27:55 -050096KVM_X86_OP(get_exit_info)
97KVM_X86_OP(check_intercept)
98KVM_X86_OP(handle_exit_irqoff)
99KVM_X86_OP_NULL(request_immediate_exit)
100KVM_X86_OP(sched_in)
Makarand Sonarea85863c2021-02-12 16:50:12 -0800101KVM_X86_OP_NULL(update_cpu_dirty_logging)
Jason Baron9af54712021-01-14 22:27:55 -0500102KVM_X86_OP_NULL(vcpu_blocking)
103KVM_X86_OP_NULL(vcpu_unblocking)
104KVM_X86_OP_NULL(update_pi_irte)
Marcelo Tosatti57ab8792021-05-25 10:41:16 -0300105KVM_X86_OP_NULL(start_assignment)
Jason Baron9af54712021-01-14 22:27:55 -0500106KVM_X86_OP_NULL(apicv_post_state_restore)
107KVM_X86_OP_NULL(dy_apicv_has_pending_interrupt)
108KVM_X86_OP_NULL(set_hv_timer)
109KVM_X86_OP_NULL(cancel_hv_timer)
110KVM_X86_OP(setup_mce)
111KVM_X86_OP(smi_allowed)
Sean Christophersonecc513e2021-06-09 11:56:19 -0700112KVM_X86_OP(enter_smm)
113KVM_X86_OP(leave_smm)
Jason Baron9af54712021-01-14 22:27:55 -0500114KVM_X86_OP(enable_smi_window)
115KVM_X86_OP_NULL(mem_enc_op)
116KVM_X86_OP_NULL(mem_enc_reg_region)
117KVM_X86_OP_NULL(mem_enc_unreg_region)
118KVM_X86_OP(get_msr_feature)
119KVM_X86_OP(can_emulate_instruction)
120KVM_X86_OP(apic_init_signal_blocked)
121KVM_X86_OP_NULL(enable_direct_tlbflush)
122KVM_X86_OP_NULL(migrate_timers)
123KVM_X86_OP(msr_filter_changed)
124KVM_X86_OP_NULL(complete_emulated_msr)
125
126#undef KVM_X86_OP
127#undef KVM_X86_OP_NULL