{
return malloc(sizeof(TEEC_SharedMemory));
}
-uint32_t optee_paramTypes(uint32_t api_params)
+uint32_t optee_paramTypes(uint8_t par[4])
{
- uint8_t p[4];
- for (int i = 0; i < 4; ++i) {
- p[i] = TEEC_PARAM_TYPE_GET(api_params, i);
- }
- return TEEC_PARAM_TYPES(p[0], p[1], p[2], p[3]);
+ return TEEC_PARAM_TYPES(par[0], par[1], par[2], par[3]);
}
void *optee_TEEC_Session();
void *optee_TEEC_Operation();
void *optee_TEEC_SharedMemory();
-uint32_t optee_paramTypes(uint32_t api_params);
+uint32_t optee_paramTypes(uint8_t par[4]);
#endif
{
return malloc(sizeof(TEEC_SharedMemory));
}
-
-uint32_t simulator_paramTypes(uint32_t api_params)
+uint32_t simulator_paramTypes(uint8_t par[4])
{
- return api_params;
+ return TEEC_PARAM_TYPES(par[0], par[1], par[2], par[3]);
}
void *simulator_TEEC_Session();
void *simulator_TEEC_Operation();
void *simulator_TEEC_SharedMemory();
-uint32_t simulator_paramTypes(uint32_t api_params);
+uint32_t simulator_paramTypes(uint8_t par[4]);
#endif
void *(*createSession)();
void *(*createOperation)();
void *(*createSharedMemory)();
- uint32_t (*paramTypes)(uint32_t);
+ uint32_t (*paramTypes)(uint8_t[]);
TEEC_Result (*wInitializeContext)(const char *name, TEEC_Context *context);
void (*wFinalizeContext)(TEEC_Context *context);
return NULL;
}
+ uint8_t paramTypes[4];
operation->imp = tefSession->lastOperation;
TEEC_Operation *op = (TEEC_Operation *)operation->imp;
op->started = operation->started;
- op->paramTypes = lib.paramTypes(operation->paramTypes);
for (int i = 0; i < 4; ++i) {
- uint8_t type = TEEC_PARAM_TYPE_GET(operation->paramTypes, i);
- if (type >= TEEC_MEMREF_WHOLE && type <= TEEC_MEMREF_PARTIAL_INOUT) {
+ paramTypes[i] = TEEC_PARAM_TYPE_GET(operation->paramTypes, i);
+ if (paramTypes[i] >= TEEC_MEMREF_WHOLE && paramTypes[i] <= TEEC_MEMREF_PARTIAL_INOUT) {
op->params[i].memref.parent = (TEEC_SharedMemory*)operation->params[i].memref.parent->imp;
op->params[i].memref.size = operation->params[i].memref.size;
op->params[i].memref.offset = operation->params[i].memref.offset;
op->params[i] = operation->params[i];
}
}
+ op->paramTypes = lib.paramTypes(paramTypes);
return op;
}
static void getOperation(TEEC_Operation *operation)