STRUCT PVR_PAGE_TABLE_L1_ENTRY_RAW(9)
π NAME π
okay bestie, welcome to the Kernel API Manual for struct pvr_page_table_l1_entry_raw(9) π. This is literally a single entry in a level 1 page table. That's the whole name, no cap.
πΈ SYNOPSIS πΈ
the struct is giving minimal, and the code is exactly:
struct pvr_page_table_l1_entry_raw {
u64 val;
};
π Members π
valβ The raw value of this entry. the payload, the tea, the whole thing π
π¦ Description π¦
This type is a structure for type-checking purposes. At compile-time, its size is checked against ROGUE_MMUCTRL_ENTRY_SIZE_PD_VALUE β yes, bestie, the compiler is doing a size vibe check and it is not playing around. π
The value stored in this structure can be decoded using the following bitmap:
FLAT-TABLE: the doc's bitmap metadata says :widths: 1 5 and :stub-columns: 1. here's every bit, no skipping:
63..41β (reserved)40β Pending: When valid bit is not set, indicates that a valid entry is pending and the MMU should wait for the driver to map the entry. This is used to support page demand mapping of memory. the MMU is literally waiting on the driver, iconic.39..5β Level 0 Page Table Base Address: The way this value is interpreted depends on the page size. Bits not specified in the table below (e.g. bits11..5for page size4KiB) should be considered reserved.
This table shows the bits used in an L1 page table entry to represent the Physical Table Base Address for a given Page Size. Since each L1 page table entry covers 2MiB of address space, the maximum page size is 2MiB.
The nested flat-table metadata is :widths: 1 1 1 1, :header-rows: 1, :stub-columns: 1. The columns are Page size, L0 page table base address bits, Number of L0 page table entries, and Size of L0 page table.
- Page size
4KiBβ L0 page table base address bits:39..12; number of L0 page table entries:512; size of L0 page table:4KiB. - Page size
16KiBβ L0 page table base address bits:39..10; number of L0 page table entries:128; size of L0 page table:1KiB. - Page size
64KiBβ L0 page table base address bits:39..8; number of L0 page table entries:32; size of L0 page table:256B. - Page size
256KiBβ L0 page table base address bits:39..6; number of L0 page table entries:8; size of L0 page table:64B. - Page size
1MiBβ L0 page table base address bits:39..5 (4 = '0'); number of L0 page table entries:2; size of L0 page table:16B. - Page size
2MiBβ L0 page table base address bits:39..5 (4..3 = '00'); number of L0 page table entries:1; size of L0 page table:8B.
4β (reserved)3..1β Page Size: Sets the page size, from4KiBto2MiB.0β Valid: Indicates that the entry contains a valid L0 page table. If the valid bit is not set, then an attempted use of the page would result in a page fault. page fault era avoided, bestie.
π SEE ALSO π
Kernel file: ./drivers/gpu/drm/imagination/pvr_mmu.c β go look at the source, bestie, it's all there.
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)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)
made with π from the source ./drivers/gpu/drm/imagination, dated October 2026, and the footer tag is struct pvr_p...l1_entry_raw(9). bye bestie, go slay those 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