/linux-master/arch/x86/kvm/svm/ |
H A D | hyperv.c | 13 svm->vmcb->control.exit_code = HV_SVM_EXITCODE_ENL; 14 svm->vmcb->control.exit_code_hi = 0; 15 svm->vmcb->control.exit_info_1 = HV_SVM_ENL_EXITCODE_TRAP_AFTER_FLUSH; 16 svm->vmcb->control.exit_info_2 = 0;
|
H A D | svm_onhyperv.h | 22 struct hv_vmcb_enlightenments *hve = &to_svm(vcpu)->vmcb->control.hv_enlightenments; 28 static inline void svm_hv_init_vmcb(struct vmcb *vmcb) argument 30 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; 32 BUILD_BUG_ON(sizeof(vmcb->control.hv_enlightenments) != 33 sizeof(vmcb->control.reserved_sw)); 73 struct vmcb *vmcb = to_svm(vcpu)->vmcb; local 74 struct hv_vmcb_enlightenments *hve = &vmcb 80 svm_hv_update_vp_id(struct vmcb *vmcb, struct kvm_vcpu *vcpu) argument 97 svm_hv_init_vmcb(struct vmcb *vmcb) argument 110 svm_hv_update_vp_id(struct vmcb *vmcb, struct kvm_vcpu *vcpu) argument [all...] |
H A D | svm.h | 110 struct vmcb *ptr; 211 /* vmcb always points at current_vmcb->ptr, it's purely a shorthand. */ 212 struct vmcb *vmcb; member in struct:vcpu_svm 306 struct vmcb *current_vmcb; 308 /* index = sev_asid, value = vmcb pointer */ 309 struct vmcb **sev_vmcbs; 343 static inline void vmcb_mark_all_dirty(struct vmcb *vmcb) argument 345 vmcb 348 vmcb_mark_all_clean(struct vmcb *vmcb) argument 354 vmcb_mark_dirty(struct vmcb *vmcb, int bit) argument 359 vmcb_is_dirty(struct vmcb *vmcb, int bit) argument 405 struct vmcb *vmcb = svm->vmcb01.ptr; local 415 struct vmcb *vmcb = svm->vmcb01.ptr; local 425 struct vmcb *vmcb = svm->vmcb01.ptr; local 434 struct vmcb *vmcb = svm->vmcb01.ptr; local 465 struct vmcb *vmcb = get_vgif_vmcb(svm); local 475 struct vmcb *vmcb = get_vgif_vmcb(svm); local 485 struct vmcb *vmcb = get_vgif_vmcb(svm); local 526 struct vmcb *vmcb = get_vnmi_vmcb_l1(svm); local [all...] |
H A D | svm_onhyperv.c | 26 hve = &to_svm(vcpu)->vmcb->control.hv_enlightenments; 32 vmcb_mark_dirty(to_svm(vcpu)->vmcb, HV_VMCB_NESTED_ENLIGHTENMENTS);
|
H A D | svm.c | 343 svm->vmcb->save.efer = efer | EFER_SVME; 344 vmcb_mark_dirty(svm->vmcb, VMCB_CR); 353 if (svm->vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) 363 svm->vmcb->control.int_state &= ~SVM_INTERRUPT_SHADOW_MASK; 365 svm->vmcb->control.int_state |= SVM_INTERRUPT_SHADOW_MASK; 382 if (nrips && svm->vmcb->control.next_rip != 0) { 384 svm->next_rip = svm->vmcb->control.next_rip; 389 old_rflags = svm->vmcb->save.rflags; 395 svm->vmcb->save.rflags = old_rflags; 444 svm->soft_int_csbase = svm->vmcb 726 struct vmcb *vmcb = svm->vmcb01.ptr; local 750 struct vmcb *vmcb = svm->vmcb01.ptr; local 1230 struct vmcb *vmcb = svm->vmcb01.ptr; local 1478 svm_clear_current_vmcb(struct vmcb *vmcb) argument 1606 struct vmcb *vmcb = to_svm(vcpu)->vmcb; local 1996 struct vmcb *vmcb = svm->vmcb; local 3736 struct vmcb *vmcb = svm->vmcb; local 3768 struct vmcb *vmcb = svm->vmcb; local 4439 struct vmcb *vmcb = svm->vmcb; local [all...] |
H A D | nested.c | 40 struct vmcb *vmcb = svm->vmcb; local 42 if (vmcb->control.exit_code != SVM_EXIT_NPF) { 47 vmcb->control.exit_code = SVM_EXIT_NPF; 48 vmcb->control.exit_code_hi = 0; 49 vmcb->control.exit_info_1 = (1ULL << 32); 50 vmcb->control.exit_info_2 = fault->address; 53 vmcb->control.exit_info_1 &= ~0xffffffffULL; 54 vmcb 1384 struct vmcb *vmcb = svm->vmcb; local [all...] |
H A D | avic.c | 87 struct vmcb *vmcb = svm->vmcb01.ptr; local 89 vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK); 90 vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK; 92 vmcb->control.int_ctl |= AVIC_ENABLE_MASK; 102 vmcb->control.int_ctl |= X2APIC_MODE_MASK; 103 vmcb->control.avic_physical_id |= X2AVIC_MAX_PHYSICAL_ID; 114 vmcb->control.avic_physical_id |= AVIC_MAX_PHYSICAL_ID; 122 struct vmcb *vmcb local 244 avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb) argument 1115 struct vmcb *vmcb = svm->vmcb01.ptr; local [all...] |
H A D | sev.c | 586 if (svm->vcpu.guest_debug || (svm->vmcb->save.dr7 & ~DR7_FIXED_1)) 595 memcpy(save, &svm->vmcb->save, sizeof(svm->vmcb->save)); 1763 dst_svm->vmcb->control.ghcb_gpa = src_svm->vmcb->control.ghcb_gpa; 1764 dst_svm->vmcb->control.vmsa_pa = src_svm->vmcb->control.vmsa_pa; 1768 src_svm->vmcb->control.ghcb_gpa = INVALID_PAGE; 1769 src_svm->vmcb->control.vmsa_pa = INVALID_PAGE; 2406 pr_err("GHCB (GPA=%016llx):\n", svm->vmcb 3033 struct vmcb *vmcb = svm->vmcb01.ptr; local [all...] |
/linux-master/tools/testing/selftests/kvm/x86_64/ |
H A D | svm_nested_soft_inject_test.c | 83 struct vmcb *vmcb = svm->vmcb; local 93 vmcb->control.intercept_exceptions |= BIT(PF_VECTOR) | BIT(UD_VECTOR); 94 vmcb->control.intercept |= BIT(INTERCEPT_NMI) | BIT(INTERCEPT_HLT); 97 vmcb->control.event_inj = SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_NMI; 99 vmcb->control.event_inj = INT_NR | SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_SOFT; 101 vmcb->control.next_rip = vmcb->save.rip; 104 run_guest(vmcb, sv [all...] |
H A D | svm_vmcall_test.c | 24 struct vmcb *vmcb = svm->vmcb; local 30 run_guest(vmcb, svm->vmcb_gpa); 32 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL);
|
H A D | svm_nested_shutdown_test.c | 24 struct vmcb *vmcb = svm->vmcb; local 29 vmcb->control.intercept &= ~(BIT(INTERCEPT_SHUTDOWN)); 36 run_guest(vmcb, svm->vmcb_gpa);
|
H A D | hyperv_svm_test.c | 74 struct vmcb *vmcb = svm->vmcb; local 75 struct hv_vmcb_enlightenments *hve = &vmcb->control.hv_enlightenments; 97 run_guest(vmcb, svm->vmcb_gpa); 98 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); 100 vmcb->save.rip += 3; 103 vmcb->control.intercept |= 1ULL << INTERCEPT_MSR_PROT; 105 run_guest(vmcb, svm->vmcb_gpa); 106 GUEST_ASSERT(vmcb [all...] |
H A D | svm_int_ctl_test.c | 62 struct vmcb *vmcb = svm->vmcb; local 71 vmcb->control.int_ctl &= ~V_INTR_MASKING_MASK; 74 vmcb->control.intercept &= ~(BIT(INTERCEPT_INTR) | BIT(INTERCEPT_VINTR)); 77 vmcb->control.int_ctl |= V_IRQ_MASK | (0x1 << V_INTR_PRIO_SHIFT); 78 vmcb->control.int_vector = VINTR_IRQ_NUMBER; 80 run_guest(vmcb, svm->vmcb_gpa); 81 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL);
|
H A D | triple_fault_event_test.c | 45 struct vmcb *vmcb = svm->vmcb; local 51 vmcb->control.intercept &= ~(BIT(INTERCEPT_SHUTDOWN)); 53 run_guest(vmcb, svm->vmcb_gpa);
|
H A D | nested_exceptions_test.c | 79 struct vmcb *vmcb = svm->vmcb; local 80 struct vmcb_control_area *ctrl = &vmcb->control; 82 vmcb->save.rip = (u64)l2_code; 83 run_guest(vmcb, svm->vmcb_gpa); 94 struct vmcb_control_area *ctrl = &svm->vmcb->control; 98 svm->vmcb->save.idtr.limit = 0;
|
H A D | state_test.c | 38 struct vmcb *vmcb = svm->vmcb; local 46 run_guest(vmcb, svm->vmcb_gpa); 47 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL); 49 vmcb->save.rip += 3; 50 run_guest(vmcb, svm->vmcb_gpa); 51 GUEST_ASSERT(vmcb->control.exit_code == SVM_EXIT_VMMCALL);
|
H A D | smm_test.c | 103 run_guest(svm->vmcb, svm->vmcb_gpa); 104 run_guest(svm->vmcb, svm->vmcb_gpa);
|
/linux-master/tools/testing/selftests/kvm/include/x86_64/ |
H A D | svm_util.h | 20 struct vmcb *vmcb; /* gva */ member in struct:svm_test_data 61 void run_guest(struct vmcb *vmcb, uint64_t vmcb_gpa);
|
H A D | svm.h | 240 struct __attribute__ ((__packed__)) vmcb { struct
|
/linux-master/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | svm.c | 37 svm->vmcb = (void *)vm_vaddr_alloc_page(vm); 38 svm->vmcb_hva = addr_gva2hva(vm, (uintptr_t)svm->vmcb); 39 svm->vmcb_gpa = addr_gva2gpa(vm, (uintptr_t)svm->vmcb); 65 struct vmcb *vmcb = svm->vmcb; local 67 struct vmcb_save_area *save = &vmcb->save; 68 struct vmcb_control_area *ctrl = &vmcb->control; 79 memset(vmcb, 0, sizeof(*vmcb)); 135 run_guest(struct vmcb *vmcb, uint64_t vmcb_gpa) argument [all...] |
/linux-master/arch/x86/kvm/ |
H A D | trace.h | 604 TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, 607 TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, tdp_enabled, 612 __field( __u64, vmcb ) 623 __entry->vmcb = vmcb; 635 __entry->isa == KVM_ISA_VMX ? "vmcs" : "vmcb", 636 __entry->vmcb,
|
/linux-master/arch/x86/include/asm/ |
H A D | svm.h | 564 struct vmcb { struct
|