POWERVR IOCTL INTERFACE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ PowerVR IOCTL interface πŸ’œ

okay bestie, welcome to the PowerVR IOCTL interface page β€” section 9 of the Kernel API Manual, no cap. this one is basically a hub page: it's not here to dump the whole story, it's here to point you at the entire PowerVR UAPI friend group 😭✨ so consider this your group-chat pinned message, the roadmap to literally every struct, enum, ioctl and flags page you're gonna need 🫢

think of it as main character energy for the docs β€” it doesn't do the lore itself, it just introduces you to everyone at the party πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

okay so here's the full squad, in order, don't skip anyone, we don't do that here πŸŽ€

  • the kernel file itself, the source of truth: ./include/uapi/drm/pvr_drm.h πŸ‘‘
  • PowerVR UAPI(9) β€” the big-picture intro vibe
  • struct drm_pvr_obj_array(9)
  • DRM_PVR_OBJ_ARRAY(9)
  • PVR_IOCTL(9)
  • PowerVR IOCTL DEV_QUERY interface(9) β€” the querying era ✨
  • 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)
  • struct drm_pvr_dev_query_heap_info(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) β€” buffer objects, the moment 🫢
  • 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) β€” the two-for-one, we love a package deal πŸ’–
  • 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) β€” the allocator besties 🌸
  • 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) β€” ray tracing squad, iconic πŸ”₯
  • 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) β€” the one that actually sends work, the main event πŸ‘‘
  • Flags for the drm_pvr_sync_op object.(9) β€” yes that trailing period is real, copy it exactly, no editing the source ngl πŸ™ˆ
  • 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)
lowkey the move here is: pick the ioctl you actually care about, go read that page, and come back when you need the next one πŸ’… the whole UAPI is linked up like a friendship bracelet πŸŽ€

and that's the whole page bestie, fr fr 🌈 this came out of ./include/uapi/drm and it's dated October 2026 β€” so go forth, read the structs, and slay your ioctl journey πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from