pci_pool_create

Name

pci_pool_create --  Creates a pool of pci consistent memory blocks, for dma.

Synopsis

struct pci_pool * pci_pool_create (const char * name, struct pci_dev * pdev, size_t size, size_t align, size_t allocation, int flags);

Arguments

name

name of pool, for diagnostics

pdev

pci device that will be doing the DMA

size

size of the blocks in this pool.

align

alignment requirement for blocks; must be a power of two

allocation

returned blocks won't cross this boundary (or zero)

flags

SLAB_* flags (not all are supported).

Description

Returns a pci allocation pool with the requested characteristics, or null if one can't be created. Given one of these pools, pci_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 allocation is nonzero, objects returned from pci_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.