STRUCT DRM_GEM_DMA_OBJECT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct drm_gem_dma_object(9) πŸ’–

okay bestie, welcome to the Kernel API Manual (section 9, yes we're that girl) and today's main character is struct drm_gem_dma_object β€” literally a GEM object backed by DMA memory allocations. no cap, that's the whole vibe. πŸŽ€


✨ NAME ✨

struct drm_gem_dma_object β€” GEM object backed by DMA memory allocations πŸ¦‹


🌸 SYNOPSIS 🌸

struct drm_gem_dma_object {
    struct drm_gem_object base;
    dma_addr_t dma_addr;
    struct sg_table *sgt;
    void *vaddr;
    bool map_noncoherent;
 };

like, that's the whole struct. she's compact. she's iconic. she ate. πŸ’…


🫢 Members 🫢

  • base β€” the base GEM object. the foundation, the blueprint, the mother of the whole situation πŸ‘‘
  • dma_addr β€” DMA address of the backing memory. where the memory actually lives in DMA-land πŸ“
  • sgt β€” scatter/gather table for imported PRIME buffers. and listen β€” this table can have more than one entry, but no worries because they're guaranteed to have contiguous DMA addresses. multiple entries, one continuous DMA-address vibe. iykyk ✨
  • vaddr β€” kernel virtual address of the backing memory. the kernel's own little window into it πŸͺŸ
  • map_noncoherent β€” if true, the GEM object is backed by non-coherent memory. that's it, that's the flag 🚩

🌈 SEE ALSO 🌈

  • Kernel file: ./include/drm/drm_gem_dma_helper.h

and the whole friend group, fr fr:


πŸ’€ that's the whole page bestie, go read the helper header if you want the real lore

and that's a wrap! this one came from ./include/drm, dated October 2026, and she's serving struct drm_gem_dma_object(9) energy forever. mwah πŸ’‹

πŸ“¦ where this page comes from