STRUCT PVR_FILE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct pvr_file(9) ✨

okay so this is the struct pvr_file page from the Kernel API Manual β€” sit down bestie, we're learning about powervr today πŸ’–

🌸 NAME 🌸

struct pvr_file β€” the powervr-specific data that gets assigned to &struct drm_file.driver_priv. literally what it says on the tin, no cap 🫢


πŸŽ€ SYNOPSIS πŸŽ€

struct pvr_file {
    struct drm_file *file;
    struct pvr_device *pvr_dev;
    struct xarray ctx_handles;
    struct xarray free_list_handles;
    struct xarray hwrt_handles;
    struct xarray vm_ctx_handles;
    struct list_head contexts;
 };

look at her. iconic. main character struct energy πŸ‘‘


πŸ’… Members πŸ’…

  • file β€” a reference to the parent struct drm_file. ⚠️ and listen: do not access this member directly β€” call from_pvr_file instead. fr fr, that's the rule πŸ™ˆ
  • pvr_dev β€” a reference to the powervr-specific wrapper for the associated device. it's giving efficiency, because it saves you from repeated calls to to_pvr_device ✨
  • ctx_handles β€” array of contexts belonging to this file. array members are of type "struct pvr_context *". this array is used to allocate handles returned to userspace πŸŽ€
  • free_list_handles β€” array of free lists belonging to this file. array members are of type "struct pvr_free_list *". this array is used to allocate handles returned to userspace πŸ¦‹
  • hwrt_handles β€” array of HWRT datasets belonging to this file. array members are of type "struct pvr_hwrt_dataset *". this array is used to allocate handles returned to userspace 🌸
  • vm_ctx_handles β€” array of VM contexts belonging to this file. array members are of type "struct pvr_vm_context *". this array is used to allocate handles returned to userspace πŸ’œ
  • contexts β€” PVR context list. short and sweet, we love her πŸ’«

πŸ‘€ SEE ALSO πŸ‘€

the whole friend group, in the order the page gave them:

kernel file ./drivers/gpu/drm/imagination/pvr_device.h struct pvr_gpu_id(9), struct pvr_fw_version(9), struct pvr_device_data(9), struct pvr_device(9), PVR_HAS_FEATURE(9), PVR_FEATURE_VALUE(9), PVR_HAS_QUIRK(9), PVR_HAS_ENHANCEMENT(9), PVR_PACKED_BVNC(9), pvr_gpu_id_to_packed_bvnc(9), PVR_CR_FIELD_GET(9), pvr_cr_read32(9), pvr_cr_read64(9), pvr_cr_write32(9), pvr_cr_write64(9), pvr_cr_poll_reg32(9), pvr_cr_poll_reg64(9), pvr_round_up_to_cacheline_size(9), IOCTL validation helpers(9), pvr_ioctl_union_padding_check(9), PVR_STATIC_ASSERT_64BIT_ALIGNED(9), PVR_IOCTL_UNION_PADDING_CHECK(9)


and that's the whole thing, bestie πŸ’– this one lives in ./drivers/gpu/drm/imagination, it's dated October 2026, and it's officially titled struct pvr_file(9) in the Kernel API Manual. periodt. πŸŽ€βœ¨πŸ‘‘

πŸ“¦ where this page comes from