Lines Matching refs:gpt

149 	vmm_gpt_t *gpt;  in vmm_gpt_alloc()  local
152 gpt = kmem_zalloc(sizeof (*gpt), KM_SLEEP); in vmm_gpt_alloc()
153 gpt->vgpt_pte_ops = pte_ops; in vmm_gpt_alloc()
154 gpt->vgpt_root = vmm_gpt_node_alloc(); in vmm_gpt_alloc()
156 return (gpt); in vmm_gpt_alloc()
181 vmm_gpt_free(vmm_gpt_t *gpt) in vmm_gpt_free() argument
184 vmm_gpt_vacate_region(gpt, 0, UINT64_MAX & PAGEMASK); in vmm_gpt_free()
186 VERIFY(gpt->vgpt_root != NULL); in vmm_gpt_free()
187 VERIFY3U(gpt->vgpt_root->vgn_ref_cnt, ==, 0); in vmm_gpt_free()
189 vmm_gpt_node_free(gpt->vgpt_root); in vmm_gpt_free()
190 kmem_free(gpt, sizeof (*gpt)); in vmm_gpt_free()
367 vmm_gpt_node_add(vmm_gpt_t *gpt, vmm_gpt_node_t *parent, in vmm_gpt_node_add() argument
407 gpt->vgpt_pte_ops->vpeo_map_table(child->vgn_host_pfn); in vmm_gpt_node_add()
452 vmm_gpt_walk(vmm_gpt_t *gpt, uint64_t gpa, uint64_t **entries, in vmm_gpt_walk() argument
458 ASSERT(gpt != NULL); in vmm_gpt_walk()
459 current_entries = gpt->vgpt_root->vgn_entries; in vmm_gpt_walk()
467 if (!gpt->vgpt_pte_ops->vpeo_pte_is_present(entry)) { in vmm_gpt_walk()
471 pfn = gpt->vgpt_pte_ops->vpeo_pte_pfn(entry); in vmm_gpt_walk()
480 vmm_gpt_lookup(vmm_gpt_t *gpt, uint64_t gpa) in vmm_gpt_lookup() argument
484 vmm_gpt_walk(gpt, gpa, entries, MAX_GPT_LEVEL); in vmm_gpt_lookup()
496 vmm_gpt_populate_region_lvl(vmm_gpt_t *gpt, uint64_t addr, uint64_t len, in vmm_gpt_populate_region_lvl() argument
519 vmm_gpt_node_add(gpt, parent, node, gpa, prev); in vmm_gpt_populate_region_lvl()
558 vmm_gpt_node_add(gpt, parent, node, gpa, prev); in vmm_gpt_populate_region_lvl()
569 vmm_gpt_populate_region(vmm_gpt_t *gpt, uint64_t addr, uint64_t len) in vmm_gpt_populate_region() argument
578 vmm_gpt_node_t *node = gpt->vgpt_root; in vmm_gpt_populate_region()
582 node = vmm_gpt_populate_region_lvl(gpt, addr, len, node); in vmm_gpt_populate_region()
625 vmm_gpt_map_at(vmm_gpt_t *gpt, uint64_t *ptep, pfn_t pfn, uint_t prot, in vmm_gpt_map_at() argument
630 entry = gpt->vgpt_pte_ops->vpeo_map_page(pfn, prot, attr); in vmm_gpt_map_at()
633 ASSERT3U(gpt->vgpt_pte_ops->vpeo_pte_pfn(entry), ==, in vmm_gpt_map_at()
634 gpt->vgpt_pte_ops->vpeo_pte_pfn(old_entry)); in vmm_gpt_map_at()
648 vmm_gpt_map(vmm_gpt_t *gpt, uint64_t gpa, pfn_t pfn, uint_t prot, uint8_t attr) in vmm_gpt_map() argument
652 ASSERT(gpt != NULL); in vmm_gpt_map()
653 vmm_gpt_walk(gpt, gpa, entries, MAX_GPT_LEVEL); in vmm_gpt_map()
656 return (vmm_gpt_map_at(gpt, entries[LEVEL1], pfn, prot, attr)); in vmm_gpt_map()
664 vmm_gpt_vacate_region(vmm_gpt_t *gpt, uint64_t addr, uint64_t len) in vmm_gpt_vacate_region() argument
671 [LEVEL4] = gpt->vgpt_root, in vmm_gpt_vacate_region()
732 vmm_gpt_unmap(vmm_gpt_t *gpt, uint64_t gpa) in vmm_gpt_unmap() argument
736 ASSERT(gpt != NULL); in vmm_gpt_unmap()
737 vmm_gpt_walk(gpt, gpa, entries, MAX_GPT_LEVEL); in vmm_gpt_unmap()
743 return (gpt->vgpt_pte_ops->vpeo_pte_is_present(entry)); in vmm_gpt_unmap()
751 vmm_gpt_unmap_region(vmm_gpt_t *gpt, uint64_t addr, uint64_t len) in vmm_gpt_unmap_region() argument
759 if (vmm_gpt_unmap(gpt, gpa) != 0) { in vmm_gpt_unmap_region()
773 vmm_gpt_is_mapped(vmm_gpt_t *gpt, uint64_t *ptep, pfn_t *pfnp, uint_t *protp) in vmm_gpt_is_mapped() argument
784 if (!gpt->vgpt_pte_ops->vpeo_pte_is_present(entry)) { in vmm_gpt_is_mapped()
787 *pfnp = gpt->vgpt_pte_ops->vpeo_pte_pfn(entry); in vmm_gpt_is_mapped()
788 *protp = gpt->vgpt_pte_ops->vpeo_pte_prot(entry); in vmm_gpt_is_mapped()
798 vmm_gpt_reset_accessed(vmm_gpt_t *gpt, uint64_t *entry, bool on) in vmm_gpt_reset_accessed() argument
801 return (gpt->vgpt_pte_ops->vpeo_reset_accessed(entry, on)); in vmm_gpt_reset_accessed()
810 vmm_gpt_reset_dirty(vmm_gpt_t *gpt, uint64_t *entry, bool on) in vmm_gpt_reset_dirty() argument
813 return (gpt->vgpt_pte_ops->vpeo_reset_dirty(entry, on)); in vmm_gpt_reset_dirty()
820 vmm_gpt_query(vmm_gpt_t *gpt, uint64_t *entry, vmm_gpt_query_t query) in vmm_gpt_query() argument
823 return (gpt->vgpt_pte_ops->vpeo_query(entry, query)); in vmm_gpt_query()
830 vmm_gpt_get_pmtp(vmm_gpt_t *gpt, bool track_dirty) in vmm_gpt_get_pmtp() argument
832 const pfn_t root_pfn = gpt->vgpt_root->vgn_host_pfn; in vmm_gpt_get_pmtp()
833 return (gpt->vgpt_pte_ops->vpeo_get_pmtp(root_pfn, track_dirty)); in vmm_gpt_get_pmtp()
840 vmm_gpt_can_track_dirty(vmm_gpt_t *gpt) in vmm_gpt_can_track_dirty() argument
842 return (gpt->vgpt_pte_ops->vpeo_hw_ad_supported()); in vmm_gpt_can_track_dirty()