Replace pre/postprocess_operation as a function 05/174805/4
authorInho Kim <inho1220.kim@samsung.com>
Mon, 20 Nov 2017 10:48:42 +0000 (19:48 +0900)
committerTomasz Swierczek <t.swierczek@samsung.com>
Thu, 12 Apr 2018 07:02:42 +0000 (07:02 +0000)
Change-Id: If651518a71bbaf7b6945e50b78e6b77c118d3462

ssflib/src/ssf_taentrypoint.cpp

index ac9c859..adee755 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2015-2017 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2015-2018 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *    Licensed under the Apache License, Version 2.0 (the "License");
  *    you may not use this file except in compliance with the License.
  *-----------------------------------------------------------------------------*/
 extern TEE_UUID ssf_sharedthisTAUUID;
 
-#define __TEE_Preprocess_Operation \
-    uint32_t i, type; \
-    for (i = 0; i < 4; i++) { \
-        type = ((data.operation.paramTypes) >> (8 * i)) & 0x7f; \
-        if ((type == TEEC_VALUE_INPUT) || (type == TEEC_VALUE_OUTPUT) \
-            || (type == TEEC_VALUE_INOUT)) { \
-                data.operation.params[i].value.a = params[i].value.a; \
-                data.operation.params[i].value.b = params[i].value.b; \
-        } else if (type == TEEC_NONE) { \
-        } else { \
-            int getOffset = 0; \
-            if (params[i].memref.memid == 0) { \
-                       params[i].memref.memid = getSharedMemoryShmID(params[i].memref.buffer); \
-            } else { \
-                char* getAdd = getSharedMemoryAddress(params[i].memref.memid); \
-                if (getAdd != 0) \
-                           getOffset = (char*)params[i].memref.buffer - getAdd; \
-            } \
-            data.operation.params[i].mem.offset = getOffset; \
-            data.operation.params[i].mem.size = params[i].memref.size; \
-            data.operation.params[i].mem.shmKey = params[i].memref.memid; \
-        } \
-    }
+static void __TEE_Preprocess_Operation(IntTAOperationData *operation, TEE_Param params[4])
+{
+       uint32_t i, type;
+       for (i = 0; i < 4; i++) {
+               type = ((operation->paramTypes) >> (8 * i)) & 0x7f;
 
-#define __TEE_Postprocess_Operation \
-    uint32_t i, type; \
-    for (i = 0; i < 4; i++) { \
-        type = ((data.operation.paramTypes) >> (8 * i)) & 0x7f; \
-        if ((type == TEEC_VALUE_INPUT) || (type == TEEC_VALUE_OUTPUT) \
-             || (type == TEEC_VALUE_INOUT)) { \
-                 params[i].value.a = data.operation.params[i].value.a; \
-                 params[i].value.b = data.operation.params[i].value.b; \
-        } else if (type == TEEC_NONE) { \
-        } else { \
-            params[i].memref.size = data.operation.params[i].mem.size; \
-            params[i].memref.memid = data.operation.params[i].mem.shmKey; \
-        } \
-    }
+               if ((type == TEEC_VALUE_INPUT) || (type == TEEC_VALUE_OUTPUT) || (type == TEEC_VALUE_INOUT)) {
+                       operation->params[i].value.a = params[i].value.a;
+                       operation->params[i].value.b = params[i].value.b;
+               } else if (type == TEEC_NONE) {
+               } else {
+                       int getOffset = 0;
+                       if(params[i].memref.memid == 0) {
+                               params[i].memref.memid = getSharedMemoryShmID(params[i].memref.buffer);
+                       } else {
+                               char* getAdd = getSharedMemoryAddress(params[i].memref.memid);
+                               if(getAdd != 0) {
+                                       getOffset = (char*)params[i].memref.buffer - getAdd;
+                               }
+                       }
+                       operation->params[i].mem.offset = getOffset;
+                       operation->params[i].mem.size = params[i].memref.size;
+                       operation->params[i].mem.shmKey = params[i].memref.memid;
+               }
+       }
+}
+
+static void __TEE_Postprocess_Operation(IntTAOperationData *operation, TEE_Param params[4])
+{
+       uint32_t i, type;
+       for (i = 0; i < 4; i++) {
+               type = ((operation->paramTypes) >> (8 * i)) & 0x7f;
+               if ((type == TEEC_VALUE_INPUT) || (type == TEEC_VALUE_OUTPUT) || (type == TEEC_VALUE_INOUT)) {
+                       params[i].value.a = operation->params[i].value.a;
+                       params[i].value.b = operation->params[i].value.b;
+               } else if (type == TEEC_NONE) {
+               } else {
+                       params[i].memref.size = operation->params[i].mem.size;
+                       params[i].memref.memid = operation->params[i].mem.shmKey;
+               }
+       }
+}
 
 TEE_Result TEE_OpenTASession(const TEE_UUID* destination,
     uint32_t cancellationRequestTimeout, uint32_t paramTypes,
@@ -98,7 +102,7 @@ TEE_Result TEE_OpenTASession(const TEE_UUID* destination,
        data.operation.paramTypes = paramTypes;
        if(params != 0)
        {
-           __TEE_Preprocess_Operation;
+               __TEE_Preprocess_Operation(&data.operation, params);
        }
 
        pthread_mutex_lock(&socketLock);
@@ -125,8 +129,9 @@ TEE_Result TEE_OpenTASession(const TEE_UUID* destination,
        //      [out] uint32_t* returnOrigin);
        if(params != NULL)
        {
-           __TEE_Postprocess_Operation;
+               __TEE_Postprocess_Operation(&data.operation, params);
        }
+
        *sessionData = data.session;
        *session = (TEE_TASessionHandle)sessionData;
        if (returnOrigin)
@@ -162,7 +167,7 @@ TEE_Result TEE_InvokeTACommand(TEE_TASessionHandle session,
        data.operation.paramTypes = paramTypes;
        if(params != NULL)
        {
-           __TEE_Preprocess_Operation;
+               __TEE_Preprocess_Operation(&data.operation, params);
        }
 
        pthread_mutex_lock(&socketLock);
@@ -188,8 +193,9 @@ TEE_Result TEE_InvokeTACommand(TEE_TASessionHandle session,
        //      [out] uint32_t* returnOrigin);
        if(params != NULL)
        {
-           __TEE_Postprocess_Operation;
+               __TEE_Postprocess_Operation(&data.operation, params);
        }
+
        if(returnOrigin != NULL)
            *returnOrigin = TEE_ORIGIN_TRUSTED_APP;
        return data.returnValue;