STRUCT DRM_NOUVEAU_VM_BIND_OP(9)
π struct drm_nouveau_vm_bind_op(9) π
okay so this is from the Kernel API Manual bestie, and it's literally all about one (1) VM_BIND operation. buckle up π
β¨ NAME β¨
struct drm_nouveau_vm_bind_op β a VM_BIND operation, that's the whole vibe π«
πΈ SYNOPSIS πΈ
struct drm_nouveau_vm_bind_op {
__u32 op;
#define DRM_NOUVEAU_VM_BIND_OP_MAP 0x0;
#define DRM_NOUVEAU_VM_BIND_OP_UNMAP 0x1;
__u32 flags;
#define DRM_NOUVEAU_VM_BIND_SPARSE (1 << 8);
__u32 handle;
__u32 pad;
__u64 addr;
__u64 bo_offset;
__u64 range;
};
like, that's the whole struct. she's not huge but she IS important π«Ά
π Members π
opβ the operation type, aka what are we even doing here
Supported values:
DRM_NOUVEAU_VM_BIND_OP_MAPβ map a GEM object to the GPU's VA space. optionally you can pass theDRM_NOUVEAU_VM_BIND_SPARSEflag to tell the kernel "hey bestie, make sparse mappings for this range" β¨DRM_NOUVEAU_VM_BIND_OP_UNMAPβ unmap an existing mapping in the GPU's VA space. and listen, if the region the mapping lives in is a sparse region, new sparse mappings get created right where the unmapped (memory backed) mapping used to be. and if you actually want to remove a sparse region? you gotta setDRM_NOUVEAU_VM_BIND_SPARSE. no flag, no removal, iykyk π
flagsβ the flags for adrm_nouveau_vm_bind_op
Supported values:
DRM_NOUVEAU_VM_BIND_SPARSEβ indicates that an allocated VA space region should be sparse π
handleβ the handle of the DRM GEM object to map πpadβ 32 bit padding, should be0. like literally keep it zero, it's not deep πaddrβ the address the VA space region or (memory backed) mapping should be mapped to πbo_offsetβ the offset within the BO backing the mapping π¦rangeβ the size of the requested mapping in bytes π
π Description π
so this structure represents a single VM_BIND operation. one. singular. iconic. β¨
UMDs should pass an array of this structure via struct drm_nouveau_vm_bind's op_ptr field β yes, an array, because one operation is never enough, main character energy only π
π₯ SEE ALSO π₯
Kernel file ./include/uapi/drm/nouveau_drm.h plus the whole friend group:
struct drm_nouveau_sync(9)struct drm_nouveau_vm_init(9)struct drm_nouveau_vm_bind(9)struct drm_nouveau_exec_push(9)struct drm_nouveau_exec(9)
ngl this page is short but she ate. go map some GEM objects, bestie π§π
okay bye ily, this came straight out of ./include/uapi/drm, dated October 2026, and the page itself is struct drm_...u_vm_bind_op(9) in case you need to cite your sources ππΈπ
π¦ 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