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