Lines Matching refs:pfn
255 pfn_t pfn; in xen_assign_pfn() local
266 pfn = mfn_to_pfn_mapping[mfn]; in xen_assign_pfn()
267 if (pfn < mfn_count && mfn_list[pfn] == mfn) in xen_assign_pfn()
276 pfn = (pfn_t)mfn | PFN_IS_FOREIGN_MFN; in xen_assign_pfn()
277 if (pfn == mfn) in xen_assign_pfn()
279 return (pfn); in xen_assign_pfn()
283 xen_release_pfn(pfn_t pfn) in xen_release_pfn() argument
285 if (pfn == PFN_INVALID) in xen_release_pfn()
287 if ((pfn & PFN_IS_FOREIGN_MFN) == 0) in xen_release_pfn()
292 pfn_is_foreign(pfn_t pfn) in pfn_is_foreign() argument
294 if (pfn == PFN_INVALID) in pfn_is_foreign()
296 return ((pfn & PFN_IS_FOREIGN_MFN) != 0); in pfn_is_foreign()
310 pfn_to_mfn(pfn_t pfn) in pfn_to_mfn() argument
312 if (pfn == PFN_INVALID) in pfn_to_mfn()
315 if (pfn & PFN_IS_FOREIGN_MFN) in pfn_to_mfn()
316 return (pfn & ~PFN_IS_FOREIGN_MFN); in pfn_to_mfn()
318 if (pfn >= mfn_count) in pfn_to_mfn()
319 panic("pfn_to_mfn(): illegal PFN 0x%lx", pfn); in pfn_to_mfn()
321 return (mfn_list[pfn]); in pfn_to_mfn()
333 pfn_t pfn; in mfn_to_pfn() local
348 pfn = (pfn_t)mfn | PFN_IS_FOREIGN_MFN; in mfn_to_pfn()
350 pfn = mfn_to_pfn_mapping[mfn]; in mfn_to_pfn()
352 if (pfn == PFN_INVALID || pfn >= mfn_count || in mfn_to_pfn()
353 pfn_to_mfn(pfn) != mfn) in mfn_to_pfn()
354 pfn = (pfn_t)mfn | PFN_IS_FOREIGN_MFN; in mfn_to_pfn()
368 return (pfn); in mfn_to_pfn()
390 pfn_t pfn = mfn_to_pfn(mmu_btop(ma)); in ma_to_pa() local
392 if (pfn == PFN_INVALID) in ma_to_pa()
394 return (pfn_to_pa(pfn) + (ma & MMU_PAGEOFFSET)); in ma_to_pa()
402 #define CHECK_PAGE_LOCK(pfn) { \ argument
403 page_t *pp = page_numtopp_nolock(pfn); \
406 pfn); \
410 #define CHECK_PAGE_LOCK(pfn) argument
417 reassign_pfn(pfn_t pfn, mfn_t mfn) in reassign_pfn() argument
423 ASSERT(pfn != PFN_INVALID); in reassign_pfn()
424 ASSERT(!pfn_is_foreign(pfn)); in reassign_pfn()
426 ASSERT(pfn < mfn_count); in reassign_pfn()
427 update_contig_pfnlist(pfn, mfn_list[pfn], mfn); in reassign_pfn()
429 CHECK_PAGE_LOCK(pfn); in reassign_pfn()
430 if (kpm_vbase != NULL && xen_kpm_page(pfn, 0) < 0) in reassign_pfn()
432 mfn_list[pfn] = mfn; in reassign_pfn()
439 if (mfn_list[pfn] == MFN_INVALID) { in reassign_pfn()
440 CHECK_PAGE_LOCK(pfn); in reassign_pfn()
442 mfn_list[pfn] = mfn; in reassign_pfn()
445 t.val = pfn; in reassign_pfn()
451 if (kpm_vbase != NULL && xen_kpm_page(pfn, PT_VALID | PT_WRITABLE) < 0) in reassign_pfn()