1525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris/**************************************************************************** 2525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris **************************************************************************** 3525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** 4525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** This header was automatically generated from a Linux kernel header 5525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** of the same name, to make information necessary for userspace to 6525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** call into the kernel available to libc. It contains only constants, 7525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** structures, and macros generated from the original header, and thus, 8525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** contains no copyrightable information. 9525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** 10525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** To edit the content of this header, modify the corresponding 11525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** source file (e.g. under external/kernel-headers/original/) then 12525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** run bionic/libc/kernel/tools/update_all.py 13525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** 14525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** Any manual change here will be lost the next time this script will 15525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** be run. You've been warned! 16525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris *** 17525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris **************************************************************************** 18525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris ****************************************************************************/ 19525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#ifndef __TEE_H 20525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define __TEE_H 21525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#include <linux/ioctl.h> 22525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#include <linux/types.h> 23525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_MAGIC 0xa4 24525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_BASE 0 25525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_SHM_MAPPED 0x1 26525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_SHM_DMA_BUF 0x2 27525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_MAX_ARG_SIZE 1024 28525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_GEN_CAP_GP (1 << 0) 291308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TEE_GEN_CAP_PRIVILEGED (1 << 1) 30525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IMPL_ID_OPTEE 1 31525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_OPTEE_CAP_TZ (1 << 0) 32525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_version_data { 33525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 impl_id; 34525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 impl_caps; 35525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 gen_caps; 36525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 37525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_VERSION _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 0, struct tee_ioctl_version_data) 38525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_shm_alloc_data { 39525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 size; 40525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 flags; 41525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __s32 id; 42525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 43525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_SHM_ALLOC _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 1, struct tee_ioctl_shm_alloc_data) 44525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_buf_data { 45525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 buf_ptr; 46525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 buf_len; 47525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 48525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_NONE 0 49525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT 1 50525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT 2 51525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT 3 52525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT 5 53525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT 6 54525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT 7 55525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_PARAM_ATTR_TYPE_MASK 0xff 56525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_LOGIN_PUBLIC 0 57525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_LOGIN_USER 1 58525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_LOGIN_GROUP 2 59525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_LOGIN_APPLICATION 4 60525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_LOGIN_USER_APPLICATION 5 61525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_LOGIN_GROUP_APPLICATION 6 62525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_param { 63525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 attr; 64525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 a; 65525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 b; 66525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u64 c; 67525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 68525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOCTL_UUID_LEN 16 69525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_open_session_arg { 70525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u8 uuid[TEE_IOCTL_UUID_LEN]; 71525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u8 clnt_uuid[TEE_IOCTL_UUID_LEN]; 72525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 clnt_login; 73525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 cancel_id; 74525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 session; 75525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 ret; 76525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 ret_origin; 77525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 num_params; 78525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct tee_ioctl_param params[]; 79525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 80525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_OPEN_SESSION _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 2, struct tee_ioctl_buf_data) 81525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_invoke_arg { 82525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 func; 83525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 session; 84525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 cancel_id; 85525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 ret; 86525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 ret_origin; 87525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 num_params; 88525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct tee_ioctl_param params[]; 89525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 90525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_INVOKE _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 3, struct tee_ioctl_buf_data) 91525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_cancel_arg { 92525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 cancel_id; 93525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 session; 94525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 95525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_CANCEL _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 4, struct tee_ioctl_cancel_arg) 96525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_ioctl_close_session_arg { 97525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 session; 98525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 99525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_CLOSE_SESSION _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 5, struct tee_ioctl_close_session_arg) 100525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_iocl_supp_recv_arg { 101525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 func; 102525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 num_params; 103525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct tee_ioctl_param params[]; 104525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 105525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_SUPPL_RECV _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 6, struct tee_ioctl_buf_data) 106525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferrisstruct tee_iocl_supp_send_arg { 107525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 ret; 108525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris __u32 num_params; 109525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris struct tee_ioctl_param params[]; 110525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris}; 111525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TEE_IOC_SUPPL_SEND _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 7, struct tee_ioctl_buf_data) 112525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#endif 113