pvr_mmu_op_c..._load_tables(9)
π NAME π
okay so bestie, this page is from the Kernel API Manual, and the function is pvr_mmu_op_context_load_tables β literally the glow-up that loads pointers to tables in each level of the page table tree structure you need to reference the physical page that a MMU op context is pointing at. no cap, it's giving βset up the whole map so the page can be foundβ energy π
β¨ SYNOPSIS β¨
int pvr_mmu_op_context_load_tables (struct pvr_mmu_op_context *op_ctx ,
bool should_create , enum pvr_mmu_sync_level load_level_required );
π ARGUMENTS π
op_ctxβ the target MMU op context. that's the main character here πshould_createβ tells the function whether new page tables should be created when empty page table entries are encountered during traversal. so like, do we make new tables or just vibe with what's there? π¦load_level_requiredβ the maximum page table level to load. how high are we climbing, bestie? πΈ
π DESCRIPTION π
if should_create is true, this function may modify the stored required sync level of op_ctx as new page tables are created and inserted into their respective parents. so yeah, it can update the sync-level bookkeeping as it builds out tables β periodt π
since there is only one root page table, it is technically incorrect to call this function with a value of load_level_required greater than or equal to the root level number. like, technically incorrect, bestie π however, this is not explicitly disallowed here. the function won't stop you, it's just not the move. iykyk.
π RETURN π
0on success β¨- any error returned by
pvr_page_table_l1_get_or_createifload_level_required >= 1except-ENXIO, or - any error returned by
pvr_page_table_l0_get_or_createifload_level_required >= 0except-ENXIO.
bestie pls note that -ENXIO gets excluded from both of those error paths β it's literally written that way, don't @ me π
π«Ά SEE ALSO π«Ά
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_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_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)
made with love from ./drivers/gpu/drm/imagination and dated October 2026 π that's the whole page, bestie β go slay your page tables πβ¨
π¦ 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