File Index
Files and directories
Sign in
FILE

dma-heap.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/dma-heap.h C
 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
14struct 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 */
22struct 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 */
37struct dma_heap_export_info {
38	const char *name;
39	const struct dma_heap_ops *ops;
40	void *priv;
41};
42
43void *dma_heap_get_drvdata(struct dma_heap *heap);
44
45const char *dma_heap_get_name(struct dma_heap *heap);
46
47struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info);
48
49#endif /* _DMA_HEAPS_H */
~/ Read-only file preview.