summaryrefslogtreecommitdiff
path: root/lib/libutee/include/user_ta_header.h
diff options
context:
space:
mode:
authorr.tyminski <r.tyminski@partner.samsung.com>2017-05-29 11:42:10 +0200
committerr.tyminski <r.tyminski@partner.samsung.com>2017-05-29 11:49:50 +0200
commitf9a43781767007462965b21f3f518c4cfc0744c7 (patch)
tree201509439b1d9798256227794dae6774345adf43 /lib/libutee/include/user_ta_header.h
parent1fed20f5471aa0dad5e4b4f79d1f2843ac88734f (diff)
downloadtef-optee_os-f9a43781767007462965b21f3f518c4cfc0744c7.tar.gz
tef-optee_os-f9a43781767007462965b21f3f518c4cfc0744c7.tar.bz2
tef-optee_os-f9a43781767007462965b21f3f518c4cfc0744c7.zip
Initial commit with upstream sources
Change-Id: Ie9460111f21fc955102fd8732a0173b2d0499a4a
Diffstat (limited to 'lib/libutee/include/user_ta_header.h')
-rw-r--r--lib/libutee/include/user_ta_header.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/lib/libutee/include/user_ta_header.h b/lib/libutee/include/user_ta_header.h
new file mode 100644
index 0000000..aef5500
--- /dev/null
+++ b/lib/libutee/include/user_ta_header.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2014, STMicroelectronics International N.V.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef USER_TA_HEADER_H
+#define USER_TA_HEADER_H
+
+#include <tee_api_types.h>
+
+
+#define TA_FLAG_USER_MODE (1 << 0)
+#define TA_FLAG_EXEC_DDR (1 << 1)
+#define TA_FLAG_SINGLE_INSTANCE (1 << 2)
+#define TA_FLAG_MULTI_SESSION (1 << 3)
+#define TA_FLAG_INSTANCE_KEEP_ALIVE (1 << 4) /* remains after last close */
+/*
+ * TA_FLAG_UNSAFE_NW_PARAMS: May manipulate some secure memory based on
+ * physical pointers from non-secure world
+ */
+#define TA_FLAG_UNSAFE_NW_PARAMS (1 << 5)
+#define TA_FLAG_REMAP_SUPPORT (1 << 6) /* use map/unmap syscalls */
+#define TA_FLAG_CACHE_MAINTENANCE (1 << 7) /* use cache flush syscall */
+
+union ta_head_func_ptr {
+ uint64_t ptr64;
+ struct ta_head_func_ptr32 {
+ uint32_t lo;
+ uint32_t hi;
+ } ptr32;
+};
+
+struct ta_head {
+ TEE_UUID uuid;
+ uint32_t stack_size;
+ uint32_t flags;
+ union ta_head_func_ptr entry;
+};
+
+#define TA_PROP_STR_SINGLE_INSTANCE "gpd.ta.singleInstance"
+#define TA_PROP_STR_MULTI_SESSION "gpd.ta.multiSession"
+#define TA_PROP_STR_KEEP_ALIVE "gpd.ta.instanceKeepAlive"
+#define TA_PROP_STR_DATA_SIZE "gpd.ta.dataSize"
+#define TA_PROP_STR_STACK_SIZE "gpd.ta.stackSize"
+#define TA_PROP_STR_VERSION "gpd.ta.version"
+#define TA_PROP_STR_DESCRIPTION "gpd.ta.description"
+#define TA_PROP_STR_UNSAFE_PARAM "op-tee.unsafe_param"
+#define TA_PROP_STR_REMAP "op-tee.remap"
+#define TA_PROP_STR_CACHE_SYNC "op-tee.cache_sync"
+
+enum user_ta_prop_type {
+ USER_TA_PROP_TYPE_BOOL, /* bool */
+ USER_TA_PROP_TYPE_U32, /* uint32_t */
+ USER_TA_PROP_TYPE_UUID, /* TEE_UUID */
+ USER_TA_PROP_TYPE_IDENTITY, /* TEE_Identity */
+ USER_TA_PROP_TYPE_STRING, /* zero terminated string of char */
+ USER_TA_PROP_TYPE_BINARY_BLOCK, /* zero terminated base64 coded string */
+};
+
+enum user_ta_core_service_id {
+ USER_TA_CORE_ENTRY_MATH_INIT = 0x00000010,
+ USER_TA_CORE_ENTRY_GARBAGE = 0x00000011,
+ USER_TA_CORE_ENTRY_CLOSESESSION = 0x00000012,
+};
+
+struct user_ta_property {
+ const char *name;
+ enum user_ta_prop_type type;
+ const void *value;
+};
+
+extern const struct user_ta_property ta_props[];
+extern const size_t ta_num_props;
+
+/* Needed by TEE_CheckMemoryAccessRights() */
+extern uint32_t ta_param_types;
+extern TEE_Param ta_params[TEE_NUM_PARAMS];
+
+/* Trusted Application Function header */
+typedef struct ta_func_head {
+ uint32_t cmd_id; /* Trusted Application Function ID */
+ uint32_t start; /* offset to start func */
+} ta_func_head_t;
+
+int tahead_get_trace_level(void);
+
+#endif /* USER_TA_HEADER_H */