| # Copyright 2018 syzkaller project authors. All rights reserved. |
| # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. |
| |
| include <uapi/linux/udmabuf.h> |
| |
| resource fd_udambuf[fd] |
| |
| openat$udambuf(fd const[AT_FDCWD], file ptr[in, string["/dev/udmabuf"]], flags const[O_RDWR]) fd_udambuf |
| ioctl$UDMABUF_CREATE(fd fd_udambuf, cmd const[UDMABUF_CREATE], arg ptr[in, udmabuf_create]) |
| ioctl$UDMABUF_CREATE_LIST(fd fd_udambuf, cmd const[UDMABUF_CREATE_LIST], arg ptr[in, udmabuf_create_list]) |
| |
| udmabuf_create { |
| memfd fd_memfd |
| flags bool32 |
| offset flags[udmabuf_offset_size, int64] |
| size flags[udmabuf_offset_size, int64] |
| } |
| |
| udmabuf_create_list { |
| flags bool32 |
| count len[list, int32] |
| list array[udmabuf_create_item] |
| } |
| |
| udmabuf_create_item { |
| memfd fd_memfd |
| __pad const[0, int32] |
| offset flags[udmabuf_offset_size, int64] |
| size flags[udmabuf_offset_size, int64] |
| } |
| |
| # NEED: this should be a page-aligned integer |
| udmabuf_offset_size = 0, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x1000000, 0x100000000, 0xfffff000, 0x1000000000000, 0xfffffffffffff000, 0xfffffffff0000000 |