1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2 /* 3 * Berkeley style UIO structures - Alan Cox 1994. 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 8 * 2 of the License, or (at your option) any later version. 9 */ 10 #ifndef _UAPI__LINUX_UIO_H 11 #define _UAPI__LINUX_UIO_H 12 13 #include <linux/compiler.h> 14 #include <linux/types.h> 15 16 17 struct iovec 18 { 19 void __user *iov_base; /* BSD uses caddr_t (1003.1g requires void *) */ 20 __kernel_size_t iov_len; /* Must be size_t (1003.1g) */ 21 }; 22 23 struct dmabuf_cmsg { 24 __u64 frag_offset; /* offset into the dmabuf where the frag starts. 25 */ 26 __u32 frag_size; /* size of the frag. */ 27 __u32 frag_token; /* token representing this frag for 28 * DEVMEM_DONTNEED. 29 */ 30 __u32 dmabuf_id; /* dmabuf id this frag belongs to. */ 31 __u32 flags; /* Currently unused. Reserved for future 32 * uses. 33 */ 34 }; 35 36 struct dmabuf_token { 37 __u32 token_start; 38 __u32 token_count; 39 }; 40 41 /* 42 * UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) 43 */ 44 45 #define UIO_FASTIOV 8 46 #define UIO_MAXIOV 1024 47 48 49 #endif /* _UAPI__LINUX_UIO_H */ 50