Lines Matching defs:kvm_x86_ops
700 struct kvm_x86_ops { struct
701 int (*cpu_has_kvm_support)(void); /* __init */
702 int (*disabled_by_bios)(void); /* __init */
703 int (*hardware_enable)(void);
704 void (*hardware_disable)(void);
705 void (*check_processor_compatibility)(void *rtn);
706 int (*hardware_setup)(void); /* __init */
707 void (*hardware_unsetup)(void); /* __exit */
708 bool (*cpu_has_accelerated_tpr)(void);
709 void (*cpuid_update)(struct kvm_vcpu *vcpu);
712 struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id);
713 void (*vcpu_free)(struct kvm_vcpu *vcpu);
714 void (*vcpu_reset)(struct kvm_vcpu *vcpu);
716 void (*prepare_guest_switch)(struct kvm_vcpu *vcpu);
717 void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu);
718 void (*vcpu_put)(struct kvm_vcpu *vcpu);
720 void (*update_db_bp_intercept)(struct kvm_vcpu *vcpu);
721 int (*get_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata);
722 int (*set_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
723 u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg);
724 void (*get_segment)(struct kvm_vcpu *vcpu,
726 int (*get_cpl)(struct kvm_vcpu *vcpu);
727 void (*set_segment)(struct kvm_vcpu *vcpu,
729 void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l);
730 void (*decache_cr0_guest_bits)(struct kvm_vcpu *vcpu);
731 void (*decache_cr3)(struct kvm_vcpu *vcpu);
732 void (*decache_cr4_guest_bits)(struct kvm_vcpu *vcpu);
733 void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
734 void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
735 int (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4);
736 void (*set_efer)(struct kvm_vcpu *vcpu, u64 efer);
737 void (*get_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
738 void (*set_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
739 void (*get_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
740 void (*set_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
741 u64 (*get_dr6)(struct kvm_vcpu *vcpu);
742 void (*set_dr6)(struct kvm_vcpu *vcpu, unsigned long value);
743 void (*sync_dirty_debug_regs)(struct kvm_vcpu *vcpu);
744 void (*set_dr7)(struct kvm_vcpu *vcpu, unsigned long value);
745 void (*cache_reg)(struct kvm_vcpu *vcpu, enum kvm_reg reg);
746 unsigned long (*get_rflags)(struct kvm_vcpu *vcpu);
747 void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags);
748 void (*fpu_activate)(struct kvm_vcpu *vcpu);
749 void (*fpu_deactivate)(struct kvm_vcpu *vcpu);
751 void (*tlb_flush)(struct kvm_vcpu *vcpu);
753 void (*run)(struct kvm_vcpu *vcpu);
754 int (*handle_exit)(struct kvm_vcpu *vcpu);
755 void (*skip_emulated_instruction)(struct kvm_vcpu *vcpu);
756 void (*set_interrupt_shadow)(struct kvm_vcpu *vcpu, int mask);
757 u32 (*get_interrupt_shadow)(struct kvm_vcpu *vcpu);
758 void (*patch_hypercall)(struct kvm_vcpu *vcpu,
760 void (*set_irq)(struct kvm_vcpu *vcpu);
761 void (*set_nmi)(struct kvm_vcpu *vcpu);
762 void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr,
765 void (*cancel_injection)(struct kvm_vcpu *vcpu);
766 int (*interrupt_allowed)(struct kvm_vcpu *vcpu);
767 int (*nmi_allowed)(struct kvm_vcpu *vcpu);
768 bool (*get_nmi_mask)(struct kvm_vcpu *vcpu);
769 void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked);
770 void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
771 void (*enable_irq_window)(struct kvm_vcpu *vcpu);
772 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
773 int (*vm_has_apicv)(struct kvm *kvm);
774 void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr);
775 void (*hwapic_isr_update)(struct kvm *kvm, int isr);
776 void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap);
777 void (*set_virtual_x2apic_mode)(struct kvm_vcpu *vcpu, bool set);
778 void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu, hpa_t hpa);
779 void (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
780 void (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
781 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
782 int (*get_tdp_level)(void);
783 u64 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio);
784 int (*get_lpage_level)(void);
785 bool (*rdtscp_supported)(void);
786 bool (*invpcid_supported)(void);
787 void (*adjust_tsc_offset)(struct kvm_vcpu *vcpu, s64 adjustment, bool host);
789 void (*set_tdp_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
791 void (*set_supported_cpuid)(u32 func, struct kvm_cpuid_entry2 *entry);
793 bool (*has_wbinvd_exit)(void);
795 void (*set_tsc_khz)(struct kvm_vcpu *vcpu, u32 user_tsc_khz, bool scale);
796 u64 (*read_tsc_offset)(struct kvm_vcpu *vcpu);
797 void (*write_tsc_offset)(struct kvm_vcpu *vcpu, u64 offset);
799 u64 (*compute_tsc_offset)(struct kvm_vcpu *vcpu, u64 target_tsc);
800 u64 (*read_l1_tsc)(struct kvm_vcpu *vcpu, u64 host_tsc);
802 void (*get_exit_info)(struct kvm_vcpu *vcpu, u64 *info1, u64 *info2);
804 int (*check_intercept)(struct kvm_vcpu *vcpu,
807 void (*handle_external_intr)(struct kvm_vcpu *vcpu);
808 bool (*mpx_supported)(void);
809 bool (*xsaves_supported)(void);
811 int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr);
813 void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
848 extern struct kvm_x86_ops *kvm_x86_ops; argument