cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dmapool.h (1832B)


      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
     19#ifdef CONFIG_HAS_DMA
     20
     21struct dma_pool *dma_pool_create(const char *name, struct device *dev, 
     22			size_t size, size_t align, size_t allocation);
     23
     24void dma_pool_destroy(struct dma_pool *pool);
     25
     26void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
     27		     dma_addr_t *handle);
     28void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr);
     29
     30/*
     31 * Managed DMA pool
     32 */
     33struct dma_pool *dmam_pool_create(const char *name, struct device *dev,
     34				  size_t size, size_t align, size_t allocation);
     35void dmam_pool_destroy(struct dma_pool *pool);
     36
     37#else /* !CONFIG_HAS_DMA */
     38static inline struct dma_pool *dma_pool_create(const char *name,
     39	struct device *dev, size_t size, size_t align, size_t allocation)
     40{ return NULL; }
     41static inline void dma_pool_destroy(struct dma_pool *pool) { }
     42static inline void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
     43				   dma_addr_t *handle) { return NULL; }
     44static inline void dma_pool_free(struct dma_pool *pool, void *vaddr,
     45				 dma_addr_t addr) { }
     46static inline struct dma_pool *dmam_pool_create(const char *name,
     47	struct device *dev, size_t size, size_t align, size_t allocation)
     48{ return NULL; }
     49static inline void dmam_pool_destroy(struct dma_pool *pool) { }
     50#endif /* !CONFIG_HAS_DMA */
     51
     52static inline void *dma_pool_zalloc(struct dma_pool *pool, gfp_t mem_flags,
     53				    dma_addr_t *handle)
     54{
     55	return dma_pool_alloc(pool, mem_flags | __GFP_ZERO, handle);
     56}
     57
     58#endif
     59