X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ArmPkg%2FInclude%2FLibrary%2FOpteeLib.h;h=593c32b135113983fb72221956d768b528308c44;hp=a7b2ff1b6b57e01afaaacc15290746d31e077db2;hb=HEAD;hpb=f0574a194c1ef85ca94d4ea776d3b517ad5ac0ce diff --git a/ArmPkg/Include/Library/OpteeLib.h b/ArmPkg/Include/Library/OpteeLib.h index a7b2ff1b6b..593c32b135 100644 --- a/ArmPkg/Include/Library/OpteeLib.h +++ b/ArmPkg/Include/Library/OpteeLib.h @@ -2,42 +2,37 @@ OP-TEE specific header file. Copyright (c) 2018, Linaro Ltd. All rights reserved.
+ Copyright (c) 2021, Arm Limited. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + SPDX-License-Identifier: BSD-2-Clause-Patent **/ -#ifndef _OPTEE_H_ -#define _OPTEE_H_ +#ifndef OPTEE_LIB_H_ +#define OPTEE_LIB_H_ /* * The 'Trusted OS Call UID' is supposed to return the following UUID for * OP-TEE OS. This is a 128-bit value. */ -#define OPTEE_OS_UID0 0x384fb3e0 -#define OPTEE_OS_UID1 0xe7f811e3 -#define OPTEE_OS_UID2 0xaf630002 -#define OPTEE_OS_UID3 0xa5d5c51b +#define OPTEE_OS_UID0 0x384fb3e0 +#define OPTEE_OS_UID1 0xe7f811e3 +#define OPTEE_OS_UID2 0xaf630002 +#define OPTEE_OS_UID3 0xa5d5c51b -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_NONE 0x0 -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_INPUT 0x1 -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_OUTPUT 0x2 -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_INOUT 0x3 -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_INPUT 0x9 -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_OUTPUT 0xa -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_INOUT 0xb +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_NONE 0x0 +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_INPUT 0x1 +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_OUTPUT 0x2 +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_VALUE_INOUT 0x3 +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_INPUT 0x9 +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_OUTPUT 0xa +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MEMORY_INOUT 0xb -#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MASK 0xff +#define OPTEE_MESSAGE_ATTRIBUTE_TYPE_MASK 0xff -#define OPTEE_SUCCESS 0x00000000 -#define OPTEE_ORIGIN_COMMUNICATION 0x00000002 -#define OPTEE_ERROR_COMMUNICATION 0xFFFF000E +#define OPTEE_SUCCESS 0x00000000 +#define OPTEE_ORIGIN_COMMUNICATION 0x00000002 +#define OPTEE_ERROR_COMMUNICATION 0xFFFF000E typedef struct { UINT64 BufferAddress; @@ -51,43 +46,45 @@ typedef struct { UINT64 C; } OPTEE_MESSAGE_PARAM_VALUE; +typedef union { + OPTEE_MESSAGE_PARAM_MEMORY Memory; + OPTEE_MESSAGE_PARAM_VALUE Value; +} OPTEE_MESSAGE_PARAM_UNION; + typedef struct { - UINT64 Attribute; - union { - OPTEE_MESSAGE_PARAM_MEMORY Memory; - OPTEE_MESSAGE_PARAM_VALUE Value; - } Union; + UINT64 Attribute; + OPTEE_MESSAGE_PARAM_UNION Union; } OPTEE_MESSAGE_PARAM; -#define OPTEE_MAX_CALL_PARAMS 4 +#define OPTEE_MAX_CALL_PARAMS 4 typedef struct { - UINT32 Command; - UINT32 Function; - UINT32 Session; - UINT32 CancelId; - UINT32 Pad; - UINT32 Return; - UINT32 ReturnOrigin; - UINT32 NumParams; + UINT32 Command; + UINT32 Function; + UINT32 Session; + UINT32 CancelId; + UINT32 Pad; + UINT32 Return; + UINT32 ReturnOrigin; + UINT32 NumParams; // NumParams tells the actual number of element in Params - OPTEE_MESSAGE_PARAM Params[OPTEE_MAX_CALL_PARAMS]; + OPTEE_MESSAGE_PARAM Params[OPTEE_MAX_CALL_PARAMS]; } OPTEE_MESSAGE_ARG; typedef struct { - EFI_GUID Uuid; // [in] GUID/UUID of the Trusted Application - UINT32 Session; // [out] Session id - UINT32 Return; // [out] Return value - UINT32 ReturnOrigin; // [out] Origin of the return value + EFI_GUID Uuid; // [in] GUID/UUID of the Trusted Application + UINT32 Session; // [out] Session id + UINT32 Return; // [out] Return value + UINT32 ReturnOrigin; // [out] Origin of the return value } OPTEE_OPEN_SESSION_ARG; typedef struct { - UINT32 Function; // [in] Trusted Application function, specific to the TA - UINT32 Session; // [in] Session id - UINT32 Return; // [out] Return value - UINT32 ReturnOrigin; // [out] Origin of the return value - OPTEE_MESSAGE_PARAM Params[OPTEE_MAX_CALL_PARAMS]; // Params for function to be invoked + UINT32 Function; // [in] Trusted Application function, specific to the TA + UINT32 Session; // [in] Session id + UINT32 Return; // [out] Return value + UINT32 ReturnOrigin; // [out] Origin of the return value + OPTEE_MESSAGE_PARAM Params[OPTEE_MAX_CALL_PARAMS]; // Params for function to be invoked } OPTEE_INVOKE_FUNCTION_ARG; BOOLEAN @@ -105,19 +102,19 @@ OpteeInit ( EFI_STATUS EFIAPI OpteeOpenSession ( - IN OUT OPTEE_OPEN_SESSION_ARG *OpenSessionArg + IN OUT OPTEE_OPEN_SESSION_ARG *OpenSessionArg ); EFI_STATUS EFIAPI OpteeCloseSession ( - IN UINT32 Session + IN UINT32 Session ); EFI_STATUS EFIAPI OpteeInvokeFunction ( - IN OUT OPTEE_INVOKE_FUNCTION_ARG *InvokeFunctionArg + IN OUT OPTEE_INVOKE_FUNCTION_ARG *InvokeFunctionArg ); -#endif +#endif // OPTEE_LIB_H_