/Linux-v6.6/arch/x86/kvm/vmx/ |
D | nested.h | 39 static inline struct vmcs12 *get_vmcs12(struct kvm_vcpu *vcpu) in get_vmcs12() 44 static inline struct vmcs12 *get_shadow_vmcs12(struct kvm_vcpu *vcpu) in get_shadow_vmcs12() 87 static inline unsigned long nested_read_cr0(struct vmcs12 *fields) in nested_read_cr0() 92 static inline unsigned long nested_read_cr4(struct vmcs12 *fields) in nested_read_cr4() 131 static inline bool nested_cpu_has(struct vmcs12 *vmcs12, u32 bit) in nested_cpu_has() argument 133 return vmcs12->cpu_based_vm_exec_control & bit; in nested_cpu_has() 136 static inline bool nested_cpu_has2(struct vmcs12 *vmcs12, u32 bit) in nested_cpu_has2() argument 138 return (vmcs12->cpu_based_vm_exec_control & in nested_cpu_has2() 140 (vmcs12->secondary_vm_exec_control & bit); in nested_cpu_has2() 143 static inline bool nested_cpu_has_preemption_timer(struct vmcs12 *vmcs12) in nested_cpu_has_preemption_timer() argument [all …]
|
D | nested.c | 56 #define SHADOW_FIELD_RO(x, y) { x, offsetof(struct vmcs12, y) }, 63 #define SHADOW_FIELD_RW(x, y) { x, offsetof(struct vmcs12, y) }, 381 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); in nested_ept_inject_page_fault() local 403 nested_ept_invalidate_addr(vcpu, vmcs12->ept_pointer, in nested_ept_inject_page_fault() 408 vmcs12->guest_physical_address = fault->address; in nested_ept_inject_page_fault() 441 static bool nested_vmx_is_page_fault_vmexit(struct vmcs12 *vmcs12, in nested_vmx_is_page_fault_vmexit() argument 446 bit = (vmcs12->exception_bitmap & (1u << PF_VECTOR)) != 0; in nested_vmx_is_page_fault_vmexit() 448 (error_code & vmcs12->page_fault_error_code_mask) != in nested_vmx_is_page_fault_vmexit() 449 vmcs12->page_fault_error_code_match; in nested_vmx_is_page_fault_vmexit() 456 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); in nested_vmx_is_exception_vmexit() local [all …]
|
D | sgx.h | 18 void vmx_write_encls_bitmap(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12); 26 struct vmcs12 *vmcs12) in vmx_write_encls_bitmap() argument
|
D | vmcs12.h | 27 struct __packed vmcs12 { struct 212 ASSERT_STRUCT_OFFSET(struct vmcs12, field, loc) 385 static inline u64 vmcs12_read_any(struct vmcs12 *vmcs12, unsigned long field, in vmcs12_read_any() argument 388 char *p = (char *)vmcs12 + offset; in vmcs12_read_any() 405 static inline void vmcs12_write_any(struct vmcs12 *vmcs12, unsigned long field, in vmcs12_write_any() argument 408 char *p = (char *)vmcs12 + offset; in vmcs12_write_any()
|
D | hyperv.c | 574 int nested_evmcs_check_controls(struct vmcs12 *vmcs12) in nested_evmcs_check_controls() argument 577 vmcs12->pin_based_vm_exec_control))) in nested_evmcs_check_controls() 581 vmcs12->cpu_based_vm_exec_control))) in nested_evmcs_check_controls() 585 vmcs12->secondary_vm_exec_control))) in nested_evmcs_check_controls() 589 vmcs12->vm_exit_controls))) in nested_evmcs_check_controls() 593 vmcs12->vm_entry_controls))) in nested_evmcs_check_controls() 601 if (WARN_ON_ONCE(vmcs12->vm_function_control >> 32)) in nested_evmcs_check_controls() 605 vmcs12->vm_function_control))) in nested_evmcs_check_controls()
|
D | sgx.c | 467 void vmx_write_encls_bitmap(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12) in vmx_write_encls_bitmap() argument 503 if (!vmcs12 && is_guest_mode(vcpu)) in vmx_write_encls_bitmap() 504 vmcs12 = get_vmcs12(vcpu); in vmx_write_encls_bitmap() 505 if (vmcs12 && nested_cpu_has_encls_exit(vmcs12)) in vmx_write_encls_bitmap() 506 bitmap |= vmcs12->encls_exiting_bitmap; in vmx_write_encls_bitmap()
|
D | hyperv.h | 196 int nested_evmcs_check_controls(struct vmcs12 *vmcs12);
|
D | vmx.c | 1747 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); in vmx_update_emulated_instruction() local 1764 if (nested_cpu_has_mtf(vmcs12) && in vmx_update_emulated_instruction() 1897 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); in vmx_get_l2_tsc_offset() local 1899 if (nested_cpu_has(vmcs12, CPU_BASED_USE_TSC_OFFSETTING)) in vmx_get_l2_tsc_offset() 1900 return vmcs12->tsc_offset; in vmx_get_l2_tsc_offset() 1907 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); in vmx_get_l2_tsc_multiplier() local 1909 if (nested_cpu_has(vmcs12, CPU_BASED_USE_TSC_OFFSETTING) && in vmx_get_l2_tsc_multiplier() 1910 nested_cpu_has2(vmcs12, SECONDARY_EXEC_TSC_SCALING)) in vmx_get_l2_tsc_multiplier() 1911 return vmcs12->tsc_multiplier; in vmx_get_l2_tsc_multiplier() 5388 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); in handle_set_cr0() local [all …]
|
D | vmx.h | 129 struct vmcs12 *cached_vmcs12; 135 struct vmcs12 *cached_shadow_vmcs12;
|
D | vmcs12.c | 6 #define VMCS12_OFFSET(x) offsetof(struct vmcs12, x)
|
/Linux-v6.6/Documentation/virt/kvm/x86/ |
D | nested-vmx.rst | 71 internals of this structure; This is struct vmcs12 from arch/x86/kvm/vmx.c. 73 The name "vmcs12" refers to the VMCS that L1 builds for L2. In the code we 78 For convenience, we repeat the content of struct vmcs12 here. If the internals 80 VMCS12_REVISION (from vmx.c) should be changed if struct vmcs12 or its inner 86 struct __packed vmcs12 {
|
/Linux-v6.6/arch/x86/kvm/ |
D | Makefile | 25 kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o \
|
/Linux-v6.6/tools/arch/x86/include/uapi/asm/ |
D | kvm.h | 464 __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; member
|
/Linux-v6.6/arch/x86/include/uapi/asm/ |
D | kvm.h | 464 __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; member
|
/Linux-v6.6/Documentation/virt/kvm/ |
D | api.rst | 4823 __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
|