Lines Matching refs:vcpu
34 enum vm_paging_mode get_vcpu_paging_mode(struct acrn_vcpu *vcpu) in get_vcpu_paging_mode() argument
38 if (is_paging_enabled(vcpu)) { in get_vcpu_paging_mode()
39 if (is_pae(vcpu)) { in get_vcpu_paging_mode()
40 if (is_long_mode(vcpu)) { in get_vcpu_paging_mode()
55 static int32_t local_gva2gpa_common(struct acrn_vcpu *vcpu, const struct page_walk_info *pw_info, in local_gva2gpa_common() argument
80 base = gpa2hva(vcpu->vm, addr); in local_gva2gpa_common()
143 is_user_mode_addr && ((vcpu_get_rflags(vcpu) & RFLAGS_AC) == 0UL)) { in local_gva2gpa_common()
170 static int32_t local_gva2gpa_pae(struct acrn_vcpu *vcpu, struct page_walk_info *pw_info, in local_gva2gpa_pae() argument
180 base = (uint64_t *)gpa2hva(vcpu->vm, addr); in local_gva2gpa_pae()
190 ret = local_gva2gpa_common(vcpu, pw_info, gva, gpa, err_code); in local_gva2gpa_pae()
215 int32_t gva2gpa(struct acrn_vcpu *vcpu, uint64_t gva, uint64_t *gpa, in gva2gpa() argument
218 enum vm_paging_mode pm = get_vcpu_paging_mode(vcpu); in gva2gpa()
241 pw_info.nxe = ((vcpu_get_efer(vcpu) & MSR_IA32_EFER_NXE_BIT) != 0UL); in gva2gpa()
242 pw_info.wp = ((vcpu_get_cr0(vcpu) & CR0_WP) != 0UL); in gva2gpa()
243 pw_info.is_smap_on = ((vcpu_get_cr4(vcpu) & CR4_SMAP) != 0UL); in gva2gpa()
244 pw_info.is_smep_on = ((vcpu_get_cr4(vcpu) & CR4_SMEP) != 0UL); in gva2gpa()
250 ret = local_gva2gpa_common(vcpu, &pw_info, gva, gpa, err_code); in gva2gpa()
253 ret = local_gva2gpa_pae(vcpu, &pw_info, gva, gpa, err_code); in gva2gpa()
256 pw_info.pse = ((vcpu_get_cr4(vcpu) & CR4_PSE) != 0UL); in gva2gpa()
258 ret = local_gva2gpa_common(vcpu, &pw_info, gva, gpa, err_code); in gva2gpa()
334 static inline int32_t copy_gva(struct acrn_vcpu *vcpu, void *h_ptr_arg, uint64_t gva_arg, in copy_gva() argument
346 ret = gva2gpa(vcpu, gva, &gpa, err_code); in copy_gva()
348 len = local_copy_gpa(vcpu->vm, h_ptr, gpa, size, PAGE_SIZE_4K, cp_from_vm); in copy_gva()
403 int32_t copy_from_gva(struct acrn_vcpu *vcpu, void *h_ptr, uint64_t gva, in copy_from_gva() argument
406 return copy_gva(vcpu, h_ptr, gva, size, err_code, fault_addr, 1); in copy_from_gva()
409 int32_t copy_to_gva(struct acrn_vcpu *vcpu, void *h_ptr, uint64_t gva, in copy_to_gva() argument
412 return copy_gva(vcpu, h_ptr, gva, size, err_code, fault_addr, false); in copy_to_gva()