KVM: x86/mmu: Don't advance iterator after restart due to yielding
[linux-2.6-block.git] / arch / x86 / include / asm / kvm-x86-ops.h
CommitLineData
9af5471b
JB
1/* 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)
38KVM_X86_OP(is_valid_cr4)
39KVM_X86_OP(set_cr4)
40KVM_X86_OP(set_efer)
41KVM_X86_OP(get_idt)
42KVM_X86_OP(set_idt)
43KVM_X86_OP(get_gdt)
44KVM_X86_OP(set_gdt)
45KVM_X86_OP(sync_dirty_debug_regs)
46KVM_X86_OP(set_dr7)
47KVM_X86_OP(cache_reg)
48KVM_X86_OP(get_rflags)
49KVM_X86_OP(set_rflags)
50KVM_X86_OP(tlb_flush_all)
51KVM_X86_OP(tlb_flush_current)
52KVM_X86_OP_NULL(tlb_remote_flush)
53KVM_X86_OP_NULL(tlb_remote_flush_with_range)
54KVM_X86_OP(tlb_flush_gva)
55KVM_X86_OP(tlb_flush_guest)
56KVM_X86_OP(run)
57KVM_X86_OP_NULL(handle_exit)
58KVM_X86_OP_NULL(skip_emulated_instruction)
59KVM_X86_OP_NULL(update_emulated_instruction)
60KVM_X86_OP(set_interrupt_shadow)
61KVM_X86_OP(get_interrupt_shadow)
62KVM_X86_OP(patch_hypercall)
63KVM_X86_OP(set_irq)
64KVM_X86_OP(set_nmi)
65KVM_X86_OP(queue_exception)
66KVM_X86_OP(cancel_injection)
67KVM_X86_OP(interrupt_allowed)
68KVM_X86_OP(nmi_allowed)
69KVM_X86_OP(get_nmi_mask)
70KVM_X86_OP(set_nmi_mask)
71KVM_X86_OP(enable_nmi_window)
72KVM_X86_OP(enable_irq_window)
73KVM_X86_OP(update_cr8_intercept)
74KVM_X86_OP(check_apicv_inhibit_reasons)
9af5471b
JB
75KVM_X86_OP(refresh_apicv_exec_ctrl)
76KVM_X86_OP(hwapic_irr_update)
77KVM_X86_OP(hwapic_isr_update)
78KVM_X86_OP_NULL(guest_apic_has_interrupt)
79KVM_X86_OP(load_eoi_exitmap)
80KVM_X86_OP(set_virtual_apic_mode)
81KVM_X86_OP_NULL(set_apic_access_page_addr)
82KVM_X86_OP(deliver_posted_interrupt)
83KVM_X86_OP_NULL(sync_pir_to_irr)
84KVM_X86_OP(set_tss_addr)
85KVM_X86_OP(set_identity_map_addr)
86KVM_X86_OP(get_mt_mask)
87KVM_X86_OP(load_mmu_pgd)
88KVM_X86_OP_NULL(has_wbinvd_exit)
307a94c7
IS
89KVM_X86_OP(get_l2_tsc_offset)
90KVM_X86_OP(get_l2_tsc_multiplier)
edcfe540 91KVM_X86_OP(write_tsc_offset)
1ab9287a 92KVM_X86_OP(write_tsc_multiplier)
9af5471b
JB
93KVM_X86_OP(get_exit_info)
94KVM_X86_OP(check_intercept)
95KVM_X86_OP(handle_exit_irqoff)
96KVM_X86_OP_NULL(request_immediate_exit)
97KVM_X86_OP(sched_in)
a85863c2 98KVM_X86_OP_NULL(update_cpu_dirty_logging)
9af5471b
JB
99KVM_X86_OP_NULL(pre_block)
100KVM_X86_OP_NULL(post_block)
101KVM_X86_OP_NULL(vcpu_blocking)
102KVM_X86_OP_NULL(vcpu_unblocking)
103KVM_X86_OP_NULL(update_pi_irte)
57ab8794 104KVM_X86_OP_NULL(start_assignment)
9af5471b
JB
105KVM_X86_OP_NULL(apicv_post_state_restore)
106KVM_X86_OP_NULL(dy_apicv_has_pending_interrupt)
107KVM_X86_OP_NULL(set_hv_timer)
108KVM_X86_OP_NULL(cancel_hv_timer)
109KVM_X86_OP(setup_mce)
110KVM_X86_OP(smi_allowed)
ecc513e5
SC
111KVM_X86_OP(enter_smm)
112KVM_X86_OP(leave_smm)
9af5471b
JB
113KVM_X86_OP(enable_smi_window)
114KVM_X86_OP_NULL(mem_enc_op)
115KVM_X86_OP_NULL(mem_enc_reg_region)
116KVM_X86_OP_NULL(mem_enc_unreg_region)
117KVM_X86_OP(get_msr_feature)
118KVM_X86_OP(can_emulate_instruction)
119KVM_X86_OP(apic_init_signal_blocked)
120KVM_X86_OP_NULL(enable_direct_tlbflush)
121KVM_X86_OP_NULL(migrate_timers)
122KVM_X86_OP(msr_filter_changed)
123KVM_X86_OP_NULL(complete_emulated_msr)
124
125#undef KVM_X86_OP
126#undef KVM_X86_OP_NULL