pvr_mmu_op_c...xt_next_page(9)
π NAME π
okay so bestie, this page lives in the Kernel API Manual β the header shortens the whole thing to pvr_mmu_op_c...xt_next_page(9), iykyk β and the main character is:
pvr_mmu_op_context_next_page β Advance the current page of an MMU op context. π
β¨
πΈ SYNOPSIS πΈ
int pvr_mmu_op_context_next_page (struct pvr_mmu_op_context *op_ctx , bool should_create );
π ARGUMENTS π
op_ctxβ Target MMU op context. That's the target vibe right there. π«Άshould_createβ Specify whether new page tables should be created when empty page table entries are encountered during traversal. So basically: new tables or not? π
π¦ DESCRIPTION π¦
okay so if should_create is false, it is the caller's responsibility to verify that the state of the table references in op_ctx is valid on return. no cap. If -ENXIO is returned, at least one of the table references is invalid. It should be noted that op_ctx as a whole will be left in a valid state if -ENXIO is returned, unlike other error codes. The caller should check which references are invalid by comparing them to NULL. Only &ptr->l2_table is guaranteed to be valid, since it represents the root of the page table tree structure. πβ¨
β RETURN β
0on success, slay. β-EPERMif the operation would wrap at the top of the page table hierarchy. π-ENXIOifshould_createisfalseand a page table of any level would have otherwise been created. π«- Any error returned while attempting to create missing page tables if
should_createistrue. π
π₯ SEE ALSO π₯
Kernel file ./drivers/gpu/drm/imagination/pvr_mmu.c β yes bestie, that's the source file. And then the whole friend group:
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)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)
before you close the tab, bestie: this page's footer info is source ./drivers/gpu/drm/imagination, date October 2026, and page tag pvr_mmu_op_c...xt_next_page(9). that's the whole sign-off, now wrapped in a bow ππ
π¦ 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