xref: /openbmc/linux/include/uapi/linux/dma-buf.h (revision bb2bb903042517b8fb17b2bc21e00512f2dcac01)
1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2c11e391dSDaniel Vetter /*
3c11e391dSDaniel Vetter  * Framework for buffer objects that can be shared across devices/subsystems.
4c11e391dSDaniel Vetter  *
5c11e391dSDaniel Vetter  * Copyright(C) 2015 Intel Ltd
6c11e391dSDaniel Vetter  *
7c11e391dSDaniel Vetter  * This program is free software; you can redistribute it and/or modify it
8c11e391dSDaniel Vetter  * under the terms of the GNU General Public License version 2 as published by
9c11e391dSDaniel Vetter  * the Free Software Foundation.
10c11e391dSDaniel Vetter  *
11c11e391dSDaniel Vetter  * This program is distributed in the hope that it will be useful, but WITHOUT
12c11e391dSDaniel Vetter  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13c11e391dSDaniel Vetter  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14c11e391dSDaniel Vetter  * more details.
15c11e391dSDaniel Vetter  *
16c11e391dSDaniel Vetter  * You should have received a copy of the GNU General Public License along with
17c11e391dSDaniel Vetter  * this program.  If not, see <http://www.gnu.org/licenses/>.
18c11e391dSDaniel Vetter  */
19c11e391dSDaniel Vetter 
20c11e391dSDaniel Vetter #ifndef _DMA_BUF_UAPI_H_
21c11e391dSDaniel Vetter #define _DMA_BUF_UAPI_H_
22c11e391dSDaniel Vetter 
23c11e391dSDaniel Vetter #include <linux/types.h>
24c11e391dSDaniel Vetter 
25c11e391dSDaniel Vetter /* begin/end dma-buf functions used for userspace mmap. */
26c11e391dSDaniel Vetter struct dma_buf_sync {
27c11e391dSDaniel Vetter 	__u64 flags;
28c11e391dSDaniel Vetter };
29c11e391dSDaniel Vetter 
30c11e391dSDaniel Vetter #define DMA_BUF_SYNC_READ      (1 << 0)
31c11e391dSDaniel Vetter #define DMA_BUF_SYNC_WRITE     (2 << 0)
32c11e391dSDaniel Vetter #define DMA_BUF_SYNC_RW        (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
33c11e391dSDaniel Vetter #define DMA_BUF_SYNC_START     (0 << 2)
34c11e391dSDaniel Vetter #define DMA_BUF_SYNC_END       (1 << 2)
35c11e391dSDaniel Vetter #define DMA_BUF_SYNC_VALID_FLAGS_MASK \
36c11e391dSDaniel Vetter 	(DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END)
37c11e391dSDaniel Vetter 
38*bb2bb903SGreg Hackmann #define DMA_BUF_NAME_LEN	32
39*bb2bb903SGreg Hackmann 
40c11e391dSDaniel Vetter #define DMA_BUF_BASE		'b'
41c11e391dSDaniel Vetter #define DMA_BUF_IOCTL_SYNC	_IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
42*bb2bb903SGreg Hackmann #define DMA_BUF_SET_NAME	_IOW(DMA_BUF_BASE, 1, const char *)
43c11e391dSDaniel Vetter 
44c11e391dSDaniel Vetter #endif
45