diff --git a/include/CA/tee_client_constants.h b/include/CA/tee_client_constants.h index 9ddff9b3c4d01d94533ae9355d10e530d1d2b0dc..3b86dcbb7d3f563bdc237c795d3661c70f9fc3cb 100644 --- a/include/CA/tee_client_constants.h +++ b/include/CA/tee_client_constants.h @@ -66,6 +66,7 @@ enum TEEC_SharedMemCtl { TEEC_MEM_INPUT = 0x1, /* input type of memroy */ TEEC_MEM_OUTPUT = 0x2, /* output type of memory */ TEEC_MEM_INOUT = 0x3, /* memory is used as both input and output */ + TEEC_MEM_SHARED_INOUT = 0x4, /* no copy shared memory */ }; enum TEEC_ParamType { @@ -79,6 +80,7 @@ enum TEEC_ParamType { refer TEEC_TempMemoryReference */ TEEC_ION_INPUT = 0x08, /* input type of icon memory reference, refer TEEC_IonReference */ TEEC_ION_SGLIST_INPUT = 0x09, /* input type of ion memory block reference, refer TEEC_IonSglistReference */ + TEEC_MEMREF_SHARED_INOUT = 0xa, /* no copy mem */ TEEC_MEMREF_WHOLE = 0xc, /* use whole memory block, refer TEEC_RegisteredMemoryReference */ TEEC_MEMREF_PARTIAL_INPUT = 0xd, /* input type of memory reference, refer TEEC_RegisteredMemoryReference */ TEEC_MEMREF_PARTIAL_OUTPUT = 0xe, /* output type of memory reference, refer TEEC_RegisteredMemoryReference */ diff --git a/include/CA/tee_client_type.h b/include/CA/tee_client_type.h index c5b97e32ea3d337b932bad7f6b22b9b71fdd88fe..54692dd43477ad4a1c6f8ef424e282919fcb26a7 100644 --- a/include/CA/tee_client_type.h +++ b/include/CA/tee_client_type.h @@ -107,6 +107,15 @@ typedef struct { uint32_t offset; } TEEC_RegisteredMemoryReference; +/* + * the corresponding param types are + * TEEC_SHAREDMEM_INOUT + */ +typedef struct { + TEEC_SharedMemory *parent; + uint32_t size; +} TEEC_RegisteredSharedMemory; + /* * the corresponding param types are * TEEC_VALUE_INPUT/TEEC_VALUE_OUTPUT/TEEC_VALUE_INOUT @@ -124,6 +133,7 @@ typedef struct { typedef union { TEEC_TempMemoryReference tmpref; TEEC_RegisteredMemoryReference memref; + TEEC_RegisteredSharedMemory sharedmem; TEEC_Value value; TEEC_IonReference ionref; } TEEC_Parameter;