STRUCT DRM_ASAHI_GEM_BIND_OBJECT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_asahi_gem_bind_object(9) β€” Kernel API Manual ✨

okay bestie, so this is a page straight out of the Kernel API Manual, and it's all about struct drm_asahi_gem_bind_object β€” the little argument bundle you hand over when you call DRM_IOCTL_ASAHI_GEM_BIND_OBJECT. it's giving "the paperwork you fill out before the kernel does something iconic" πŸŽ€


🌸 NAME 🌸

struct drm_asahi_gem_bind_object β€” the arguments passed to DRM_IOCTL_ASAHI_GEM_BIND_OBJECT. that's it, that's the whole vibe. πŸ¦‹


✨ SYNOPSIS ✨

here's the whole struct, copied exactly, no cap:

struct drm_asahi_gem_bind_object {
    __u32 op;
    __u32 flags;
    __u32 handle;
    __u32 vm_id;
    __u64 offset;
    __u64 range;
    __u32 object_handle;
    __u32 pad;
 };

look at that layout. the __u32s up top, the __u64s in the middle, chef's kiss 🧚


🫢 Members 🫢

let's go through the members one by one, because every single one matters fr fr:

  • op β€” the bind operation. it's an enum drm_asahi_bind_object_op, so it's telling the kernel what kind of move you're pulling. main character energy. πŸ‘‘
  • flags β€” a combination of drm_asahi_bind_object_flags flags. mix and match your little behavior modifiers here. πŸ’…
  • handle β€” the GEM object you're binding or unbinding. this one's for BIND. πŸ”₯
  • vm_id β€” the ID of the VM you're operating on. heads up: it's MBZ currently (that means "must be zero," so don't get cute and put a real value in there πŸ™ˆ).
  • offset β€” the offset into the object. BIND only, bestie, don't @ me otherwise. ⭐
  • range β€” how many bytes to bind or unbind. also BIND only. πŸ“
  • object_handle β€” the object handle! it's an out for BIND and an in for UNBIND. yes, it flips direction, she contains multitudes. 🌈
  • pad β€” MBZ. must be zero. literally just sitting there being zero. πŸ’€
lowkey important: vm_id and pad are both MBZ β€” if you shove garbage in them you're not slaying, you're just breaking things 😭

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, in order:

  • Kernel file ./include/uapi/drm/asahi_drm.h
  • Introduction to the Asahi UAPI(9)
  • enum drm_asahi_ioctl_id(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)
  • 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)

like, that's the entire lore universe right there. read them all, iykyk πŸ“šβœ¨


and that's the page!! sourced from ./include/uapi/drm, dated October 2026, titled struct drm_a..._bind_object(9) up in the corner (yeah the header truncates it, she's shy πŸ’œ). go forth and bind responsibly, bestie β€” mwah πŸ«ΆπŸ’–

πŸ“¦ where this page comes from