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