xref: /linux/include/uapi/linux/udmabuf.h (revision 3eb66e91a25497065c5322b1268cbc3953642227)
1*fbb0de79SGerd Hoffmann /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*fbb0de79SGerd Hoffmann #ifndef _UAPI_LINUX_UDMABUF_H
3*fbb0de79SGerd Hoffmann #define _UAPI_LINUX_UDMABUF_H
4*fbb0de79SGerd Hoffmann 
5*fbb0de79SGerd Hoffmann #include <linux/types.h>
6*fbb0de79SGerd Hoffmann #include <linux/ioctl.h>
7*fbb0de79SGerd Hoffmann 
8*fbb0de79SGerd Hoffmann #define UDMABUF_FLAGS_CLOEXEC	0x01
9*fbb0de79SGerd Hoffmann 
10*fbb0de79SGerd Hoffmann struct udmabuf_create {
11*fbb0de79SGerd Hoffmann 	__u32 memfd;
12*fbb0de79SGerd Hoffmann 	__u32 flags;
13*fbb0de79SGerd Hoffmann 	__u64 offset;
14*fbb0de79SGerd Hoffmann 	__u64 size;
15*fbb0de79SGerd Hoffmann };
16*fbb0de79SGerd Hoffmann 
17*fbb0de79SGerd Hoffmann struct udmabuf_create_item {
18*fbb0de79SGerd Hoffmann 	__u32 memfd;
19*fbb0de79SGerd Hoffmann 	__u32 __pad;
20*fbb0de79SGerd Hoffmann 	__u64 offset;
21*fbb0de79SGerd Hoffmann 	__u64 size;
22*fbb0de79SGerd Hoffmann };
23*fbb0de79SGerd Hoffmann 
24*fbb0de79SGerd Hoffmann struct udmabuf_create_list {
25*fbb0de79SGerd Hoffmann 	__u32 flags;
26*fbb0de79SGerd Hoffmann 	__u32 count;
27*fbb0de79SGerd Hoffmann 	struct udmabuf_create_item list[];
28*fbb0de79SGerd Hoffmann };
29*fbb0de79SGerd Hoffmann 
30*fbb0de79SGerd Hoffmann #define UDMABUF_CREATE       _IOW('u', 0x42, struct udmabuf_create)
31*fbb0de79SGerd Hoffmann #define UDMABUF_CREATE_LIST  _IOW('u', 0x43, struct udmabuf_create_list)
32*fbb0de79SGerd Hoffmann 
33*fbb0de79SGerd Hoffmann #endif /* _UAPI_LINUX_UDMABUF_H */
34