]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/OpteeLib/OpteeSmc.h
ArmPkg: Apply uncrustify changes
[mirror_edk2.git] / ArmPkg / Library / OpteeLib / OpteeSmc.h
1 /** @file
2 OP-TEE SMC header file.
3
4 Copyright (c) 2018, Linaro Ltd. All rights reserved.<BR>
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 **/
9
10 #ifndef OPTEE_SMC_H_
11 #define OPTEE_SMC_H_
12
13 /* Returned in Arg0 only from Trusted OS functions */
14 #define OPTEE_SMC_RETURN_OK 0x0
15
16 #define OPTEE_SMC_RETURN_FROM_RPC 0x32000003
17 #define OPTEE_SMC_CALL_WITH_ARG 0x32000004
18 #define OPTEE_SMC_GET_SHARED_MEMORY_CONFIG 0xb2000007
19
20 #define OPTEE_SMC_SHARED_MEMORY_CACHED 1
21
22 #define OPTEE_SMC_RETURN_UNKNOWN_FUNCTION 0xffffffff
23 #define OPTEE_SMC_RETURN_RPC_PREFIX_MASK 0xffff0000
24 #define OPTEE_SMC_RETURN_RPC_PREFIX 0xffff0000
25 #define OPTEE_SMC_RETURN_RPC_FOREIGN_INTERRUPT 0xffff0004
26
27 #define OPTEE_MESSAGE_COMMAND_OPEN_SESSION 0
28 #define OPTEE_MESSAGE_COMMAND_INVOKE_FUNCTION 1
29 #define OPTEE_MESSAGE_COMMAND_CLOSE_SESSION 2
30
31 #define OPTEE_MESSAGE_ATTRIBUTE_META 0x100
32
33 #define OPTEE_LOGIN_PUBLIC 0x0
34
35 typedef struct {
36 UINTN Base;
37 UINTN Size;
38 } OPTEE_SHARED_MEMORY_INFORMATION;
39
40 //
41 // UUID struct compliant with RFC4122 (network byte order).
42 //
43 typedef struct {
44 UINT32 Data1;
45 UINT16 Data2;
46 UINT16 Data3;
47 UINT8 Data4[8];
48 } RFC4122_UUID;
49
50 #endif // OPTEE_SMC_H_