linux/include/linux/dmapool.h
<<
>>
Prefs
   1/*
   2 * include/linux/dmapool.h
   3 *
   4 * Allocation pools for DMAable (coherent) memory.
   5 *
   6 * This file is licensed under  the terms of the GNU General Public 
   7 * License version 2. This program is licensed "as is" without any 
   8 * warranty of any kind, whether express or implied.
   9 */
  10
  11#ifndef LINUX_DMAPOOL_H
  12#define LINUX_DMAPOOL_H
  13
  14#include <linux/scatterlist.h>
  15#include <asm/io.h>
  16
  17struct device;
  18
  19struct dma_pool *dma_pool_create(const char *name, struct device *dev, 
  20                        size_t size, size_t align, size_t allocation);
  21
  22void dma_pool_destroy(struct dma_pool *pool);
  23
  24void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
  25                     dma_addr_t *handle);
  26
  27static inline void *dma_pool_zalloc(struct dma_pool *pool, gfp_t mem_flags,
  28                                    dma_addr_t *handle)
  29{
  30        return dma_pool_alloc(pool, mem_flags | __GFP_ZERO, handle);
  31}
  32
  33void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr);
  34
  35/*
  36 * Managed DMA pool
  37 */
  38struct dma_pool *dmam_pool_create(const char *name, struct device *dev,
  39                                  size_t size, size_t align, size_t allocation);
  40void dmam_pool_destroy(struct dma_pool *pool);
  41
  42#endif
  43
  44