STRUCT DRM_GEM_DMA_OBJECT(9)
π 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β iftrue, 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:
drm_gem_dma_object_free(9)drm_gem_dma_object_print_info(9)drm_gem_dma_object_get_sg_table(9)drm_gem_dma_object_mmap(9)DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(9)DRM_GEM_DMA_DRIVER_OPS(9)DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(9)DRM_GEM_DMA_DRIVER_OPS_VMAP(9)DEFINE_DRM_GEM_DMA_FOPS(9)
π 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
- 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