]> Git Repo - J-linux.git/blob - include/linux/dma-heap.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / include / linux / dma-heap.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * DMABUF Heaps Allocation Infrastructure
4  *
5  * Copyright (C) 2011 Google, Inc.
6  * Copyright (C) 2019 Linaro Ltd.
7  */
8
9 #ifndef _DMA_HEAPS_H
10 #define _DMA_HEAPS_H
11
12 #include <linux/types.h>
13
14 struct dma_heap;
15
16 /**
17  * struct dma_heap_ops - ops to operate on a given heap
18  * @allocate:   allocate dmabuf and return struct dma_buf ptr
19  *
20  * allocate returns dmabuf on success, ERR_PTR(-errno) on error.
21  */
22 struct dma_heap_ops {
23         struct dma_buf *(*allocate)(struct dma_heap *heap,
24                                     unsigned long len,
25                                     u32 fd_flags,
26                                     u64 heap_flags);
27 };
28
29 /**
30  * struct dma_heap_export_info - information needed to export a new dmabuf heap
31  * @name:       used for debugging/device-node name
32  * @ops:        ops struct for this heap
33  * @priv:       heap exporter private data
34  *
35  * Information needed to export a new dmabuf heap.
36  */
37 struct dma_heap_export_info {
38         const char *name;
39         const struct dma_heap_ops *ops;
40         void *priv;
41 };
42
43 void *dma_heap_get_drvdata(struct dma_heap *heap);
44
45 const char *dma_heap_get_name(struct dma_heap *heap);
46
47 struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info);
48
49 #endif /* _DMA_HEAPS_H */
This page took 0.028668 seconds and 4 git commands to generate.