pvr_mmu_unmap(9)
๐ pvr_mmu_unmap(9) โ the kernel API manual, bestie edition ๐
okay so this is pvr_mmu_unmap from the kernel API manual (section 9, the big-kid kernel-dev section, iykyk), and it's literally the "yeet these pages out of the memory context" function. let's get into it โจ
โจ NAME โจ
pvr_mmu_unmap โ unmap pages from a memory context. that's the whole vibe. bye pages ๐
๐ธ SYNOPSIS ๐ธ
int pvr_mmu_unmap (struct pvr_mmu_op_context *op_ctx , u64 device_addr ,
u64 size );
๐ฆ ARGUMENTS ๐ฆ
op_ctxโ the target MMU op context. your main character struct ๐ซถdevice_addrโ the first device-virtual address to unmap. like, the starting point of the goodbye tour ๐sizeโ how many bytes to unmap, in bytes. yes, bytes. the unit is bytes. i said what i said ๐
๐ DESCRIPTION ๐
so the total amount of device-virtual memory that actually gets unmapped is nr_pages * PVR_DEVICE_PAGE_SIZE. that's the math, no cap ๐งฎโจ
๐ฅ RETURN ๐ฅ
0on success, or- any error code returned by
pvr_page_table_ptr_init, or - any error code returned by
pvr_page_table_ptr_unmap.
like bestie, three possible outcomes and two of them are "a function said no" ๐ญ
๐ SEE ALSO ๐
- Kernel file
./drivers/gpu/drm/imagination/pvr_mmu.c
and the whole friend group, literally the entire extended family, in order:
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),struct pvr_mmu_backing_page(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_map_sgl(9),pvr_mmu_map(9)
ngl that SEE ALSO list ate and left absolutely no crumbs ๐ every single one of them is linked, go read them all, i'll wait ๐
and that's the page!! sign-off time ๐ this little gem lives in ./drivers/gpu/drm/imagination, it's dated October 2026, and the page itself is pvr_mmu_unmap(9) โ mwah, slay, periodt ๐
โจ
๐ฆ 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