18bbc2e9cSJens Wiklander /* SPDX-License-Identifier: BSD-2-Clause */ 28bbc2e9cSJens Wiklander /* 38bbc2e9cSJens Wiklander * Copyright (c) 2022, Linaro Limited 48bbc2e9cSJens Wiklander */ 58bbc2e9cSJens Wiklander 68bbc2e9cSJens Wiklander #ifndef __TEE_API_COMPAT_H 78bbc2e9cSJens Wiklander #define __TEE_API_COMPAT_H 88bbc2e9cSJens Wiklander 97509620bSJens Wiklander /* 107509620bSJens Wiklander * This function will be called from TA_OpenSessionEntryPoint() in 117509620bSJens Wiklander * user_ta_header.c (if compiled with __OPTEE_CORE_API_COMPAT_1_1), the 127509620bSJens Wiklander * compatibility entry function is passed as a function pointer in @fp. 137509620bSJens Wiklander * This is needed since libutee is never compiled with 147509620bSJens Wiklander * __OPTEE_CORE_API_COMPAT_1_1, but we still need a way to call the 157509620bSJens Wiklander * compatibility function __GP11_TA_InvokeCommandEntryPoint(), but only 167509620bSJens Wiklander * when __OPTEE_CORE_API_COMPAT_1_1 is defined. 177509620bSJens Wiklander */ 187509620bSJens Wiklander TEE_Result __ta_open_sess(uint32_t pt, TEE_Param params[TEE_NUM_PARAMS], 197509620bSJens Wiklander void **sess_ctx, 207509620bSJens Wiklander TEE_Result (*fp)(uint32_t, 217509620bSJens Wiklander __GP11_TEE_Param [TEE_NUM_PARAMS], 227509620bSJens Wiklander void **)); 237509620bSJens Wiklander 247509620bSJens Wiklander /* 257509620bSJens Wiklander * Same as for __ta_open_sess_func(), except that @fp now is a pointer to 267509620bSJens Wiklander * __GP11_TA_InvokeCommandEntryPoint(). 277509620bSJens Wiklander */ 287509620bSJens Wiklander TEE_Result __ta_invoke_cmd(void *sess_ctx, uint32_t cmd_id, uint32_t pt, 297509620bSJens Wiklander TEE_Param params[TEE_NUM_PARAMS], 307509620bSJens Wiklander TEE_Result (*fp)(void *, uint32_t, uint32_t, 317509620bSJens Wiklander __GP11_TEE_Param [TEE_NUM_PARAMS])); 327509620bSJens Wiklander 33d372a47cSJens Wiklander #if __OPTEE_CORE_API_COMPAT_1_1 34d372a47cSJens Wiklander /* Types */ 354f4374c8SJens Wiklander #define TEE_Attribute __GP11_TEE_Attribute 36d372a47cSJens Wiklander #define TEE_ObjectInfo __GP11_TEE_ObjectInfo 377509620bSJens Wiklander #define TEE_Param __GP11_TEE_Param 38d372a47cSJens Wiklander 39d372a47cSJens Wiklander /* Functions */ 407509620bSJens Wiklander #define TA_InvokeCommandEntryPoint __GP11_TA_InvokeCommandEntryPoint 417509620bSJens Wiklander #define TA_OpenSessionEntryPoint __GP11_TA_OpenSessionEntryPoint 42edc817baSJens Wiklander #define TEE_AllocateTransientObject __GP11_TEE_AllocateTransientObject 434f4374c8SJens Wiklander #define TEE_AsymmetricDecrypt __GP11_TEE_AsymmetricDecrypt 444f4374c8SJens Wiklander #define TEE_AsymmetricEncrypt __GP11_TEE_AsymmetricEncrypt 454f4374c8SJens Wiklander #define TEE_AsymmetricSignDigest __GP11_TEE_AsymmetricSignDigest 464f4374c8SJens Wiklander #define TEE_AsymmetricVerifyDigest __GP11_TEE_AsymmetricVerifyDigest 47cd3a8caeSJens Wiklander #define TEE_CheckMemoryAccessRights __GP11_TEE_CheckMemoryAccessRights 48*185bf58cSJens Wiklander #define TEE_CipherDoFinal __GP11_TEE_CipherDoFinal 49*185bf58cSJens Wiklander #define TEE_CipherInit __GP11_TEE_CipherInit 50*185bf58cSJens Wiklander #define TEE_CipherUpdate __GP11_TEE_CipherUpdate 51f22e1655SJens Wiklander #define TEE_CreatePersistentObject __GP11_TEE_CreatePersistentObject 524f4374c8SJens Wiklander #define TEE_DeriveKey __GP11_TEE_DeriveKey 53*185bf58cSJens Wiklander #define TEE_DigestDoFinal __GP11_TEE_DigestDoFinal 54*185bf58cSJens Wiklander #define TEE_DigestUpdate __GP11_TEE_DigestUpdate 554f4374c8SJens Wiklander #define TEE_GenerateKey __GP11_TEE_GenerateKey 56d372a47cSJens Wiklander #define TEE_GetNextPersistentObject __GP11_TEE_GetNextPersistentObject 5791c84248SJens Wiklander #define TEE_GetObjectBufferAttribute __GP11_TEE_GetObjectBufferAttribute 58d372a47cSJens Wiklander #define TEE_GetObjectInfo1 __GP11_TEE_GetObjectInfo1 59d372a47cSJens Wiklander #define TEE_GetObjectInfo __GP11_TEE_GetObjectInfo 60cb98b7b2SJens Wiklander #define TEE_GetOperationInfoMultiple __GP11_TEE_GetOperationInfoMultiple 616551d565SJens Wiklander #define TEE_GetPropertyAsBinaryBlock __GP11_TEE_GetPropertyAsBinaryBlock 626551d565SJens Wiklander #define TEE_GetPropertyAsString __GP11_TEE_GetPropertyAsString 636551d565SJens Wiklander #define TEE_GetPropertyName __GP11_TEE_GetPropertyName 644f4374c8SJens Wiklander #define TEE_InitRefAttribute __GP11_TEE_InitRefAttribute 654f4374c8SJens Wiklander #define TEE_InitValueAttribute __GP11_TEE_InitValueAttribute 667509620bSJens Wiklander #define TEE_InvokeTACommand __GP11_TEE_InvokeTACommand 67*185bf58cSJens Wiklander #define TEE_MACCompareFinal __GP11_TEE_MACCompareFinal 68*185bf58cSJens Wiklander #define TEE_MACComputeFinal __GP11_TEE_MACComputeFinal 69*185bf58cSJens Wiklander #define TEE_MACInit __GP11_TEE_MACInit 70*185bf58cSJens Wiklander #define TEE_MACUpdate __GP11_TEE_MACUpdate 7111285ebcSJens Wiklander #define TEE_Malloc __GP11_TEE_Malloc 721d0ed95aSJens Wiklander #define TEE_MemCompare __GP11_TEE_MemCompare 731d0ed95aSJens Wiklander #define TEE_MemFill __GP11_TEE_MemFill 741d0ed95aSJens Wiklander #define TEE_MemMove __GP11_TEE_MemMove 7564a530f9SJens Wiklander #define TEE_OpenPersistentObject __GP11_TEE_OpenPersistentObject 767509620bSJens Wiklander #define TEE_OpenTASession __GP11_TEE_OpenTASession 774f4374c8SJens Wiklander #define TEE_PopulateTransientObject __GP11_TEE_PopulateTransientObject 7841af5286SJens Wiklander #define TEE_ReadObjectData __GP11_TEE_ReadObjectData 7911285ebcSJens Wiklander #define TEE_Realloc __GP11_TEE_Realloc 801c12923fSJens Wiklander #define TEE_RenamePersistentObject __GP11_TEE_RenamePersistentObject 818a72cdaeSJens Wiklander #define TEE_SeekObjectData __GP11_TEE_SeekObjectData 82f29aa79cSJens Wiklander #define TEE_TruncateObjectData __GP11_TEE_TruncateObjectData 8341af5286SJens Wiklander #define TEE_WriteObjectData __GP11_TEE_WriteObjectData 84d372a47cSJens Wiklander #endif 85d372a47cSJens Wiklander 868bbc2e9cSJens Wiklander #endif /*__TEE_API_COMPAT_H*/ 87