STRUCT PVR_MMU_BACKING_PAGE(9)
π struct pvr_mmu_backing_page(9) π
okay so we're in the Kernel API Manual bestie, and this page is literally just about one (1) little struct. no cap. her whole job? being a single page that backs a page table. any level. she's flexible like that. π
πΈ NAME πΈ
struct pvr_mmu_backing_page β the icon herself: represents a single page used to back a page table of any level.
like, any level. l0, l1, l2, she doesn't discriminate. queen behavior fr fr. π
β¨ SYNOPSIS β¨
struct pvr_mmu_backing_page {
dma_addr_t dma_addr;
void *host_ptr;
};
two members. that's it. that's the whole struct. she's minimalist, she's chic, she's giving less-is-more. π
π«Ά MEMBERS π«Ά
dma_addrβ the type isdma_addr_t, and this is the DMA address of this page. yep, that's the one. π«host_ptrβ typevoid *, and this is the CPU address of this page. so you got your device-side view and your CPU-side view, both living in the same struct, coexisting, thriving. π
π SEE ALSO π
okay this part is a lot, hydrate first bestie π β starting with the kernel file herself:
- Kernel file
./drivers/gpu/drm/imagination/pvr_mmu.c
and now the full squad, in order, no skips, no cap:
pvr_mmu_set_flush_flags(9)pvr_mmu_flush_request_all(9)pvr_mmu_flush_exec(9)PowerVR Virtual Memory Handling(9)PowerVR Virtual Memory Handling (constants)(9)MMU backing pages(9)MMU backing pages (constants)(9)pvr_mmu_backing_page_init(9)pvr_mmu_backing_page_fini(9)pvr_mmu_backing_page_sync(9)Raw page tables(9)struct pvr_page_table_l2_entry_raw(9)pvr_page_table_l2_entry_raw_set(9)struct pvr_page_table_l1_entry_raw(9)pvr_page_table_l1_entry_raw_set(9)struct pvr_page_table_l0_entry_raw(9)struct pvr_page_flags_raw(9)pvr_page_table_l0_entry_raw_set(9)pvr_page_flags_raw_create(9)struct pvr_page_table_l2_raw(9)struct pvr_page_table_l1_raw(9)struct pvr_page_table_l0_raw(9)Mirror page tables(9)struct pvr_page_table_l2(9)pvr_page_table_l2_init(9)pvr_page_table_l2_fini(9)pvr_page_table_l2_sync(9)pvr_page_table_l2_get_raw(9)pvr_page_table_l2_get_entry_raw(9)pvr_page_table_l2_entry_is_valid(9)struct pvr_page_table_l1(9)pvr_page_table_l1_init(9)pvr_page_table_l1_free(9)pvr_page_table_l1_sync(9)pvr_page_table_l1_get_raw(9)pvr_page_table_l1_get_entry_raw(9)pvr_page_table_l1_entry_is_valid(9)struct pvr_page_table_l0(9)pvr_page_table_l0_init(9)pvr_page_table_l0_free(9)pvr_page_table_l0_sync(9)pvr_page_table_l0_get_raw(9)pvr_page_table_l0_get_entry_raw(9)pvr_page_table_l0_entry_is_valid(9)struct pvr_mmu_context(9)struct pvr_page_table_ptr(9)struct pvr_mmu_op_context(9)pvr_page_table_l2_insert(9)pvr_page_table_l2_remove(9)pvr_page_table_l1_insert(9)pvr_page_table_l1_remove(9)pvr_page_table_l0_insert(9)pvr_page_table_l0_remove(9)Page table index utilities(9)pvr_page_table_l2_idx(9)pvr_page_table_l1_idx(9)pvr_page_table_l0_idx(9)High-level page table operations(9)pvr_page_table_l1_get_or_insert(9)pvr_page_table_l0_get_or_insert(9)pvr_mmu_context_create(9)pvr_mmu_context_destroy(9)pvr_mmu_get_root_table_dma_addr(9)pvr_page_table_l1_alloc(9)pvr_page_table_l0_alloc(9)pvr_mmu_op_context_require_sync(9)pvr_mmu_op_context_sync_manual(9)pvr_mmu_op_context_sync_partial(9)pvr_mmu_op_context_sync(9)pvr_mmu_op_context_load_tables(9)pvr_mmu_op_context_set_curr_page(9)pvr_mmu_op_context_next_page(9)Single page operations(9)pvr_page_create(9)pvr_page_destroy(9)pvr_mmu_op_context_destroy(9)pvr_mmu_op_context_create(9)pvr_mmu_op_context_unmap_curr_page(9)pvr_mmu_unmap(9)pvr_mmu_map_sgl(9)pvr_mmu_map(9)
seriously, that's the whole list. if you were looking for a short SEE ALSO you came to the wrong page bestie π
β¨ that's the whole page, you're officially educated β¨
sign-off time π β this little beauty lives in the source ./drivers/gpu/drm/imagination, the version stamp on her is October 2026, and the title at the bottom line is β you guessed it β struct pvr_mmu_backing_page(9). go forth and back those page tables, bestie. π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms