folio_pfn(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ folio_pfn ✨

okay bestie, so this is a page from the Kernel API Manual and it's genuinely so simple it's almost criminal πŸŽ€ let me put you on.


πŸ’– NAME πŸ’–

folio_pfn β€” literally just returns the Page Frame Number of a folio. that's it. that's the whole gig. periodt ✨


🌸 SYNOPSIS 🌸

unsigned long folio_pfn (const struct folio *folio );

yep, one arg, one unsigned long back. chef's kiss 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • folio β€” the folio. THE folio. the one and only. you hand it in, she does her thing πŸ’…

⭐ DESCRIPTION ⭐

okay so here's the lore: a folio can contain multiple pages at once, and those pages have consecutive Page Frame Numbers. like they're sitting next to each other in a row, holding hands 🫢 so if you know where the folio starts, you know where everything is. iconic behaviour, no notes.


πŸ”₯ RETURN πŸ”₯

it gives you back the Page Frame Number of the first page in the folio β€” the front of the line, the main character πŸ‘‘ ngl that's exactly what you'd want.


🌈 SEE ALSO 🌈

the friend group is HUGE, buckle up bestie, we're meeting everyone πŸ’€ located in the Kernel file ./include/linux/mm.h:

folio_page_idx(9), vma_flag_t(9), fault_flag_allow_retry_first(9), vma_kernel_pagesize(9), folio_order(9), folio_reset_order(9), folio_mapcount(9), folio_mapped(9), thp_order(9), thp_size(9), folio_get(9), folio_put(9), folio_put_refs(9), folios_put(9), vma_flags_is_cow_mapping(9), vma_is_cow_mapping(9), vma_desc_is_cow_mapping(9), folio_mk_pte(9), folio_mk_pmd(9), folio_mk_pud(9), folio_maybe_dma_pinned(9), is_zero_page(9), is_zero_folio(9), folio_nr_pages(9), folio_next(9), folio_shift(9), folio_size(9), folio_maybe_mapped_shared(9), folio_expected_ref_count(9), zap_vma(9), ptdesc_address(9), ptdesc_set_kernel(9), ptdesc_clear_kernel(9), ptdesc_test_kernel(9), pagetable_alloc(9), pagetable_free(9), vma_lookup(9), vma_start_pgoff(9), vma_end_pgoff(9), vma_last_pgoff(9), vma_start_anon_pgoff(9), vma_end_anon_pgoff(9), vma_last_anon_pgoff(9), mmap_action_remap(9), mmap_action_remap_full(9), mmap_action_ioremap(9), mmap_action_ioremap_full(9), mmap_action_simple_ioremap(9), mmap_action_map_kernel_pages(9), mmap_action_map_kernel_pages_full(9), range_is_subset(9), range_in_vma(9), range_in_vma_desc(9), clear_pages(9)


🫢 that's the whole page bestie, go forth and compute your page frames. iykyk πŸ’œ

and finally, the cute lil sign-off: this one lives in the ./include/linux directory, it's from the October 2026 edition, and yeah β€” the manual name up top is folio_pfn(9) 🌸 mwah, slay, see you in the next one πŸ’…βœ¨

πŸ“¦ where this page comes from