Lines Matching refs:vcpu_svm
129 struct vcpu_svm { struct
205 static void svm_complete_interrupts(struct vcpu_svm *svm);
207 static int nested_svm_exit_handled(struct vcpu_svm *svm);
208 static int nested_svm_intercept(struct vcpu_svm *svm);
209 static int nested_svm_vmexit(struct vcpu_svm *svm);
210 static int nested_svm_check_exception(struct vcpu_svm *svm, unsigned nr,
249 static inline struct vcpu_svm *to_svm(struct kvm_vcpu *vcpu) in to_svm()
251 return container_of(vcpu, struct vcpu_svm, vcpu); in to_svm()
254 static void recalc_intercepts(struct vcpu_svm *svm) in recalc_intercepts()
274 static inline struct vmcb *get_host_vmcb(struct vcpu_svm *svm) in get_host_vmcb()
282 static inline void set_cr_intercept(struct vcpu_svm *svm, int bit) in set_cr_intercept()
291 static inline void clr_cr_intercept(struct vcpu_svm *svm, int bit) in clr_cr_intercept()
300 static inline bool is_cr_intercept(struct vcpu_svm *svm, int bit) in is_cr_intercept()
307 static inline void set_dr_intercepts(struct vcpu_svm *svm) in set_dr_intercepts()
331 static inline void clr_dr_intercepts(struct vcpu_svm *svm) in clr_dr_intercepts()
340 static inline void set_exception_intercept(struct vcpu_svm *svm, int bit) in set_exception_intercept()
349 static inline void clr_exception_intercept(struct vcpu_svm *svm, int bit) in clr_exception_intercept()
358 static inline void set_intercept(struct vcpu_svm *svm, int bit) in set_intercept()
367 static inline void clr_intercept(struct vcpu_svm *svm, int bit) in clr_intercept()
376 static inline void enable_gif(struct vcpu_svm *svm) in enable_gif()
381 static inline void disable_gif(struct vcpu_svm *svm) in disable_gif()
386 static inline bool gif_set(struct vcpu_svm *svm) in gif_set()
491 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_interrupt_shadow()
501 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_interrupt_shadow()
512 struct vcpu_svm *svm = to_svm(vcpu); in skip_emulated_instruction()
537 struct vcpu_svm *svm = to_svm(vcpu); in svm_queue_exception()
845 static void svm_enable_lbrv(struct vcpu_svm *svm) in svm_enable_lbrv()
856 static void svm_disable_lbrv(struct vcpu_svm *svm) in svm_disable_lbrv()
986 struct vcpu_svm *svm = to_svm(vcpu); in svm_scale_tsc()
997 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_tsc_khz()
1033 struct vcpu_svm *svm = to_svm(vcpu); in svm_read_tsc_offset()
1040 struct vcpu_svm *svm = to_svm(vcpu); in svm_write_tsc_offset()
1059 struct vcpu_svm *svm = to_svm(vcpu); in svm_adjust_tsc_offset()
1087 static void init_vmcb(struct vcpu_svm *svm) in init_vmcb()
1204 struct vcpu_svm *svm = to_svm(vcpu); in svm_vcpu_reset()
1216 struct vcpu_svm *svm; in svm_create_vcpu()
1291 struct vcpu_svm *svm = to_svm(vcpu); in svm_free_vcpu()
1303 struct vcpu_svm *svm = to_svm(vcpu); in svm_vcpu_load()
1330 struct vcpu_svm *svm = to_svm(vcpu); in svm_vcpu_put()
1375 static void svm_set_vintr(struct vcpu_svm *svm) in svm_set_vintr()
1380 static void svm_clear_vintr(struct vcpu_svm *svm) in svm_clear_vintr()
1487 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_idt()
1495 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_idt()
1504 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_gdt()
1512 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_gdt()
1531 static void update_cr0_intercept(struct vcpu_svm *svm) in update_cr0_intercept()
1555 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_cr0()
1611 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_segment()
1644 struct vcpu_svm *svm = to_svm(vcpu); in update_bp_intercept()
1655 static void new_asid(struct vcpu_svm *svm, struct svm_cpu_data *sd) in new_asid()
1676 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_dr6()
1684 struct vcpu_svm *svm = to_svm(vcpu); in svm_sync_dirty_debug_regs()
1699 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_dr7()
1705 static int pf_interception(struct vcpu_svm *svm) in pf_interception()
1738 static int db_interception(struct vcpu_svm *svm) in db_interception()
1768 static int bp_interception(struct vcpu_svm *svm) in bp_interception()
1778 static int ud_interception(struct vcpu_svm *svm) in ud_interception()
1788 static int ac_interception(struct vcpu_svm *svm) in ac_interception()
1796 struct vcpu_svm *svm = to_svm(vcpu); in svm_fpu_activate()
1804 static int nm_interception(struct vcpu_svm *svm) in nm_interception()
1849 static void svm_handle_mce(struct vcpu_svm *svm) in svm_handle_mce()
1874 static int mc_interception(struct vcpu_svm *svm) in mc_interception()
1879 static int shutdown_interception(struct vcpu_svm *svm) in shutdown_interception()
1894 static int io_interception(struct vcpu_svm *svm) in io_interception()
1915 static int nmi_interception(struct vcpu_svm *svm) in nmi_interception()
1920 static int intr_interception(struct vcpu_svm *svm) in intr_interception()
1926 static int nop_on_interception(struct vcpu_svm *svm) in nop_on_interception()
1931 static int halt_interception(struct vcpu_svm *svm) in halt_interception()
1937 static int vmmcall_interception(struct vcpu_svm *svm) in vmmcall_interception()
1946 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_cr3()
1953 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_get_tdp_pdptr()
1968 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_set_tdp_cr3()
1978 struct vcpu_svm *svm = to_svm(vcpu); in nested_svm_inject_npf_exit()
2021 static int nested_svm_check_permissions(struct vcpu_svm *svm) in nested_svm_check_permissions()
2037 static int nested_svm_check_exception(struct vcpu_svm *svm, unsigned nr, in nested_svm_check_exception()
2058 static inline bool nested_svm_intr(struct vcpu_svm *svm) in nested_svm_intr()
2097 static inline bool nested_svm_nmi(struct vcpu_svm *svm) in nested_svm_nmi()
2111 static void *nested_svm_map(struct vcpu_svm *svm, u64 gpa, struct page **_page) in nested_svm_map()
2137 static int nested_svm_intercept_ioio(struct vcpu_svm *svm) in nested_svm_intercept_ioio()
2162 static int nested_svm_exit_handled_msr(struct vcpu_svm *svm) in nested_svm_exit_handled_msr()
2187 static int nested_svm_exit_special(struct vcpu_svm *svm) in nested_svm_exit_special()
2219 static int nested_svm_intercept(struct vcpu_svm *svm) in nested_svm_intercept()
2267 static int nested_svm_exit_handled(struct vcpu_svm *svm) in nested_svm_exit_handled()
2309 static int nested_svm_vmexit(struct vcpu_svm *svm) in nested_svm_vmexit()
2430 static bool nested_svm_vmrun_msrpm(struct vcpu_svm *svm) in nested_svm_vmrun_msrpm()
2477 static bool nested_svm_vmrun(struct vcpu_svm *svm) in nested_svm_vmrun()
2653 static int vmload_interception(struct vcpu_svm *svm) in vmload_interception()
2674 static int vmsave_interception(struct vcpu_svm *svm) in vmsave_interception()
2695 static int vmrun_interception(struct vcpu_svm *svm) in vmrun_interception()
2723 static int stgi_interception(struct vcpu_svm *svm) in stgi_interception()
2737 static int clgi_interception(struct vcpu_svm *svm) in clgi_interception()
2756 static int invlpga_interception(struct vcpu_svm *svm) in invlpga_interception()
2771 static int skinit_interception(struct vcpu_svm *svm) in skinit_interception()
2779 static int wbinvd_interception(struct vcpu_svm *svm) in wbinvd_interception()
2785 static int xsetbv_interception(struct vcpu_svm *svm) in xsetbv_interception()
2798 static int task_switch_interception(struct vcpu_svm *svm) in task_switch_interception()
2866 static int cpuid_interception(struct vcpu_svm *svm) in cpuid_interception()
2873 static int iret_interception(struct vcpu_svm *svm) in iret_interception()
2883 static int invlpg_interception(struct vcpu_svm *svm) in invlpg_interception()
2893 static int emulate_on_interception(struct vcpu_svm *svm) in emulate_on_interception()
2898 static int rdpmc_interception(struct vcpu_svm *svm) in rdpmc_interception()
2911 static bool check_selective_cr0_intercepted(struct vcpu_svm *svm, in check_selective_cr0_intercepted()
2937 static int cr_interception(struct vcpu_svm *svm) in cr_interception()
3010 static int dr_interception(struct vcpu_svm *svm) in dr_interception()
3049 static int cr8_write_interception(struct vcpu_svm *svm) in cr8_write_interception()
3074 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_msr()
3144 static int rdmsr_interception(struct vcpu_svm *svm) in rdmsr_interception()
3165 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_vm_cr()
3190 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_msr()
3256 static int wrmsr_interception(struct vcpu_svm *svm) in wrmsr_interception()
3277 static int msr_interception(struct vcpu_svm *svm) in msr_interception()
3285 static int interrupt_window_interception(struct vcpu_svm *svm) in interrupt_window_interception()
3308 static int pause_interception(struct vcpu_svm *svm) in pause_interception()
3314 static int nop_interception(struct vcpu_svm *svm) in nop_interception()
3320 static int monitor_interception(struct vcpu_svm *svm) in monitor_interception()
3326 static int mwait_interception(struct vcpu_svm *svm) in mwait_interception()
3332 static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = {
3398 struct vcpu_svm *svm = to_svm(vcpu); in dump_vmcb()
3511 struct vcpu_svm *svm = to_svm(vcpu); in handle_exit()
3585 static void pre_svm_run(struct vcpu_svm *svm) in pre_svm_run()
3598 struct vcpu_svm *svm = to_svm(vcpu); in svm_inject_nmi()
3606 static inline void svm_inject_irq(struct vcpu_svm *svm, int irq) in svm_inject_irq()
3620 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_irq()
3633 struct vcpu_svm *svm = to_svm(vcpu); in update_cr8_intercept()
3669 struct vcpu_svm *svm = to_svm(vcpu); in svm_nmi_allowed()
3681 struct vcpu_svm *svm = to_svm(vcpu); in svm_get_nmi_mask()
3688 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_nmi_mask()
3701 struct vcpu_svm *svm = to_svm(vcpu); in svm_interrupt_allowed()
3719 struct vcpu_svm *svm = to_svm(vcpu); in enable_irq_window()
3735 struct vcpu_svm *svm = to_svm(vcpu); in enable_nmi_window()
3756 struct vcpu_svm *svm = to_svm(vcpu); in svm_flush_tlb()
3770 struct vcpu_svm *svm = to_svm(vcpu); in sync_cr8_to_lapic()
3783 struct vcpu_svm *svm = to_svm(vcpu); in sync_lapic_to_cr8()
3794 static void svm_complete_interrupts(struct vcpu_svm *svm) in svm_complete_interrupts()
3860 struct vcpu_svm *svm = to_svm(vcpu); in svm_cancel_injection()
3871 struct vcpu_svm *svm = to_svm(vcpu); in svm_vcpu_run()
3941 [vmcb]"i"(offsetof(struct vcpu_svm, vmcb_pa)), in svm_vcpu_run()
3942 [rbx]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RBX])), in svm_vcpu_run()
3943 [rcx]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RCX])), in svm_vcpu_run()
3944 [rdx]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RDX])), in svm_vcpu_run()
3945 [rsi]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RSI])), in svm_vcpu_run()
3946 [rdi]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RDI])), in svm_vcpu_run()
3947 [rbp]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RBP])) in svm_vcpu_run()
3949 , [r8]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R8])), in svm_vcpu_run()
3950 [r9]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R9])), in svm_vcpu_run()
3951 [r10]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R10])), in svm_vcpu_run()
3952 [r11]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R11])), in svm_vcpu_run()
3953 [r12]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R12])), in svm_vcpu_run()
3954 [r13]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R13])), in svm_vcpu_run()
3955 [r14]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R14])), in svm_vcpu_run()
3956 [r15]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R15])) in svm_vcpu_run()
4025 struct vcpu_svm *svm = to_svm(vcpu); in svm_set_cr3()
4034 struct vcpu_svm *svm = to_svm(vcpu); in set_tdp_cr3()
4146 struct vcpu_svm *svm = to_svm(vcpu); in svm_fpu_deactivate()
4219 struct vcpu_svm *svm = to_svm(vcpu); in svm_check_intercept()
4451 return kvm_init(&svm_x86_ops, sizeof(struct vcpu_svm), in svm_init()
4452 __alignof__(struct vcpu_svm), THIS_MODULE); in svm_init()