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