Lines Matching refs:gfn
131 unsigned long gfn, uint32_t shift, uint32_t max) in p2m_find_entry() argument
140 gfn, *gfn_remainder, shift, index, max); in p2m_find_entry()
186 unsigned long *gfn_remainder, unsigned long gfn, u32 shift, in p2m_next_level() argument
193 if ( !(p2m_entry = p2m_find_entry(*table, gfn_remainder, gfn, in p2m_next_level()
210 p2m->write_p2m_entry(p2m, gfn, p2m_entry, new_entry, level + 1); in p2m_next_level()
258 p2m->write_p2m_entry(p2m, gfn, l1_entry + i, new_entry, level); in p2m_next_level()
265 p2m->write_p2m_entry(p2m, gfn, p2m_entry, new_entry, level + 1); in p2m_next_level()
348 static int do_recalc(struct p2m_domain *p2m, unsigned long gfn) in do_recalc() argument
351 unsigned long gfn_remainder = gfn; in do_recalc()
361 pent = p2m_find_entry(table, &remainder, gfn, in do_recalc()
373 p2m_is_logdirty_range(p2m, gfn & mask, gfn | ~mask) >= 0 ) in do_recalc()
377 err = p2m_next_level(p2m, &table, &gfn_remainder, gfn, in do_recalc()
390 p2m->domain->domain_id, gfn, level); in do_recalc()
400 p2m->write_p2m_entry(p2m, gfn - remainder, &ptab[i], in do_recalc()
407 p2m->write_p2m_entry(p2m, gfn, pent, e, level + 1); in do_recalc()
412 pent = p2m_find_entry(table, &gfn_remainder, gfn, in do_recalc()
423 p2m->domain->domain_id, gfn, level); in do_recalc()
425 nt = p2m_recalc_type_range(true, ot, p2m, gfn & mask, gfn | ~mask); in do_recalc()
459 p2m->write_p2m_entry(p2m, gfn, pent, e, level + 1); in do_recalc()
488 unsigned long gfn = gfn_x(gfn_); in p2m_pt_set_entry() local
489 unsigned long i, gfn_remainder = gfn; in p2m_pt_set_entry()
515 u64 gfn, mfn; in p2m_pt_set_entry() member
520 t.gfn = gfn; in p2m_pt_set_entry()
537 rc = do_recalc(p2m, gfn); in p2m_pt_set_entry()
542 rc = p2m_next_level(p2m, &table, &gfn_remainder, gfn, in p2m_pt_set_entry()
553 p2m_entry = p2m_find_entry(table, &gfn_remainder, gfn, in p2m_pt_set_entry()
585 p2m->write_p2m_entry(p2m, gfn, p2m_entry, entry_content, 3); in p2m_pt_set_entry()
590 rc = p2m_next_level(p2m, &table, &gfn_remainder, gfn, in p2m_pt_set_entry()
601 rc = p2m_next_level(p2m, &table, &gfn_remainder, gfn, in p2m_pt_set_entry()
607 p2m_entry = p2m_find_entry(table, &gfn_remainder, gfn, in p2m_pt_set_entry()
640 p2m->write_p2m_entry(p2m, gfn, p2m_entry, entry_content, 1); in p2m_pt_set_entry()
645 p2m_entry = p2m_find_entry(table, &gfn_remainder, gfn, in p2m_pt_set_entry()
677 p2m->write_p2m_entry(p2m, gfn, p2m_entry, entry_content, 2); in p2m_pt_set_entry()
683 && (gfn + (1UL << page_order) - 1 > p2m->max_mapped_pfn) ) in p2m_pt_set_entry()
684 p2m->max_mapped_pfn = gfn + (1UL << page_order) - 1; in p2m_pt_set_entry()
694 amd_iommu_flush_pages(p2m->domain, gfn, page_order); in p2m_pt_set_entry()
699 rc = iommu_map_page(p2m->domain, gfn + i, mfn_x(mfn) + i, in p2m_pt_set_entry()
705 if ( iommu_unmap_page(p2m->domain, gfn + i) ) in p2m_pt_set_entry()
714 int ret = iommu_unmap_page(p2m->domain, gfn + i); in p2m_pt_set_entry()
740 unsigned long gfn = gfn_x(gfn_); in p2m_pt_get_entry() local
741 paddr_t addr = ((paddr_t)gfn) << PAGE_SHIFT; in p2m_pt_get_entry()
761 if ( gfn > p2m->max_mapped_pfn ) in p2m_pt_get_entry()
768 if ( (gfn & ~((1UL << *page_order) - 1)) > in p2m_pt_get_entry()
821 p2m_flags_to_type(flags), p2m, gfn); in p2m_pt_get_entry()
860 p2m_flags_to_type(flags), p2m, gfn); in p2m_pt_get_entry()
896 *t = p2m_recalc_type(recalc || _needs_recalc(flags), l1t, p2m, gfn); in p2m_pt_get_entry()
907 unsigned long gfn = 0; in p2m_pt_change_entry_type_global() local
924 p2m->write_p2m_entry(p2m, gfn, &tab[i], e, 4); in p2m_pt_change_entry_type_global()
927 gfn += 1UL << (L4_PAGETABLE_SHIFT - PAGE_SHIFT); in p2m_pt_change_entry_type_global()
980 unsigned long mfn, gfn, m2pfn; in p2m_pt_audit_p2m() local
997 gfn = 0; in p2m_pt_audit_p2m()
1002 gfn += 1 << (L4_PAGETABLE_SHIFT - PAGE_SHIFT); in p2m_pt_audit_p2m()
1012 gfn += 1 << (L3_PAGETABLE_SHIFT - PAGE_SHIFT); in p2m_pt_audit_p2m()
1027 if ( m2pfn != (gfn + i2) ) in p2m_pt_audit_p2m()
1031 " -> gfn %#lx\n", gfn+i2, mfn+i2, in p2m_pt_audit_p2m()
1035 gfn += 1 << (L3_PAGETABLE_SHIFT - PAGE_SHIFT); in p2m_pt_audit_p2m()
1049 gfn += 1 << (L2_PAGETABLE_SHIFT - PAGE_SHIFT); in p2m_pt_audit_p2m()
1062 if ( (m2pfn != (gfn + i1)) && in p2m_pt_audit_p2m()
1067 " -> gfn %#lx\n", gfn+i1, mfn+i1, in p2m_pt_audit_p2m()
1072 gfn += 1 << (L2_PAGETABLE_SHIFT - PAGE_SHIFT); in p2m_pt_audit_p2m()
1078 for ( i1 = 0; i1 < L1_PAGETABLE_ENTRIES; i1++, gfn++ ) in p2m_pt_audit_p2m()
1092 if ( m2pfn != gfn && in p2m_pt_audit_p2m()
1099 " -> gfn %#lx\n", gfn, mfn, m2pfn); in p2m_pt_audit_p2m()
1101 " -> gfn %#lx\n", gfn, mfn, m2pfn); in p2m_pt_audit_p2m()