include/linux/dmapool.h

Source file repositories/reference/linux-study-clean/include/linux/dmapool.h

File Facts

System
Linux kernel
Corpus path
include/linux/dmapool.h
Extension
.h
Size
2385 bytes
Lines
79
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

static inline void dma_pool_destroy(struct dma_pool *pool) { }
static inline void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
				   dma_addr_t *handle) { return NULL; }
static inline void dma_pool_free(struct dma_pool *pool, void *vaddr,
				 dma_addr_t addr) { }
static inline struct dma_pool *dmam_pool_create(const char *name,
	struct device *dev, size_t size, size_t align, size_t allocation)
{ return NULL; }
static inline void dmam_pool_destroy(struct dma_pool *pool) { }
#endif /* !CONFIG_HAS_DMA */

static inline struct dma_pool *dma_pool_create(const char *name,
		struct device *dev, size_t size, size_t align, size_t boundary)
{
	return dma_pool_create_node(name, dev, size, align, boundary,
				    NUMA_NO_NODE);
}

/**
 * dma_pool_zalloc - Get a zero-initialized block of DMA coherent memory.
 * @pool: dma pool that will produce the block
 * @mem_flags: GFP_* bitmask
 * @handle: pointer to dma address of block
 *
 * Same as dma_pool_alloc(), but the returned memory is zeroed.
 */
static inline void *dma_pool_zalloc(struct dma_pool *pool, gfp_t mem_flags,
				    dma_addr_t *handle)
{
	return dma_pool_alloc(pool, mem_flags | __GFP_ZERO, handle);
}

#endif

Annotation

Implementation Notes