11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * include/linux/dmapool.h 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Allocation pools for DMAable (coherent) memory. 51da177e4SLinus Torvalds * 61da177e4SLinus Torvalds * This file is licensed under the terms of the GNU General Public 71da177e4SLinus Torvalds * License version 2. This program is licensed "as is" without any 81da177e4SLinus Torvalds * warranty of any kind, whether express or implied. 91da177e4SLinus Torvalds */ 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds #ifndef LINUX_DMAPOOL_H 121da177e4SLinus Torvalds #define LINUX_DMAPOOL_H 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds #include <asm/io.h> 151da177e4SLinus Torvalds #include <asm/scatterlist.h> 161da177e4SLinus Torvalds 17*ce66b032SMark Brown struct device; 18*ce66b032SMark Brown 191da177e4SLinus Torvalds struct dma_pool *dma_pool_create(const char *name, struct device *dev, 201da177e4SLinus Torvalds size_t size, size_t align, size_t allocation); 211da177e4SLinus Torvalds 221da177e4SLinus Torvalds void dma_pool_destroy(struct dma_pool *pool); 231da177e4SLinus Torvalds 24dd0fc66fSAl Viro void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, 253a11ec5eSVictor Fusco dma_addr_t *handle); 261da177e4SLinus Torvalds 271da177e4SLinus Torvalds void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr); 281da177e4SLinus Torvalds 299ac7849eSTejun Heo /* 309ac7849eSTejun Heo * Managed DMA pool 319ac7849eSTejun Heo */ 329ac7849eSTejun Heo struct dma_pool *dmam_pool_create(const char *name, struct device *dev, 339ac7849eSTejun Heo size_t size, size_t align, size_t allocation); 349ac7849eSTejun Heo void dmam_pool_destroy(struct dma_pool *pool); 359ac7849eSTejun Heo 361da177e4SLinus Torvalds #endif 371da177e4SLinus Torvalds 38