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