Lines Matching defs:kvm_x86_ops
571 struct kvm_x86_ops { struct
572 int (*cpu_has_kvm_support)(void); /* __init */
573 int (*disabled_by_bios)(void); /* __init */
574 int (*hardware_enable)(void *dummy);
575 void (*hardware_disable)(void *dummy);
576 void (*check_processor_compatibility)(void *rtn);
577 int (*hardware_setup)(void); /* __init */
578 void (*hardware_unsetup)(void); /* __exit */
579 bool (*cpu_has_accelerated_tpr)(void);
580 void (*cpuid_update)(struct kvm_vcpu *vcpu);
583 struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id);
584 void (*vcpu_free)(struct kvm_vcpu *vcpu);
585 int (*vcpu_reset)(struct kvm_vcpu *vcpu);
587 void (*prepare_guest_switch)(struct kvm_vcpu *vcpu);
588 void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu);
589 void (*vcpu_put)(struct kvm_vcpu *vcpu);
591 void (*set_guest_debug)(struct kvm_vcpu *vcpu,
593 int (*get_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata);
594 int (*set_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 data);
595 u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg);
596 void (*get_segment)(struct kvm_vcpu *vcpu,
598 int (*get_cpl)(struct kvm_vcpu *vcpu);
599 void (*set_segment)(struct kvm_vcpu *vcpu,
601 void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l);
602 void (*decache_cr0_guest_bits)(struct kvm_vcpu *vcpu);
603 void (*decache_cr3)(struct kvm_vcpu *vcpu);
604 void (*decache_cr4_guest_bits)(struct kvm_vcpu *vcpu);
605 void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
606 void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
607 int (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4);
608 void (*set_efer)(struct kvm_vcpu *vcpu, u64 efer);
609 void (*get_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
610 void (*set_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
611 void (*get_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
612 void (*set_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
613 void (*set_dr7)(struct kvm_vcpu *vcpu, unsigned long value);
614 void (*cache_reg)(struct kvm_vcpu *vcpu, enum kvm_reg reg);
615 unsigned long (*get_rflags)(struct kvm_vcpu *vcpu);
616 void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags);
617 void (*fpu_activate)(struct kvm_vcpu *vcpu);
618 void (*fpu_deactivate)(struct kvm_vcpu *vcpu);
620 void (*tlb_flush)(struct kvm_vcpu *vcpu);
622 void (*run)(struct kvm_vcpu *vcpu);
623 int (*handle_exit)(struct kvm_vcpu *vcpu);
624 void (*skip_emulated_instruction)(struct kvm_vcpu *vcpu);
625 void (*set_interrupt_shadow)(struct kvm_vcpu *vcpu, int mask);
626 u32 (*get_interrupt_shadow)(struct kvm_vcpu *vcpu, int mask);
627 void (*patch_hypercall)(struct kvm_vcpu *vcpu,
629 void (*set_irq)(struct kvm_vcpu *vcpu);
630 void (*set_nmi)(struct kvm_vcpu *vcpu);
631 void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr,
634 void (*cancel_injection)(struct kvm_vcpu *vcpu);
635 int (*interrupt_allowed)(struct kvm_vcpu *vcpu);
636 int (*nmi_allowed)(struct kvm_vcpu *vcpu);
637 bool (*get_nmi_mask)(struct kvm_vcpu *vcpu);
638 void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked);
639 void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
640 void (*enable_irq_window)(struct kvm_vcpu *vcpu);
641 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
642 int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
643 int (*get_tdp_level)(void);
644 u64 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio);
645 int (*get_lpage_level)(void);
646 bool (*rdtscp_supported)(void);
647 void (*adjust_tsc_offset)(struct kvm_vcpu *vcpu, s64 adjustment);
649 void (*set_tdp_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
651 void (*set_supported_cpuid)(u32 func, struct kvm_cpuid_entry2 *entry);
675 extern struct kvm_x86_ops *kvm_x86_ops; argument