summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/dmapool.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/linux/dmapool.h')
-rw-r--r--kernel/include/linux/dmapool.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/kernel/include/linux/dmapool.h b/kernel/include/linux/dmapool.h
new file mode 100644
index 000000000..52456aa56
--- /dev/null
+++ b/kernel/include/linux/dmapool.h
@@ -0,0 +1,37 @@
+/*
+ * include/linux/dmapool.h
+ *
+ * Allocation pools for DMAable (coherent) memory.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#ifndef LINUX_DMAPOOL_H
+#define LINUX_DMAPOOL_H
+
+#include <asm/io.h>
+#include <asm/scatterlist.h>
+
+struct device;
+
+struct dma_pool *dma_pool_create(const char *name, struct device *dev,
+ size_t size, size_t align, size_t allocation);
+
+void dma_pool_destroy(struct dma_pool *pool);
+
+void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
+ dma_addr_t *handle);
+
+void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr);
+
+/*
+ * Managed DMA pool
+ */
+struct dma_pool *dmam_pool_create(const char *name, struct device *dev,
+ size_t size, size_t align, size_t allocation);
+void dmam_pool_destroy(struct dma_pool *pool);
+
+#endif
+