From 7166c8652080a3d7d3f57851987090dec92cfb19 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 8 Jan 2018 19:14:22 +0100 Subject: sys/linux: add ion and ashmem devices support Note: ion supercedes the old android interface, which is moved to sys/android. --- sys/android/ion.txt | 46 +++++++++++++++++++++++++++++++++++++++++++++ sys/android/ion_amd64.const | 11 +++++++++++ sys/android/ion_arm64.const | 11 +++++++++++ 3 files changed, 68 insertions(+) create mode 100644 sys/android/ion.txt create mode 100644 sys/android/ion_amd64.const create mode 100644 sys/android/ion_arm64.const (limited to 'sys/android') diff --git a/sys/android/ion.txt b/sys/android/ion.txt new file mode 100644 index 000000000..1ce34c6f9 --- /dev/null +++ b/sys/android/ion.txt @@ -0,0 +1,46 @@ +# Copyright 2016 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. +# billylau@ + +# Description of ioctl calls for /dev/ion, which is based off of 3.18 kernel. +# TODO: ION_IOC_HEAP_QUERY is detected for 4.10 upstream, but not covered in this description. + +include +include +include <../drivers/staging/android/uapi/ion.h> + +resource fd_ion[fd] +resource fd_ion_generic[fd] + +resource ion_handle[int32] + +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_FREE(fd fd_ion, cmd const[ION_IOC_FREE], arg ptr[in, ion_handle_data]) +ioctl$ION_IOC_MAP(fd fd_ion, cmd const[ION_IOC_MAP], arg ptr[inout, ion_fd_data]) +ioctl$ION_IOC_SHARE(fd fd_ion, cmd const[ION_IOC_SHARE], arg ptr[inout, ion_fd_data]) +ioctl$ION_IOC_IMPORT(fd fd_ion, cmd const[ION_IOC_IMPORT], arg ptr[inout, ion_fd_data]) +ioctl$ION_IOC_SYNC(fd fd_ion, cmd const[ION_IOC_SYNC], arg ptr[inout, ion_fd_data]) +ioctl$ION_IOC_CUSTOM(fd fd_ion, cmd const[ION_IOC_CUSTOM], arg ptr[inout, ion_custom_data]) + +ion_allocation_data { + len intptr + align intptr + heapid int32 + flags int32 + handle ion_handle +} + +ion_handle_data { + handle ion_handle +} + +ion_fd_data { + handle ion_handle + fd fd_ion_generic +} + +ion_custom_data { + cmd int32 + arg intptr +} diff --git a/sys/android/ion_amd64.const b/sys/android/ion_amd64.const new file mode 100644 index 000000000..00ceac9c1 --- /dev/null +++ b/sys/android/ion_amd64.const @@ -0,0 +1,11 @@ +# AUTOGENERATED FILE +AT_FDCWD = 18446744073709551516 +ION_IOC_ALLOC = 3223341312 +ION_IOC_CUSTOM = 3222292742 +ION_IOC_FREE = 3221506305 +ION_IOC_IMPORT = 3221768453 +ION_IOC_MAP = 3221768450 +ION_IOC_SHARE = 3221768452 +ION_IOC_SYNC = 3221768455 +__NR_ioctl = 16 +__NR_openat = 257 diff --git a/sys/android/ion_arm64.const b/sys/android/ion_arm64.const new file mode 100644 index 000000000..c55b336cf --- /dev/null +++ b/sys/android/ion_arm64.const @@ -0,0 +1,11 @@ +# AUTOGENERATED FILE +AT_FDCWD = 18446744073709551516 +ION_IOC_ALLOC = 3223341312 +ION_IOC_CUSTOM = 3222292742 +ION_IOC_FREE = 3221506305 +ION_IOC_IMPORT = 3221768453 +ION_IOC_MAP = 3221768450 +ION_IOC_SHARE = 3221768452 +ION_IOC_SYNC = 3221768455 +__NR_ioctl = 29 +__NR_openat = 56 -- cgit mrf-deployment