STRUCT DRM_PVR_IOCTL_GET_BO_MMAP_OFFSET_ARGS(9)
π struct drm_pvr_ioctl_get_bo_mmap_offset_args β from the Kernel API Manual β¨
okay so bestie, we're in the Kernel API Manual today and this page is all about struct drm_pvr_ioctl_get_bo_mmap_offset_args. yes that's a whole mouthful, i know, breathe π«Ά
πΈ NAME πΈ
struct drm_pvr_ioctl_get_bo_mmap_offset_args β literally just the arguments for %DRM_IOCTL_PVR_GET_BO_MMAP_OFFSET. that's it, that's the whole job π
β¨ SYNOPSIS β¨
struct drm_pvr_ioctl_get_bo_mmap_offset_args {
__u32 handle;
__u32 _padding_4;
__u64 offset;
};
look at her. three fields. immaculate vibes π
π Members π
handleβ [IN] the GEM handle of the buffer object you wanna map. this is the one you actually care about, she's the main character π_padding_4β Reserved. this field must be zeroed. no cap, do not put anything cute in here, just zeros πoffsetβ [OUT] the fake offset you're gonna use in the realmmapcall. it's fake but it's iconic β¨
π¦ Description π¦
okay so here's the tea π β like other DRM drivers, the "mmap" IOCTL doesn't actually map any memory. i know, shocking, the name is giving lies but stay with me. instead, it allocates a fake offset which refers to the specified buffer object. that offset can then be used with a real mmap call on the DRM device itself. so it's like a lil ticket stub you redeem later at the actual mmap counter ποΈπ
π SEE ALSO π
bestie the reading list is long, hydrate first π§ this struct does not exist in a vacuum, she has a whole extended universe:
- Kernel file
./include/uapi/drm/pvr_drm.hPowerVR 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)
- 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_opobject.(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)
ngl the reserved field is the only trap here β _padding_4 must be zeroed, so don't get creative with it π
and that's the page!! this absolute legend of a manpage lives in ./include/uapi/drm, dated October 2026, and it's filed under the Kernel API Manual π go read the rest of the PowerVR extended universe, mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms