xref: /linux-6.15/include/uapi/linux/iio/buffer.h (revision 3e26d9f0)
1f73f7f4dSAlexandru Ardelean /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2f73f7f4dSAlexandru Ardelean /* industrial I/O buffer definitions needed both in and out of kernel
3f73f7f4dSAlexandru Ardelean  */
4f73f7f4dSAlexandru Ardelean 
5f73f7f4dSAlexandru Ardelean #ifndef _UAPI_IIO_BUFFER_H_
6f73f7f4dSAlexandru Ardelean #define _UAPI_IIO_BUFFER_H_
7f73f7f4dSAlexandru Ardelean 
8*3e26d9f0SPaul Cercueil #include <linux/types.h>
9*3e26d9f0SPaul Cercueil 
10*3e26d9f0SPaul Cercueil /* Flags for iio_dmabuf.flags */
11*3e26d9f0SPaul Cercueil #define IIO_BUFFER_DMABUF_CYCLIC		(1 << 0)
12*3e26d9f0SPaul Cercueil #define IIO_BUFFER_DMABUF_SUPPORTED_FLAGS	0x00000001
13*3e26d9f0SPaul Cercueil 
14*3e26d9f0SPaul Cercueil /**
15*3e26d9f0SPaul Cercueil  * struct iio_dmabuf - Descriptor for a single IIO DMABUF object
16*3e26d9f0SPaul Cercueil  * @fd:		file descriptor of the DMABUF object
17*3e26d9f0SPaul Cercueil  * @flags:	one or more IIO_BUFFER_DMABUF_* flags
18*3e26d9f0SPaul Cercueil  * @bytes_used:	number of bytes used in this DMABUF for the data transfer.
19*3e26d9f0SPaul Cercueil  *		Should generally be set to the DMABUF's size.
20*3e26d9f0SPaul Cercueil  */
21*3e26d9f0SPaul Cercueil struct iio_dmabuf {
22*3e26d9f0SPaul Cercueil 	__u32 fd;
23*3e26d9f0SPaul Cercueil 	__u32 flags;
24*3e26d9f0SPaul Cercueil 	__u64 bytes_used;
25*3e26d9f0SPaul Cercueil };
26*3e26d9f0SPaul Cercueil 
27f73f7f4dSAlexandru Ardelean #define IIO_BUFFER_GET_FD_IOCTL			_IOWR('i', 0x91, int)
28*3e26d9f0SPaul Cercueil #define IIO_BUFFER_DMABUF_ATTACH_IOCTL		_IOW('i', 0x92, int)
29*3e26d9f0SPaul Cercueil #define IIO_BUFFER_DMABUF_DETACH_IOCTL		_IOW('i', 0x93, int)
30*3e26d9f0SPaul Cercueil #define IIO_BUFFER_DMABUF_ENQUEUE_IOCTL		_IOW('i', 0x94, struct iio_dmabuf)
31f73f7f4dSAlexandru Ardelean 
32f73f7f4dSAlexandru Ardelean #endif /* _UAPI_IIO_BUFFER_H_ */
33