ENUM DRM_PANTHOR_VM_BIND_OP_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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