Lines Matching refs:level
298 unsigned int level = 0; in p2m_get_entry() local
325 for ( level = P2M_ROOT_LEVEL; level < 3; level++ ) in p2m_get_entry()
326 if ( (gfn_x(gfn) & (level_masks[level] >> PAGE_SHIFT)) > in p2m_get_entry()
341 for ( level = P2M_ROOT_LEVEL; level < 3; level++ ) in p2m_get_entry()
343 rc = p2m_next_level(p2m, true, &table, offsets[level]); in p2m_get_entry()
350 entry = table[offsets[level]]; in p2m_get_entry()
364 mfn = mfn_add(mfn, gfn_x(gfn) & ((1UL << level_orders[level]) - 1)); in p2m_get_entry()
372 *page_order = level_orders[level]; in p2m_get_entry()
640 lpae_t entry, unsigned int level) in p2m_free_entry() argument
652 if ( lpae_is_superpage(entry, level) ) in p2m_free_entry()
654 p2m->stats.mappings[level]--; in p2m_free_entry()
658 if ( level == 3 ) in p2m_free_entry()
660 p2m->stats.mappings[level]--; in p2m_free_entry()
667 p2m_free_entry(p2m, *(table + i), level + 1); in p2m_free_entry()
690 unsigned int level, unsigned int target, in p2m_split_superpage() argument
700 unsigned int next_level = level + 1; in p2m_split_superpage()
707 ASSERT(level < target); in p2m_split_superpage()
708 ASSERT(lpae_is_superpage(*entry, level)); in p2m_split_superpage()
742 p2m->stats.shattered[level]++; in p2m_split_superpage()
743 p2m->stats.mappings[level]--; in p2m_split_superpage()
754 level + 1, target, offsets); in p2m_split_superpage()
785 unsigned int level = 0; in __p2m_set_entry() local
810 for ( level = P2M_ROOT_LEVEL; level < target; level++ ) in __p2m_set_entry()
817 &table, offsets[level]); in __p2m_set_entry()
834 entry = table + offsets[level]; in __p2m_set_entry()
840 if ( level < target ) in __p2m_set_entry()
845 ASSERT(lpae_is_superpage(*entry, level)); in __p2m_set_entry()
847 if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) ) in __p2m_set_entry()
853 p2m->stats.mappings[level]++; in __p2m_set_entry()
856 p2m_free_entry(p2m, split_pte, level); in __p2m_set_entry()
872 for ( ; level < target; level++ ) in __p2m_set_entry()
874 rc = p2m_next_level(p2m, true, &table, offsets[level]); in __p2m_set_entry()
884 entry = table + offsets[level]; in __p2m_set_entry()
891 ASSERT(level == target); in __p2m_set_entry()
929 if ( level < 3 ) in __p2m_set_entry()
948 p2m->stats.mappings[level]++; in __p2m_set_entry()
962 p2m_free_entry(p2m, orig_pte, level); in __p2m_set_entry()