dma_pool_create — Creates a pool of consistent memory blocks, for dma.
struct dma_pool * dma_pool_create ( | const char * name, |
| struct device * dev, | |
| size_t size, | |
| size_t align, | |
size_t boundary); |
const char * namename of pool, for diagnostics
struct device * devdevice that will be doing the DMA
size_t sizesize of the blocks in this pool.
size_t alignalignment requirement for blocks; must be a power of two
size_t boundaryreturned blocks won't cross this power of two boundary
Returns a dma allocation pool with the requested characteristics, or
null if one can't be created. Given one of these pools, dma_pool_alloc
may be used to allocate memory. Such memory will all have “consistent”
DMA mappings, accessible by the device and its driver without using
cache flushing primitives. The actual size of blocks allocated may be
larger than requested because of alignment.
If boundary is nonzero, objects returned from dma_pool_alloc won't
cross that size boundary. This is useful for devices which have
addressing restrictions on individual DMA transfers, such as not crossing
boundaries of 4KBytes.