ENUM DRM_PANTHOR_VM_BIND_OP_FLAGS(9)
π NAME π
enum drm_panthor_vm_bind_op_flags β the VM bind operation flags, bestie β¨
Okay so real talk, this is a page straight outta the Kernel API Manual, and it's literally just the flag enum for VM bind ops. Let's get into it π«Ά
π¦ SYNOPSIS π¦
enum drm_panthor_vm_bind_op_flags {
DRM_PANTHOR_VM_BIND_OP_MAP_READONLY ,
DRM_PANTHOR_VM_BIND_OP_MAP_NOEXEC ,
DRM_PANTHOR_VM_BIND_OP_MAP_UNCACHED ,
DRM_PANTHOR_VM_BIND_OP_MAP_SPARSE ,
DRM_PANTHOR_VM_BIND_OP_TYPE_MASK ,
DRM_PANTHOR_VM_BIND_OP_TYPE_MAP ,
DRM_PANTHOR_VM_BIND_OP_TYPE_UNMAP ,
DRM_PANTHOR_VM_BIND_OP_TYPE_SYNC_ONLY
};
π CONSTANTS π
πΈ DRM_PANTHOR_VM_BIND_OP_MAP_READONLY
Map the memory read-only, periodt π
Only valid with DRM_PANTHOR_VM_BIND_OP_TYPE_MAP. So don't try it anywhere else, iykyk.
π DRM_PANTHOR_VM_BIND_OP_MAP_NOEXEC
Map the memory not-executable π«
Only valid with DRM_PANTHOR_VM_BIND_OP_TYPE_MAP. Same rule, bestie, no exceptions.
π¦ DRM_PANTHOR_VM_BIND_OP_MAP_UNCACHED
Map the memory uncached π¨
Only valid with DRM_PANTHOR_VM_BIND_OP_TYPE_MAP. Yes, that constraint again. Iconic of it tbh.
β DRM_PANTHOR_VM_BIND_OP_MAP_SPARSE
Sparsely map a virtual memory range β¨
Only valid with DRM_PANTHOR_VM_BIND_OP_TYPE_MAP.
Okay this next part is important so listen up π β when this flag is set, the whole vm_bind range is mapped over a dummy object in a cyclic fashion, and all GPU reads from addresses in the range return undefined values. Undefined. As in nobody knows what you'll get back π
This flag being set means drm_panthor_vm_bind_op::bo_offset and drm_panthor_vm_bind_op::bo_handle must both be set to 0. And DRM_PANTHOR_VM_BIND_OP_MAP_NOEXEC must also be set. Not optional, fr fr.
π DRM_PANTHOR_VM_BIND_OP_TYPE_MASK
Mask used to determine the type of operation π
π DRM_PANTHOR_VM_BIND_OP_TYPE_MAP
Map operation πΊοΈ
π DRM_PANTHOR_VM_BIND_OP_TYPE_UNMAP
Unmap operation π§Ή
π§ DRM_PANTHOR_VM_BIND_OP_TYPE_SYNC_ONLY
No VM operation β it literally just serves as a synchronization point on a VM queue β³
Only valid if DRM_PANTHOR_VM_BIND_ASYNC is set in drm_panthor_vm_bind::flags, and drm_panthor_vm_bind_op::syncs contains at least one element.
π SEE ALSO π
Kernel file ./include/uapi/drm/panthor_drm.h, plus the whole extended universe π«
Introduction(9)MMIO regions exposed to userspace.(9)IOCTL IDs(9)IOCTL arguments(9)struct drm_panthor_obj_array(9)DRM_PANTHOR_OBJ_ARRAY(9)enum drm_panthor_sync_op_flags(9)struct drm_panthor_sync_op(9)enum drm_panthor_dev_query_type(9)enum drm_panthor_gpu_coherency(9)struct drm_panthor_gpu_info(9)struct drm_panthor_csif_info(9)enum drm_panthor_timestamp_info_flags(9)struct drm_panthor_timestamp_info(9)struct drm_panthor_mmu_info(9)struct drm_panthor_group_priorities_info(9)struct drm_panthor_dev_query(9)struct drm_panthor_vm_create(9)struct drm_panthor_vm_destroy(9)struct drm_panthor_vm_bind_op(9)enum drm_panthor_vm_bind_flags(9)struct drm_panthor_vm_bind(9)enum drm_panthor_vm_state(9)struct drm_panthor_vm_get_state(9)enum drm_panthor_bo_flags(9)struct drm_panthor_bo_create(9)struct drm_panthor_bo_mmap_offset(9)struct drm_panthor_queue_create(9)enum drm_panthor_group_priority(9)struct drm_panthor_group_create(9)struct drm_panthor_group_destroy(9)struct drm_panthor_queue_submit(9)struct drm_panthor_group_submit(9)enum drm_panthor_group_state_flags(9)struct drm_panthor_group_get_state(9)struct drm_panthor_tiler_heap_create(9)struct drm_panthor_tiler_heap_destroy(9)struct drm_panthor_bo_set_label(9)struct drm_panthor_set_user_mmio_offset(9)enum drm_panthor_bo_sync_op_type(9)struct drm_panthor_bo_sync_op(9)struct drm_panthor_bo_sync(9)enum drm_panthor_bo_extra_flags(9)struct drm_panthor_bo_query_info(9)DRM_IOCTL_PANTHOR(9)
And that's the whole page, bestie, you ate that π«Ά go forth and bind your VMs responsibly π
Source: ./include/uapi/drm Β· dated October 2026 Β· from the manual page enum drm_panthor_vm_bind_op_flags(9) β mwah, see you in the next one πβ¨
π¦ 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