Lines Matching refs:vmx
76 struct vmx_pages *vmx = addr_gva2hva(vm, vmx_gva); in vcpu_alloc_vmx() local
79 vmx->vmxon = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx()
80 vmx->vmxon_hva = addr_gva2hva(vm, (uintptr_t)vmx->vmxon); in vcpu_alloc_vmx()
81 vmx->vmxon_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->vmxon); in vcpu_alloc_vmx()
84 vmx->vmcs = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx()
85 vmx->vmcs_hva = addr_gva2hva(vm, (uintptr_t)vmx->vmcs); in vcpu_alloc_vmx()
86 vmx->vmcs_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->vmcs); in vcpu_alloc_vmx()
89 vmx->msr = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx()
90 vmx->msr_hva = addr_gva2hva(vm, (uintptr_t)vmx->msr); in vcpu_alloc_vmx()
91 vmx->msr_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->msr); in vcpu_alloc_vmx()
92 memset(vmx->msr_hva, 0, getpagesize()); in vcpu_alloc_vmx()
95 vmx->shadow_vmcs = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx()
96 vmx->shadow_vmcs_hva = addr_gva2hva(vm, (uintptr_t)vmx->shadow_vmcs); in vcpu_alloc_vmx()
97 vmx->shadow_vmcs_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->shadow_vmcs); in vcpu_alloc_vmx()
100 vmx->vmread = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx()
101 vmx->vmread_hva = addr_gva2hva(vm, (uintptr_t)vmx->vmread); in vcpu_alloc_vmx()
102 vmx->vmread_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->vmread); in vcpu_alloc_vmx()
103 memset(vmx->vmread_hva, 0, getpagesize()); in vcpu_alloc_vmx()
105 vmx->vmwrite = (void *)vm_vaddr_alloc_page(vm); in vcpu_alloc_vmx()
106 vmx->vmwrite_hva = addr_gva2hva(vm, (uintptr_t)vmx->vmwrite); in vcpu_alloc_vmx()
107 vmx->vmwrite_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->vmwrite); in vcpu_alloc_vmx()
108 memset(vmx->vmwrite_hva, 0, getpagesize()); in vcpu_alloc_vmx()
111 return vmx; in vcpu_alloc_vmx()
114 bool prepare_for_vmx_operation(struct vmx_pages *vmx) in prepare_for_vmx_operation() argument
151 *(uint32_t *)(vmx->vmxon) = vmcs_revision(); in prepare_for_vmx_operation()
152 if (vmxon(vmx->vmxon_gpa)) in prepare_for_vmx_operation()
158 bool load_vmcs(struct vmx_pages *vmx) in load_vmcs() argument
161 *(uint32_t *)(vmx->vmcs) = vmcs_revision(); in load_vmcs()
162 if (vmclear(vmx->vmcs_gpa)) in load_vmcs()
165 if (vmptrld(vmx->vmcs_gpa)) in load_vmcs()
169 *(uint32_t *)(vmx->shadow_vmcs) = vmcs_revision() | 0x80000000ul; in load_vmcs()
170 if (vmclear(vmx->shadow_vmcs_gpa)) in load_vmcs()
189 static inline void init_vmcs_control_fields(struct vmx_pages *vmx) in init_vmcs_control_fields() argument
198 if (vmx->eptp_gpa) { in init_vmcs_control_fields()
204 .address = vmx->eptp_gpa >> PAGE_SHIFT_4K, in init_vmcs_control_fields()
239 vmwrite(MSR_BITMAP, vmx->msr_gpa); in init_vmcs_control_fields()
240 vmwrite(VMREAD_BITMAP, vmx->vmread_gpa); in init_vmcs_control_fields()
241 vmwrite(VMWRITE_BITMAP, vmx->vmwrite_gpa); in init_vmcs_control_fields()
358 void prepare_vmcs(struct vmx_pages *vmx, void *guest_rip, void *guest_rsp) in prepare_vmcs() argument
360 init_vmcs_control_fields(vmx); in prepare_vmcs()
397 void __nested_pg_map(struct vmx_pages *vmx, struct kvm_vm *vm, in __nested_pg_map() argument
401 struct eptPageTableEntry *pt = vmx->eptp_hva, *pte; in __nested_pg_map()
448 void nested_pg_map(struct vmx_pages *vmx, struct kvm_vm *vm, in nested_pg_map() argument
451 __nested_pg_map(vmx, vm, nested_paddr, paddr, PG_LEVEL_4K); in nested_pg_map()
471 void __nested_map(struct vmx_pages *vmx, struct kvm_vm *vm, in __nested_map() argument
482 __nested_pg_map(vmx, vm, nested_paddr, paddr, level); in __nested_map()
488 void nested_map(struct vmx_pages *vmx, struct kvm_vm *vm, in nested_map() argument
491 __nested_map(vmx, vm, nested_paddr, paddr, size, PG_LEVEL_4K); in nested_map()
497 void nested_map_memslot(struct vmx_pages *vmx, struct kvm_vm *vm, in nested_map_memslot() argument
511 nested_map(vmx, vm, in nested_map_memslot()
519 void nested_identity_map_1g(struct vmx_pages *vmx, struct kvm_vm *vm, in nested_identity_map_1g() argument
522 __nested_map(vmx, vm, addr, addr, size, PG_LEVEL_1G); in nested_identity_map_1g()
537 void prepare_eptp(struct vmx_pages *vmx, struct kvm_vm *vm, in prepare_eptp() argument
542 vmx->eptp = (void *)vm_vaddr_alloc_page(vm); in prepare_eptp()
543 vmx->eptp_hva = addr_gva2hva(vm, (uintptr_t)vmx->eptp); in prepare_eptp()
544 vmx->eptp_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->eptp); in prepare_eptp()
547 void prepare_virtualize_apic_accesses(struct vmx_pages *vmx, struct kvm_vm *vm) in prepare_virtualize_apic_accesses() argument
549 vmx->apic_access = (void *)vm_vaddr_alloc_page(vm); in prepare_virtualize_apic_accesses()
550 vmx->apic_access_hva = addr_gva2hva(vm, (uintptr_t)vmx->apic_access); in prepare_virtualize_apic_accesses()
551 vmx->apic_access_gpa = addr_gva2gpa(vm, (uintptr_t)vmx->apic_access); in prepare_virtualize_apic_accesses()