STRUCT PVR_FW_OBJECT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pvr_fw_object(9) πŸ’–

okay bestie so this is a page out of the Kernel API Manual, and today's main character is struct pvr_fw_object β€” lowkey just a container for firmware memory allocations. that's it, that's the vibe. ✨


✨ SYNOPSIS ✨

here's the whole glow-up, verbatim, no cap:

struct pvr_fw_object {
    struct kref ref_count;
    struct pvr_gem_object *gem;
    struct drm_mm_node fw_mm_node;
    u32 fw_addr_offset;
    void (*init)(void *cpu_ptr, void *priv);
    void *init_priv;
    struct list_head node;
 };

πŸŽ€ Members πŸŽ€

every field, bestie, we're not skipping a single one πŸ’…

  • ref_count β€” the FW object reference counter. it's keeping score fr fr.
  • gem β€” the GEM object backing the FW object. the whole thing is built on top of it 🫢
  • fw_mm_node β€” the node representing the mapping in FW address space. ⚠️ important: pvr_obj->lock must be held when writing. like, not optional, not a suggestion, hold the lock.
  • fw_addr_offset β€” the virtual address offset of the firmware mapping. this one's only valid if flags has PVR_GEM_OBJECT_FLAGS_FW_MAPPED set. no flag, no validity, iykyk πŸ™ˆ
  • init β€” the initialisation callback. it gets called on object creation and on FW hard reset πŸ”₯. and heads up: the object will have been zeroed before this is called, so don't come for it expecting leftovers.
  • init_priv β€” private data for the initialisation callback. its little emotional support pointer πŸŽ€
  • node β€” the node for the firmware object list. every baddie needs a linked list to belong to πŸ’œ

🌈 SEE ALSO 🌈

go read these next, bestie, they're iconic:


and that's the whole page babes 🌸 this one lives in ./drivers/gpu/drm/imagination, dated October 2026 β€” so yeah, future-coded. slay. πŸ’…πŸ‘‘
πŸ“¦ where this page comes from