STRUCT DRM_GPUVA_OP_MAP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct drm_gpuva_op_map(9) β€” GPU VA map operation πŸ’–

okay bestie, welcome to the Kernel API Manual ✨ this page is literally about one little struct that represents a GPU VA map operation, and we are gonna get into every single field. no skipping, no cap πŸ’…

🌸 NAME 🌸

struct drm_gpuva_op_map β€” GPU VA map operation. that's the name, and it's giving exactly what it says on the tin 🫢

✨ SYNOPSIS ✨

struct drm_gpuva_op_map {
    struct {
      u64 addr;
      u64 range;
    } va;
    struct {
      u64 offset;
      struct drm_gem_object *obj;
    } gem;
 };

πŸŽ€ Members πŸŽ€

  • va β€” structure containing address and range of a map operation. nested-struct realness, we love to see it 🫢
    • va.addr β€” the base address of the new mapping. where the mapping starts, bestie πŸ“
    • va.range β€” the range of the new mapping. how much space it's taking up 🌸
  • gem β€” structure containing the drm_gem_object and its offset. the gem side of the operation πŸ’Ž
    • gem.offset β€” the offset within the drm_gem_object. where we're looking inside the gem πŸ”
    • gem.obj β€” the drm_gem_object to map. this is the actual object getting mapped, periodt πŸ”₯

πŸ¦‹ Description πŸ¦‹

so this structure represents a single map operation generated by the DRM GPU VA manager. literally one map operation, wrapped in a struct, and the DRM GPU VA manager is the one generating it. iconic ✨

🌈 SEE ALSO 🌈

okay the see-also list is long and we are not skipping a single one, bestie. kernel file: ./include/drm/drm_gpuvm.h.

then the whole squad: enum drm_gpuva_flags(9), struct drm_gpuva(9), drm_gpuva_invalidate(9), drm_gpuva_invalidated(9), enum drm_gpuvm_flags(9), struct drm_gpuvm(9), drm_gpuvm_get(9), drm_gpuvm_resv_protected(9), drm_gpuvm_immediate_mode(9), drm_gpuvm_resv(9), drm_gpuvm_resv_obj(9), drm_gpuvm_is_extobj(9), drm_gpuvm_for_each_va_range(9), drm_gpuvm_for_each_va_range_safe(9), drm_gpuvm_for_each_va(9), drm_gpuvm_for_each_va_safe(9), struct drm_gpuvm_exec(9), drm_gpuvm_exec_unlock(9), drm_gpuvm_exec_resv_add_fence(9), drm_gpuvm_exec_validate(9), struct drm_gpuvm_bo(9), drm_gpuvm_bo_get(9), drm_gpuvm_bo_gem_evict(9), drm_gpuvm_bo_for_each_va(9), drm_gpuvm_bo_for_each_va_safe(9), enum drm_gpuva_op_type(9), struct drm_gpuva_op_unmap(9), struct drm_gpuva_op_remap(9), struct drm_gpuva_op_prefetch(9), struct drm_gpuva_op(9), struct drm_gpuva_ops(9), drm_gpuva_for_each_op(9), drm_gpuva_for_each_op_safe(9), drm_gpuva_for_each_op_from_reverse(9), drm_gpuva_for_each_op_reverse(9), drm_gpuva_first_op(9), drm_gpuva_last_op(9), drm_gpuva_prev_op(9), drm_gpuva_next_op(9), struct drm_gpuvm_map_req(9), struct drm_gpuvm_ops(9), drm_gpuva_op_remap_to_unmap_range(9).


mwah πŸ’‹ that's the whole page, bestie. source/version/date tea: it's from ./include/drm, dated October 2026, and the page itself is struct drm_gpuva_op_map(9). slay πŸŽ€

πŸ“¦ where this page comes from