Lines Matching defs:pfn

170 	unsigned long pfn = page_to_pfn(page);
184 index = pfn - round_down(node_start_pfn(page_to_nid(page)),
250 unsigned long pfn = page_to_pfn(page);
251 struct mem_section *section = __pfn_to_section(pfn);
263 return get_entry(page_ext, pfn);
283 static int __meminit init_section_page_ext(unsigned long pfn, int nid)
289 section = __pfn_to_section(pfn);
298 * The value stored in section->page_ext is (base - pfn)
310 * The passed "pfn" may not be aligned to SECTION. For the calculation
313 pfn &= PAGE_SECTION_MASK;
314 section->page_ext = (void *)base - page_ext_size * pfn;
337 static void __free_page_ext(unsigned long pfn)
342 ms = __pfn_to_section(pfn);
355 base = get_entry(base, pfn);
359 static void __invalidate_page_ext(unsigned long pfn)
364 ms = __pfn_to_section(pfn);
375 unsigned long start, end, pfn;
381 for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION)
382 fail = init_section_page_ext(pfn, nid);
387 end = pfn - PAGES_PER_SECTION;
388 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
389 __free_page_ext(pfn);
397 unsigned long start, end, pfn;
411 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
412 __invalidate_page_ext(pfn);
416 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
417 __free_page_ext(pfn);
450 unsigned long pfn;
464 * scan [start_pfn, the biggest section's pfn < end_pfn) here.
466 for (pfn = start_pfn; pfn < end_pfn;
467 pfn = ALIGN(pfn + 1, PAGES_PER_SECTION)) {
469 if (!pfn_valid(pfn))
474 * -------------pfn-------------->
477 if (pfn_to_nid(pfn) != nid)
479 if (init_section_page_ext(pfn, nid))
501 * @pfn: PFN of the page we're interested in.
503 * Must be called with RCU read lock taken and @pfn must be valid.
507 struct page_ext *page_ext_lookup(unsigned long pfn)
509 return lookup_page_ext(pfn_to_page(pfn));