STRUCT DRM_PVR_IOCTL_CREATE_CONTEXT_ARGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ struct drm_pvr_ioctl_create_context_args(9) πŸ’œ

okay so this is a page straight out of the Kernel API Manual, and bestie it's giving "one struct, eight fields, zero chill." it's the argument struct you hand over to %DRM_IOCTL_PVR_CREATE_CONTEXT so the driver knows what kind of context you're trying to spin up. let's get into it 🫢


✨ NAME ✨

struct drm_pvr_ioctl_create_context_args β€” literally just the arguments for %DRM_IOCTL_PVR_CREATE_CONTEXT. that's the whole vibe.


🌸 SYNOPSIS 🌸

struct drm_pvr_ioctl_create_context_args {
    __u32 type;
    __u32 flags;
    __s32 priority;
    __u32 handle;
    __u64 static_context_state;
    __u32 static_context_state_len;
    __u32 vm_context_handle;
    __u64 callstack_addr;
 };

look at her. eight fields. flawless. no notes πŸ’…


πŸŽ€ Members πŸŽ€

each field is tagged [IN] (you fill it in) or [OUT] (the driver fills it in for you), so keep an eye on which way the info is flowing, iykyk:

  • type β€” [IN] the type of context you wanna create. this must be one of the values defined by enum drm_pvr_ctx_type β€” no making stuff up, bestie 😭
  • flags β€” [IN] flags for the context. just flags. flags go here ✨
  • priority β€” [IN] how important your new context thinks it is (main character energy, honestly). this must be one of the values defined by enum drm_pvr_ctx_priority
  • handle β€” [OUT] the handle you get back for your brand new context πŸ‘‘
  • static_context_state β€” [IN] pointer to the static context state stream
  • static_context_state_len β€” [IN] length of that static context state, measured in bytes, because units matter πŸ’–
  • vm_context_handle β€” [IN] the handle for the VM context that this context is associated with
  • callstack_addr β€” [IN] the address for the initial call stack pointer 🧚
⚠️ heads up on callstack_addr: it's only valid if type is DRM_PVR_CTX_TYPE_RENDER. any other type and it must be 0. no cap, the driver will not be amused otherwise πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

this list is long long, so buckle up bestie, every single one is here πŸ“

  • 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)
  • 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)
  • 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_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)

like I said. long. but she ate, honestly πŸ”₯


and that's the whole page, bestie πŸ’– this one lives in ./include/uapi/drm, dated October 2026, and it's filed under the Kernel API Manual β€” go forth and create contexts responsibly, mwah πŸ§šβœ¨πŸŽ€

πŸ“¦ where this page comes from