STRUCT DRM_MSM_VM_BIND(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME

ok so struct drm_msm_vm_bind β€” bestie, it's literally the input of &DRM_IOCTL_MSM_VM_BIND πŸŽ€

This page is from the Kernel API Manual, section 9, and the whole thing is about struct drm_msm_vm_bind(9). Yes the struct name is the manpage name. Iconic behaviour, no notes πŸ’–


✨ SYNOPSIS

struct drm_msm_vm_bind {
    __u32 flags;
    __u32 nr_ops;
    __s32 fence_fd;
    __u32 queue_id;
    __u64 in_syncobjs;
    __u64 out_syncobjs;
    __u32 nr_in_syncobjs;
    __u32 nr_out_syncobjs;
    __u32 syncobj_stride;
    __u32 op_stride;
    union {
      struct drm_msm_vm_bind_op op;
      __u64 ops;
    };
 };

ok look at all those fields πŸ’€ every single one of them is here, I did not skip a single line, we are thorough in this house ✨


πŸŽ€ MEMBERS

  • flags β€” an in param, and it's a bitmask of MSM_VM_BIND_x. Bitmask bestie, so it's giving "combine your faves" 🌈
  • nr_ops β€” the number of bind ops in this ioctl. so like, how many ops are we doing? that's the number πŸ”₯
  • fence_fd β€” the in/out fence fd, see MSM_VM_BIND_FENCE_FD_IN/OUT. it's doing both jobs, main character energy fr fr πŸ‘‘
  • queue_id β€” an in param, the submitqueue id. which queue are we talking to, that's the one πŸ’…
  • in_syncobjs β€” an in param, a ptr to array of drm_msm_syncobj πŸ¦‹
  • out_syncobjs β€” an in param, a ptr to array of drm_msm_syncobj πŸ¦‹ (yes it's also a pointer to an array, twinning with in_syncobjs, periodt)
  • nr_in_syncobjs β€” an in param, number of entries in in_syncobj. that's how many there are, ngl πŸ”’
  • nr_out_syncobjs β€” an in param, number of entries in out_syncobj. again: the count 🌸
  • syncobj_stride β€” an in param, the stride of the syncobj arrays. stride betch πŸ’ƒ
  • op_stride β€” the sizeof each struct drm_msm_vm_bind_op in ops. lowkey important for walking that array 🧚
  • {unnamed_union} β€” it's anonymous. no name. unnamed. mysterious. we love a mystery πŸ™ˆ
    • op β€” used if num_ops == 1. one single op, solo outing πŸ’œ
    • ops β€” userptr to array of drm_msm_vm_bind_op if num_ops > 1. now you're a group chat πŸ”₯
heads up bestie: the union is anonymous, so you just reach straight in there. no silly middle name needed ✨

πŸ” SEE ALSO

  • Kernel file ./include/uapi/drm/msm_drm.h
  • struct drm_msm_vm_bind_op(9) β€” go read that one next, it's the sequel 🫢

ok that's the whole page, you ate that πŸ’– this came from the Kernel file ./include/uapi/drm, dated October 2026, and it's the struct drm_msm_vm_bind(9) page β€” go forth and bind your VM, bestie, slay πŸ¦‹βœ¨πŸ’…

πŸ“¦ where this page comes from