|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * DMABUF Heaps Allocation Infrastructure | 
|  | * | 
|  | * Copyright (C) 2011 Google, Inc. | 
|  | * Copyright (C) 2019 Linaro Ltd. | 
|  | */ | 
|  |  | 
|  | #ifndef _DMA_HEAPS_H | 
|  | #define _DMA_HEAPS_H | 
|  |  | 
|  | #include <linux/cdev.h> | 
|  | #include <linux/types.h> | 
|  |  | 
|  | struct dma_heap; | 
|  |  | 
|  | /** | 
|  | * struct dma_heap_ops - ops to operate on a given heap | 
|  | * @allocate:		allocate dmabuf and return struct dma_buf ptr | 
|  | * | 
|  | * allocate returns dmabuf on success, ERR_PTR(-errno) on error. | 
|  | */ | 
|  | struct dma_heap_ops { | 
|  | struct dma_buf *(*allocate)(struct dma_heap *heap, | 
|  | unsigned long len, | 
|  | unsigned long fd_flags, | 
|  | unsigned long heap_flags); | 
|  | }; | 
|  |  | 
|  | /** | 
|  | * struct dma_heap_export_info - information needed to export a new dmabuf heap | 
|  | * @name:	used for debugging/device-node name | 
|  | * @ops:	ops struct for this heap | 
|  | * @priv:	heap exporter private data | 
|  | * | 
|  | * Information needed to export a new dmabuf heap. | 
|  | */ | 
|  | struct dma_heap_export_info { | 
|  | const char *name; | 
|  | const struct dma_heap_ops *ops; | 
|  | void *priv; | 
|  | }; | 
|  |  | 
|  | /** | 
|  | * dma_heap_get_drvdata() - get per-heap driver data | 
|  | * @heap: DMA-Heap to retrieve private data for | 
|  | * | 
|  | * Returns: | 
|  | * The per-heap data for the heap. | 
|  | */ | 
|  | void *dma_heap_get_drvdata(struct dma_heap *heap); | 
|  |  | 
|  | /** | 
|  | * dma_heap_get_name() - get heap name | 
|  | * @heap: DMA-Heap to retrieve private data for | 
|  | * | 
|  | * Returns: | 
|  | * The char* for the heap name. | 
|  | */ | 
|  | const char *dma_heap_get_name(struct dma_heap *heap); | 
|  |  | 
|  | /** | 
|  | * dma_heap_add - adds a heap to dmabuf heaps | 
|  | * @exp_info:		information needed to register this heap | 
|  | */ | 
|  | struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info); | 
|  |  | 
|  | #endif /* _DMA_HEAPS_H */ |