aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_ion.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/linux/dev_ion.txt')
-rw-r--r--sys/linux/dev_ion.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/sys/linux/dev_ion.txt b/sys/linux/dev_ion.txt
new file mode 100644
index 000000000..eeb942064
--- /dev/null
+++ b/sys/linux/dev_ion.txt
@@ -0,0 +1,53 @@
+# Copyright 2017 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 <asm/ioctl.h>
+include <uapi/linux/fcntl.h>
+include <uapi/linux/dma-buf.h>
+include <drivers/staging/android/uapi/ion.h>
+
+resource fd_ion[fd]
+resource fd_dma_buf[fd]
+
+openat$ion(fd const[AT_FDCWD], file ptr[in, string["/dev/ion"]], flags flags[open_flags], mode const[0]) fd_ion
+
+ioctl$ION_IOC_ALLOC(fd fd_ion, cmd const[ION_IOC_ALLOC], arg ptr[inout, ion_allocation_data])
+ioctl$ION_IOC_HEAP_QUERY(fd fd_ion, cmd const[ION_IOC_HEAP_QUERY], arg ptr[inout, ion_heap_query])
+
+ioctl$DMA_BUF_IOCTL_SYNC(fd fd_dma_buf, cmd const[DMA_BUF_IOCTL_SYNC], arg ptr[in, flags[dma_buf_sync_flags, int64]])
+
+ion_allocation_data {
+ len int64
+ heap_id_mask flags[ion_heap_mask, int32]
+ flags flags[ion_alloc_flags, int32]
+ fd fd_dma_buf[opt]
+ unused const[0, int32]
+}
+
+ion_heap_query {
+ cnt len[heaps, int32]
+ reserved0 const[0, int32]
+ heaps ptr64[out, ion_heap_data]
+ reserved1 const[0, int32]
+ reserved2 const[0, int32]
+}
+
+ion_heap_data {
+ name string["name", MAX_HEAP_NAME]
+ type int32
+ heap_id int32
+ reserved0 int32
+ reserved1 int32
+ reserved2 int32
+}
+
+ion_alloc_flags = ION_FLAG_CACHED
+ion_heap_mask = ION_HEAP_TYPE_SYSTEM_BIT, ION_HEAP_TYPE_SYSTEM_CONTIG_BIT, ION_HEAP_TYPE_CARVEOUT_BIT, ION_HEAP_TYPE_CHUNK_BIT, ION_HEAP_TYPE_DMA_BIT, ION_HEAP_TYPE_CUSTOM_BIT
+dma_buf_sync_flags = DMA_BUF_SYNC_READ, DMA_BUF_SYNC_WRITE, DMA_BUF_SYNC_END
+
+define ION_HEAP_TYPE_SYSTEM_BIT 1 << ION_HEAP_TYPE_SYSTEM
+define ION_HEAP_TYPE_SYSTEM_CONTIG_BIT 1 << ION_HEAP_TYPE_SYSTEM_CONTIG
+define ION_HEAP_TYPE_CARVEOUT_BIT 1 << ION_HEAP_TYPE_CARVEOUT
+define ION_HEAP_TYPE_CHUNK_BIT 1 << ION_HEAP_TYPE_CHUNK
+define ION_HEAP_TYPE_DMA_BIT 1 << ION_HEAP_TYPE_DMA
+define ION_HEAP_TYPE_CUSTOM_BIT 1 << ION_HEAP_TYPE_CUSTOM