Lines Matching refs:level
138 uint64_t vaddr, int level) in virt_get_pte() argument
142 int index = (vaddr >> PG_LEVEL_SHIFT(level)) & 0x1ffu; in virt_get_pte()
146 level + 1, vaddr); in virt_get_pte()
184 void __virt_pg_map(struct kvm_vm *vm, uint64_t vaddr, uint64_t paddr, int level) in __virt_pg_map() argument
186 const uint64_t pg_size = PG_LEVEL_SIZE(level); in __virt_pg_map()
212 pml4e = virt_create_upper_pte(vm, &vm->pgd, vaddr, paddr, PG_LEVEL_512G, level); in __virt_pg_map()
216 pdpe = virt_create_upper_pte(vm, pml4e, vaddr, paddr, PG_LEVEL_1G, level); in __virt_pg_map()
220 pde = virt_create_upper_pte(vm, pdpe, vaddr, paddr, PG_LEVEL_2M, level); in __virt_pg_map()
246 uint64_t nr_bytes, int level) in virt_map_level() argument
248 uint64_t pg_size = PG_LEVEL_SIZE(level); in virt_map_level()
257 __virt_pg_map(vm, vaddr, paddr, level); in virt_map_level()
264 static bool vm_is_target_pte(uint64_t *pte, int *level, int current_level) in vm_is_target_pte() argument
267 TEST_ASSERT(*level == PG_LEVEL_NONE || in vm_is_target_pte()
268 *level == current_level, in vm_is_target_pte()
270 *level = current_level; in vm_is_target_pte()
273 return *level == current_level; in vm_is_target_pte()
277 int *level) in __vm_get_page_table_entry() argument
284 TEST_ASSERT(*level >= PG_LEVEL_NONE && *level < PG_LEVEL_NUM, in __vm_get_page_table_entry()
285 "Invalid PG_LEVEL_* '%d'", *level); in __vm_get_page_table_entry()
301 if (vm_is_target_pte(pml4e, level, PG_LEVEL_512G)) in __vm_get_page_table_entry()
305 if (vm_is_target_pte(pdpe, level, PG_LEVEL_1G)) in __vm_get_page_table_entry()
309 if (vm_is_target_pte(pde, level, PG_LEVEL_2M)) in __vm_get_page_table_entry()
317 int level = PG_LEVEL_4K; in vm_get_page_table_entry() local
319 return __vm_get_page_table_entry(vm, vaddr, &level); in vm_get_page_table_entry()
468 int level = PG_LEVEL_NONE; in addr_arch_gva2gpa() local
469 uint64_t *pte = __vm_get_page_table_entry(vm, gva, &level); in addr_arch_gva2gpa()
478 return vm_untag_gpa(vm, PTE_GET_PA(*pte)) | (gva & ~HUGEPAGE_MASK(level)); in addr_arch_gva2gpa()