https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  OP-TEE specific header file.
 | 
						|
 | 
						|
  Copyright (c) 2018, Linaro Ltd. All rights reserved.<BR>
 | 
						|
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _OPTEE_H_
 | 
						|
#define _OPTEE_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_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_SUCCESS                           0x00000000
 | 
						|
#define OPTEE_ORIGIN_COMMUNICATION              0x00000002
 | 
						|
#define OPTEE_ERROR_COMMUNICATION               0xFFFF000E
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT64    BufferAddress;
 | 
						|
  UINT64    Size;
 | 
						|
  UINT64    SharedMemoryReference;
 | 
						|
} OPTEE_MESSAGE_PARAM_MEMORY;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT64    A;
 | 
						|
  UINT64    B;
 | 
						|
  UINT64    C;
 | 
						|
} OPTEE_MESSAGE_PARAM_VALUE;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINT64 Attribute;
 | 
						|
  union {
 | 
						|
    OPTEE_MESSAGE_PARAM_MEMORY   Memory;
 | 
						|
    OPTEE_MESSAGE_PARAM_VALUE    Value;
 | 
						|
  } Union;
 | 
						|
} OPTEE_MESSAGE_PARAM;
 | 
						|
 | 
						|
#define OPTEE_MAX_CALL_PARAMS       4
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  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_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
 | 
						|
} 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
 | 
						|
} OPTEE_INVOKE_FUNCTION_ARG;
 | 
						|
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
IsOpteePresent (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
OpteeInit (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
OpteeOpenSession (
 | 
						|
  IN OUT OPTEE_OPEN_SESSION_ARG      *OpenSessionArg
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
OpteeCloseSession (
 | 
						|
  IN UINT32                      Session
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
OpteeInvokeFunction (
 | 
						|
  IN OUT OPTEE_INVOKE_FUNCTION_ARG       *InvokeFunctionArg
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |