STRUCT PVR_PAGE_TABLE_L0(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct pvr_page_table_l0(9) πŸ’…

okay so this is a page straight out of the Kernel API Manual and it's literally all about struct pvr_page_table_l0 β€” a wrapped level 0 page table. like, the babiest table in the tree, but make it wrapped. bestie, let's get into it πŸŽ€


✨ NAME ✨

struct pvr_page_table_l0 β€” a wrapped level 0 page table, no cap. that's the whole vibe πŸ¦‹


🌸 SYNOPSIS 🌸

here's the actual shape of her, copy it exactly bestie:

struct pvr_page_table_l0 {
    struct pvr_mmu_backing_page backing_page;
    union {
      struct pvr_page_table_l1 *parent;
      struct pvr_page_table_l0 *next_free;
    };
    u16 parent_idx;
    u16 entry_count;
 };

🫢 Members 🫢

okay so each of these fields has main character energy in its own way:

  • backing_page β€” a handle to the memory which holds the raw equivalent of this table. For internal use only. like, don't touch, iykyk πŸ™ˆ
  • {unnamed_union} β€” anonymous. yes, she's mysterious, she has no name, that's the point ✨
    • parent β€” the parent of this node in the page table tree structure.

this is also a mirror table. πŸͺž

only valid when the L0 page table is active. when the L0 page table has been removed and queued for destruction, the next_free field should be used instead. so like, vibe check before you read it, fr fr.

  • next_free β€” pointer to the next L0 page table to take/free.

used to form a linked list of L0 page tables. this gets used when preallocating tables and when the page table has been removed and queued for destruction. lowkey the cleanup crew πŸ’€

  • parent_idx β€” the index of the entry in the parent table (see parent) which corresponds to this table.
  • entry_count β€” the current number of valid entries (that we know of) in this table. this value is essentially a refcount β€” the table is destroyed when this value is decremented to zero by pvr_page_table_l0_remove. so like, every remove is her clock ticking down 😭 iconic behaviour honestly.

πŸ¦‹ Description πŸ¦‹

to access the raw part of this table, use pvr_page_table_l0_get_raw. alternatively, to access a raw entry directly, use pvr_page_table_l0_get_entry_raw. pick your fighter πŸ’…

there is no mirror representation of an individual page, so this type has no entries member. not a bug, just her design. periodt.


πŸ”₯ SEE ALSO πŸ”₯


and that's the whole page bestie, go forth and page-table responsibly πŸ’œ

✧ο½₯゚ source: ./drivers/gpu/drm/imagination Β· October 2026 Β· struct pvr_page_table_l0(9) ゚ο½₯✧ πŸ§šβ€β™€οΈπŸ’–

πŸ“¦ where this page comes from