Various minor changes on optee examples
Prefix test applications for the examples with 'optee_example_'.
Gitignore the generate test applications.
Few extra minor changes as make verbosity and source coding style.
STR_TRACE_USER_TA is deprecated.
Update README.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
diff --git a/random/Android.mk b/random/Android.mk
index f17b621..5221265 100644
--- a/random/Android.mk
+++ b/random/Android.mk
@@ -10,10 +10,10 @@
LOCAL_SRC_FILES += host/main.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/ta/include \
- $(OPTEE_CLIENT_EXPORT)/include \
+ $(OPTEE_CLIENT_EXPORT)/include
LOCAL_SHARED_LIBRARIES := libteec
-LOCAL_MODULE := tee_example_random
+LOCAL_MODULE := optee_example_random
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
diff --git a/random/Makefile b/random/Makefile
index ee4f5d8..3b9a8dc 100644
--- a/random/Makefile
+++ b/random/Makefile
@@ -1,4 +1,4 @@
-export V?=0
+export V ?= 0
# If _HOST or _TA specific compilers are not specified, then use CROSS_COMPILE
HOST_CROSS_COMPILE ?= $(CROSS_COMPILE)
diff --git a/random/host/Makefile b/random/host/Makefile
index fcd05f2..8d063ae 100644
--- a/random/host/Makefile
+++ b/random/host/Makefile
@@ -8,11 +8,11 @@
OBJS = main.o
-CFLAGS += -Wall -I../ta/include -I$(TEEC_EXPORT)/include -I./include
-#Add/link other required libraries here
+CFLAGS += -Wall -I../ta/include -I./include
+CFLAGS += -I$(TEEC_EXPORT)/include
LDADD += -lteec -L$(TEEC_EXPORT)/lib
-BINARY = optee_random
+BINARY = optee_example_random
.PHONY: all
all: $(BINARY)
diff --git a/random/host/main.c b/random/host/main.c
index 5ad9de0..de857b9 100644
--- a/random/host/main.c
+++ b/random/host/main.c
@@ -33,7 +33,7 @@
#include <tee_client_api.h>
/* To the the UUID (found the the TA's h-file(s)) */
-#include <random_example_ta.h>
+#include <random_ta.h>
int main(int argc, char *argv[])
{
@@ -41,7 +41,7 @@
TEEC_Context ctx;
TEEC_Session sess;
TEEC_Operation op = { 0 };
- TEEC_UUID uuid = TA_RANDOM_EXAMPLE_UUID;
+ TEEC_UUID uuid = TA_RANDOM_UUID;
uint8_t random_uuid[16] = { 0 };
uint32_t err_origin;
@@ -75,8 +75,8 @@
* Prepare the argument. Pass a value in the first parameter,
* the remaining three parameters are unused.
*/
- op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_OUTPUT, TEEC_NONE,
- TEEC_NONE, TEEC_NONE);
+ op.paramTypes = TEEC_PARAM_TYPES(TEEC_MEMREF_TEMP_OUTPUT,
+ TEEC_NONE, TEEC_NONE, TEEC_NONE);
op.params[0].tmpref.buffer = random_uuid;
op.params[0].tmpref.size = sizeof(random_uuid);
@@ -85,8 +85,8 @@
* called.
*/
printf("Invoking TA to generate random UUID... \n");
- res = TEEC_InvokeCommand(&sess, TA_EXAMPLE_RANDOM_GENERATE, &op,
- &err_origin);
+ res = TEEC_InvokeCommand(&sess, TA_RANDOM_CMD_GENERATE,
+ &op, &err_origin);
if (res != TEEC_SUCCESS)
errx(1, "TEEC_InvokeCommand failed with code 0x%x origin 0x%x",
res, err_origin);
diff --git a/random/ta/include/random_example_ta.h b/random/ta/include/random_ta.h
similarity index 79%
rename from random/ta/include/random_example_ta.h
rename to random/ta/include/random_ta.h
index d40bb63..30eeead 100644
--- a/random/ta/include/random_example_ta.h
+++ b/random/ta/include/random_ta.h
@@ -24,15 +24,19 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef TA_RANDOM_EXAMPLE_H
-#define TA_RANDOM_EXAMPLE_H
-/* This UUID is generated with uuidgen
- the ITU-T UUID generator at http://www.itu.int/ITU-T/asn1/uuid.html */
-#define TA_RANDOM_EXAMPLE_UUID { 0xb6c53aba, 0x9669, 0x4668, \
+#ifndef __RANDOM_TA_H__
+#define __RANDOM_TA_H__
+
+/*
+ * This UUID is generated with uuidgen
+ * the ITU-T UUID generator at http://www.itu.int/ITU-T/asn1/uuid.html
+ */
+#define TA_RANDOM_UUID \
+ { 0xb6c53aba, 0x9669, 0x4668, \
{ 0xa7, 0xf2, 0x20, 0x56, 0x29, 0xd0, 0x0f, 0x86} }
-/* The Trusted Application Function ID(s) implemented in this TA */
-#define TA_EXAMPLE_RANDOM_GENERATE 0
+/* The function ID implemented in this TA */
+#define TA_RANDOM_CMD_GENERATE 0
-#endif /* TA_RANDOM_EXAMPLE_H */
+#endif /* __RANDOM_TA_H__ */
diff --git a/random/ta/random_example_ta.c b/random/ta/random_example_ta.c
index 8f7506a..ef4696a 100644
--- a/random/ta/random_example_ta.c
+++ b/random/ta/random_example_ta.c
@@ -25,12 +25,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#define STR_TRACE_USER_TA "RANDOM_EXAMPLE_TA"
-
#include <tee_internal_api.h>
#include <tee_internal_api_extensions.h>
-#include "random_example_ta.h"
+#include <random_ta.h>
TEE_Result TA_CreateEntryPoint(void)
{
@@ -66,9 +64,11 @@
static TEE_Result random_number_generate(uint32_t param_types,
TEE_Param params[4])
{
- uint32_t exp_param_types = TEE_PARAM_TYPES
- (TEE_PARAM_TYPE_MEMREF_OUTPUT, TEE_PARAM_TYPE_NONE,
- TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE);
+ uint32_t exp_param_types =
+ TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_OUTPUT,
+ TEE_PARAM_TYPE_NONE,
+ TEE_PARAM_TYPE_NONE,
+ TEE_PARAM_TYPE_NONE);
DMSG("has been called");
if (param_types != exp_param_types)
@@ -95,7 +95,7 @@
(void)&sess_ctx;
switch (cmd_id) {
- case TA_EXAMPLE_RANDOM_GENERATE:
+ case TA_RANDOM_CMD_GENERATE:
return random_number_generate(param_types, params);
default:
return TEE_ERROR_BAD_PARAMETERS;
diff --git a/random/ta/user_ta_header_defines.h b/random/ta/user_ta_header_defines.h
index 07ee1ce..37dacc1 100644
--- a/random/ta/user_ta_header_defines.h
+++ b/random/ta/user_ta_header_defines.h
@@ -32,17 +32,27 @@
#ifndef USER_TA_HEADER_DEFINES_H
#define USER_TA_HEADER_DEFINES_H
-#include <random_example_ta.h> /* To get the TA_RANDOM_EXAMPLE_UUID define */
+ /* To get the TA_RANDOM_EXAMPLE_UUID define */
+#include <random_ta.h>
-#define TA_UUID TA_RANDOM_EXAMPLE_UUID
+#define TA_UUID TA_RANDOM_UUID
-#define TA_FLAGS TA_FLAG_EXEC_DDR
-#define TA_STACK_SIZE (2 * 1024)
-#define TA_DATA_SIZE (32 * 1024)
+/*
+ * TA properties: multi-instance TA, no specific attribute
+ * TA_FLAG_EXEC_DDR is meaningless but mandated.
+ */
+#define TA_FLAGS TA_FLAG_EXEC_DDR
+/* Provisioned stack size */
+#define TA_STACK_SIZE (2 * 1024)
+
+/* Provisioned heap size for TEE_Malloc() and friends */
+#define TA_DATA_SIZE (32 * 1024)
+
+/* Extra properties (give a version id and a string name) */
#define TA_CURRENT_TA_EXT_PROPERTIES \
{ "gp.ta.description", USER_TA_PROP_TYPE_STRING, \
- "Fill buffer with output from TEE_GenerateRandom" }, \
+ "Example of a TA that returns the output from TEE_GenerateRandom" }, \
{ "gp.ta.version", USER_TA_PROP_TYPE_U32, &(const uint32_t){ 0x0010 } }
-#endif /*USER_TA_HEADER_DEFINES_H*/
+#endif /* USER_TA_HEADER_DEFINES_H */