pvr_page_table_l1_remove(9)
π
pvr_page_table_l1_remove(9) β from the Kernel API Manual π
okay bestie, sit down, we're doing page table surgery today and honestly? it's giving cleanup era β¨
πΈ NAME πΈ
pvr_page_table_l1_remove β Remove a level 0 page table from a level 1 page table.
(no because why is the name l1 and the description says level 0, iykyk, we don't question the lore π β just copy it exactly, that's the vibe)
β¨ SYNOPSIS β¨
void pvr_page_table_l1_remove (struct pvr_mmu_op_context *op_ctx );
one function, one argument, zero drama π«Ά
π¦ ARGUMENTS π¦
op_ctxβ the target MMU op context, and it's literally pointing at the L1 entry we're about to remove π that's its whole job.
π DESCRIPTION π
so here's the tea π β if this function results in the L1 table becoming empty, it gets removed from its parent level 2 page table and destroyed. like, gone gone. it truly said "my work here is done" and exited the chat ππ₯
β οΈ and now the serious part, bestie, no cap: it is the caller's responsibility to make sure op_ctx.curr_page points to a valid L1 entry. not the function's problem, yours. check it before you wreck it, fr fr π
π SEE ALSO π
the whole extended friend group, we love a linked list of lore π
- Kernel file
./drivers/gpu/drm/imagination/pvr_mmu.c 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_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)
and that's the whole page, bestie π§π this one's living in ./drivers/gpu/drm/imagination, dated October 2026 β iconic of her honestly, ate and left no crumbs ππ
π¦ 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