Lines Matching defs:kvm_x86_ops
760 struct kvm_x86_ops { struct
761 int (*cpu_has_kvm_support)(void); /* __init */
762 int (*disabled_by_bios)(void); /* __init */
763 int (*hardware_enable)(void);
764 void (*hardware_disable)(void);
765 void (*check_processor_compatibility)(void *rtn);
766 int (*hardware_setup)(void); /* __init */
767 void (*hardware_unsetup)(void); /* __exit */
768 bool (*cpu_has_accelerated_tpr)(void);
769 bool (*cpu_has_high_real_mode_segbase)(void);
770 void (*cpuid_update)(struct kvm_vcpu *vcpu);
773 struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id);
774 void (*vcpu_free)(struct kvm_vcpu *vcpu);
775 void (*vcpu_reset)(struct kvm_vcpu *vcpu, bool init_event);
777 void (*prepare_guest_switch)(struct kvm_vcpu *vcpu);
778 void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu);
779 void (*vcpu_put)(struct kvm_vcpu *vcpu);
781 void (*update_bp_intercept)(struct kvm_vcpu *vcpu);
782 int (*get_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
783 int (*set_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
784 u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg);
785 void (*get_segment)(struct kvm_vcpu *vcpu,
787 int (*get_cpl)(struct kvm_vcpu *vcpu);
788 void (*set_segment)(struct kvm_vcpu *vcpu,
790 void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l);
791 void (*decache_cr0_guest_bits)(struct kvm_vcpu *vcpu);
792 void (*decache_cr3)(struct kvm_vcpu *vcpu);
793 void (*decache_cr4_guest_bits)(struct kvm_vcpu *vcpu);
794 void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
795 void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
796 int (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4);
797 void (*set_efer)(struct kvm_vcpu *vcpu, u64 efer);
798 void (*get_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
799 void (*set_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
800 void (*get_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
801 void (*set_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
802 u64 (*get_dr6)(struct kvm_vcpu *vcpu);
803 void (*set_dr6)(struct kvm_vcpu *vcpu, unsigned long value);
804 void (*sync_dirty_debug_regs)(struct kvm_vcpu *vcpu);
805 void (*set_dr7)(struct kvm_vcpu *vcpu, unsigned long value);
806 void (*cache_reg)(struct kvm_vcpu *vcpu, enum kvm_reg reg);
807 unsigned long (*get_rflags)(struct kvm_vcpu *vcpu);
808 void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags);
809 void (*fpu_activate)(struct kvm_vcpu *vcpu);
810 void (*fpu_deactivate)(struct kvm_vcpu *vcpu);
812 void (*tlb_flush)(struct kvm_vcpu *vcpu);
814 void (*run)(struct kvm_vcpu *vcpu);
815 int (*handle_exit)(struct kvm_vcpu *vcpu);
816 void (*skip_emulated_instruction)(struct kvm_vcpu *vcpu);
817 void (*set_interrupt_shadow)(struct kvm_vcpu *vcpu, int mask);
818 u32 (*get_interrupt_shadow)(struct kvm_vcpu *vcpu);
819 void (*patch_hypercall)(struct kvm_vcpu *vcpu,
821 void (*set_irq)(struct kvm_vcpu *vcpu);
822 void (*set_nmi)(struct kvm_vcpu *vcpu);
823 void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr,
826 void (*cancel_injection)(struct kvm_vcpu *vcpu);
827 int (*interrupt_allowed)(struct kvm_vcpu *vcpu);
828 int (*nmi_allowed)(struct kvm_vcpu *vcpu);
829 bool (*get_nmi_mask)(struct kvm_vcpu *vcpu);
830 void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked);
831 void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
832 void (*enable_irq_window)(struct kvm_vcpu *vcpu);
833 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
834 int (*cpu_uses_apicv)(struct kvm_vcpu *vcpu);
835 void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr);
836 void (*hwapic_isr_update)(struct kvm *kvm, int isr);
837 void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu);
838 void (*set_virtual_x2apic_mode)(struct kvm_vcpu *vcpu, bool set);
839 void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu, hpa_t hpa);
840 void (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
841 void (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
842 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
843 int (*get_tdp_level)(void);
844 u64 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio);
845 int (*get_lpage_level)(void);
846 bool (*rdtscp_supported)(void);
847 bool (*invpcid_supported)(void);
848 void (*adjust_tsc_offset_guest)(struct kvm_vcpu *vcpu, s64 adjustment);
850 void (*set_tdp_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
852 void (*set_supported_cpuid)(u32 func, struct kvm_cpuid_entry2 *entry);
854 bool (*has_wbinvd_exit)(void);
856 u64 (*read_tsc_offset)(struct kvm_vcpu *vcpu);
857 void (*write_tsc_offset)(struct kvm_vcpu *vcpu, u64 offset);
859 u64 (*read_l1_tsc)(struct kvm_vcpu *vcpu, u64 host_tsc);
861 void (*get_exit_info)(struct kvm_vcpu *vcpu, u64 *info1, u64 *info2);
863 int (*check_intercept)(struct kvm_vcpu *vcpu,
866 void (*handle_external_intr)(struct kvm_vcpu *vcpu);
867 bool (*mpx_supported)(void);
868 bool (*xsaves_supported)(void);
870 int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr);
872 void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
890 void (*slot_enable_log_dirty)(struct kvm *kvm,
892 void (*slot_disable_log_dirty)(struct kvm *kvm,
894 void (*flush_log_dirty)(struct kvm *kvm);
895 void (*enable_log_dirty_pt_masked)(struct kvm *kvm,
899 const struct kvm_pmu_ops *pmu_ops;
923 extern struct kvm_x86_ops *kvm_x86_ops; argument