STRUCT DRM_PVR_DEV_QUERY_HEAP_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct drm_pvr_dev_query_heap_info(9) β€” from the Kernel API Manual, bestie πŸ’…

okay so this is a page straight out of the Kernel API Manual and it's literally all about one little struct that's giving "i'm just a container but i'm doing the most". stay with me 🫢


✨ NAME ✨

struct drm_pvr_dev_query_heap_info β€” the container you use to fetch info about the heaps that the device driver supports. that's it, that's the whole gig πŸ’–


🌸 SYNOPSIS 🌸

struct drm_pvr_dev_query_heap_info {
    struct drm_pvr_obj_array heaps;
 };

πŸŽ€ Members πŸŽ€

  • heaps β€” an array of struct drm_pvr_heap. and here's the iconic part: if the pointer is NULL, then the count and stride get updated with the ones that are known to the driver version β€” which is literally there so the caller can allocate without guessing. so considerate of it fr fr ✨

πŸ¦‹ Description πŸ¦‹

okay so lowkey the biggest thing to know: all driver-supported heaps get returned, up to heaps.count. that's the cap, no cap πŸ’€

but plot twist β€” some heaps won't be present on every device, and the way the driver tells you that is by setting struct drm_pvr_heap.size to zero. so if you see a zero size, that heap is a no-show on this device, don't take it personally πŸ™ˆ

and when you're fetching this type, you must set struct drm_pvr_ioctl_dev_query_args.type to DRM_PVR_DEV_QUERY_HEAP_INFO_GET. like, mandatory mandatory. not optional, not a vibe, just do it πŸ‘‘


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/uapi/drm/pvr_drm.h πŸ“
  • PowerVR UAPI(9)
  • struct drm_pvr_obj_array(9)
  • DRM_PVR_OBJ_ARRAY(9)
  • PowerVR IOCTL interface(9)
  • PVR_IOCTL(9)
  • PowerVR IOCTL DEV_QUERY interface(9)
  • struct drm_pvr_dev_query_gpu_info(9)
  • struct drm_pvr_dev_query_runtime_info(9)
  • struct drm_pvr_dev_query_quirks(9)
  • struct drm_pvr_dev_query_enhancements(9)
  • enum drm_pvr_heap_id(9)
  • struct drm_pvr_heap(9)
  • enum drm_pvr_static_data_area_usage(9)
  • struct drm_pvr_static_data_area(9)
  • struct drm_pvr_dev_query_static_data_areas(9)
  • enum drm_pvr_dev_query(9)
  • struct drm_pvr_ioctl_dev_query_args(9)
  • PowerVR IOCTL CREATE_BO interface(9)
  • Flags for CREATE_BO(9)
  • struct drm_pvr_ioctl_create_bo_args(9)
  • PowerVR IOCTL GET_BO_MMAP_OFFSET interface(9)
  • struct drm_pvr_ioctl_get_bo_mmap_offset_args(9)
  • PowerVR IOCTL CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT interfaces(9)
  • struct drm_pvr_ioctl_create_vm_context_args(9)
  • struct drm_pvr_ioctl_destroy_vm_context_args(9)
  • PowerVR IOCTL VM_MAP and VM_UNMAP interfaces(9)
  • struct drm_pvr_ioctl_vm_map_args(9)
  • struct drm_pvr_ioctl_vm_unmap_args(9)
  • PowerVR IOCTL CREATE_CONTEXT and DESTROY_CONTEXT interfaces(9)
  • enum drm_pvr_ctx_priority(9)
  • enum drm_pvr_ctx_type(9)
  • struct drm_pvr_ioctl_create_context_args(9)
  • struct drm_pvr_ioctl_destroy_context_args(9)
  • PowerVR IOCTL CREATE_FREE_LIST and DESTROY_FREE_LIST interfaces(9)
  • struct drm_pvr_ioctl_create_free_list_args(9)
  • struct drm_pvr_ioctl_destroy_free_list_args(9)
  • PowerVR IOCTL CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET interfaces(9)
  • struct drm_pvr_create_hwrt_geom_data_args(9)
  • struct drm_pvr_create_hwrt_rt_data_args(9)
  • struct drm_pvr_ioctl_create_hwrt_dataset_args(9)
  • struct drm_pvr_ioctl_destroy_hwrt_dataset_args(9)
  • PowerVR IOCTL SUBMIT_JOBS interface(9)
  • Flags for the drm_pvr_sync_op object.(9)
  • struct drm_pvr_sync_op(9)
  • Flags for SUBMIT_JOB ioctl geometry command.(9)
  • Flags for SUBMIT_JOB ioctl fragment command.(9)
  • Flags for SUBMIT_JOB ioctl compute command.(9)
  • Flags for SUBMIT_JOB ioctl transfer command.(9)
  • enum drm_pvr_job_type(9)
  • struct drm_pvr_hwrt_data_ref(9)
  • struct drm_pvr_job(9)
  • struct drm_pvr_ioctl_submit_jobs_args(9)

and that's the whole page bestie, you ate that πŸ“ mwah πŸ’œ

sign-off szn: this one lives in ./include/uapi/drm, dated October 2026, and it's titled struct drm_p...ry_heap_info(9) in case you were wondering what the header was wearing. slay 🌈⭐

πŸ“¦ where this page comes from