ENUM DRM_ASAHI_IOCTL_ID(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum drm_asahi_ioctl_id(9)

okay bestie, welcome to the Kernel API Manual ✨ this one's a little enum called enum drm_asahi_ioctl_id, and honestly? it's giving "the master list of every ioctl the asahi driver fw knows about" πŸŽ€


🌸 NAME 🌸

enum drm_asahi_ioctl_id β€” IOCTL IDs πŸ’– like, the whole cast list of ioctl numbers, no cap.


✨ SYNOPSIS ✨

enum drm_asahi_ioctl_id {
    DRM_ASAHI_GET_PARAMS ,
    DRM_ASAHI_GET_TIME ,
    DRM_ASAHI_VM_CREATE ,
    DRM_ASAHI_VM_DESTROY ,
    DRM_ASAHI_VM_BIND ,
    DRM_ASAHI_GEM_CREATE ,
    DRM_ASAHI_GEM_MMAP_OFFSET ,
    DRM_ASAHI_GEM_BIND_OBJECT ,
    DRM_ASAHI_QUEUE_CREATE ,
    DRM_ASAHI_QUEUE_DESTROY ,
    DRM_ASAHI_SUBMIT

};

πŸ¦‹ Constants πŸ¦‹

okay so here's the whole lineup, one by one, and yes we're going through all of them 🌈

  • DRM_ASAHI_GET_PARAMS β€” queries the device properties. it's giving "hi what can u do" πŸ’«
  • DRM_ASAHI_GET_TIME β€” queries the device time. literally just clock-checking ⏰
  • DRM_ASAHI_VM_CREATE β€” creates a GPU VM address space. new address space, new me πŸŽ€
  • DRM_ASAHI_VM_DESTROY β€” destroys a VM. rip to that address space, she served 🫢
  • DRM_ASAHI_VM_BIND β€” binds/unbinds memory to a VM. attaching and detaching, the classic situationship πŸ’€
  • DRM_ASAHI_GEM_CREATE β€” creates a buffer object. tiny baby buffer, iconic πŸ‘‘
  • DRM_ASAHI_GEM_MMAP_OFFSET β€” gets the offset you pass to mmap to map a given GEM handle. yes bestie, mmap specifically 🧚
  • DRM_ASAHI_GEM_BIND_OBJECT β€” binds memory as a special object. special object gets special treatment, periodt ⭐
  • DRM_ASAHI_QUEUE_CREATE β€” creates a scheduling queue. get in line, literally 🌸
  • DRM_ASAHI_QUEUE_DESTROY β€” destroys a scheduling queue. line's closed, bestie πŸ™ˆ
  • DRM_ASAHI_SUBMIT β€” submits commands to a queue. sending it, fr fr πŸ”₯

πŸ’œ Description πŸ’œ

okay this is the important part so listen up βœ‹

Place new ioctls at the end, don't re-order, don't replace or remove entries. like, the order is sacred, do not touch it, do not be cute with it β€” new stuff goes at the end, always πŸ’…

these IDs are not meant to be used directly. use the DRM_IOCTL_ASAHI_xxx definitions instead. iykyk 🫢

πŸŽ€ SEE ALSO πŸŽ€

the full bestie list, going to need a minute:

Kernel file ./include/uapi/drm/asahi_drm.h, Introduction to the Asahi UAPI(9), struct drm_asahi_params_global(9), enum drm_asahi_feature(9), struct drm_asahi_get_params(9), struct drm_asahi_vm_create(9), struct drm_asahi_vm_destroy(9), enum drm_asahi_gem_flags(9), struct drm_asahi_gem_create(9), struct drm_asahi_gem_mmap_offset(9), enum drm_asahi_bind_flags(9), struct drm_asahi_gem_bind_op(9), struct drm_asahi_vm_bind(9), enum drm_asahi_bind_object_op(9), enum drm_asahi_bind_object_flags(9), struct drm_asahi_gem_bind_object(9), enum drm_asahi_cmd_type(9), enum drm_asahi_priority(9), struct drm_asahi_queue_create(9), struct drm_asahi_queue_destroy(9), enum drm_asahi_sync_type(9), struct drm_asahi_sync(9), DRM_ASAHI_BARRIER_NONE(9), struct drm_asahi_cmd_header(9), struct drm_asahi_submit(9), struct drm_asahi_attachment(9), struct drm_asahi_zls_buffer(9), struct drm_asahi_timestamp(9), struct drm_asahi_timestamps(9), struct drm_asahi_helper_program(9), struct drm_asahi_bg_eot(9), struct drm_asahi_cmd_render(9), struct drm_asahi_cmd_compute(9), struct drm_asahi_get_time(9), DRM_IOCTL_ASAHI(9)


that's the whole page bestie, go read the actual structs now πŸ’– this came out of ./include/uapi/drm and it's dated October 2026 β€” mwah, slay, bye 🧚✨

πŸ“¦ where this page comes from