1DMA_POOL_CREATE(9) Memory Management in Linux DMA_POOL_CREATE(9)
2
3
4
6 dma_pool_create - Creates a pool of consistent memory blocks, for dma.
7
9 struct dma_pool * dma_pool_create(const char * name,
10 struct device * dev, size_t size,
11 size_t align, size_t boundary);
12
14 name
15 name of pool, for diagnostics
16
17 dev
18 device that will be doing the DMA
19
20 size
21 size of the blocks in this pool.
22
23 align
24 alignment requirement for blocks; must be a power of two
25
26 boundary
27 returned blocks won't cross this power of two boundary
28
30 !in_interrupt
31
33 Returns a dma allocation pool with the requested characteristics, or
34 null if one can't be created. Given one of these pools, dma_pool_alloc
35 may be used to allocate memory. Such memory will all have “consistent”
36 DMA mappings, accessible by the device and its driver without using
37 cache flushing primitives. The actual size of blocks allocated may be
38 larger than requested because of alignment.
39
40 If boundary is nonzero, objects returned from dma_pool_alloc won't
41 cross that size boundary. This is useful for devices which have
42 addressing restrictions on individual DMA transfers, such as not
43 crossing boundaries of 4KBytes.
44
46Kernel Hackers Manual 3.10 June 2019 DMA_POOL_CREATE(9)