]> git.proxmox.com Git - mirror_edk2.git/blame - EmbeddedPkg/Include/Protocol/FdtClient.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmbeddedPkg / Include / Protocol / FdtClient.h
CommitLineData
8dbae2c1
AB
1/** @file\r
2\r
3 DISCLAIMER: the FDT_CLIENT_PROTOCOL introduced here is a work in progress,\r
4 and should not be used outside of the EDK II tree.\r
5\r
6 Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>\r
7\r
9792fb0e 8 SPDX-License-Identifier: BSD-2-Clause-Patent\r
8dbae2c1
AB
9\r
10**/\r
11\r
12#ifndef __FDT_CLIENT_H__\r
13#define __FDT_CLIENT_H__\r
14\r
e7108d0e 15#define FDT_CLIENT_PROTOCOL_GUID {\\r
8dbae2c1
AB
16 0xE11FACA0, 0x4710, 0x4C8E, {0xA7, 0xA2, 0x01, 0xBA, 0xA2, 0x59, 0x1B, 0x4C} \\r
17 }\r
18\r
19//\r
20// Protocol interface structure\r
21//\r
22typedef struct _FDT_CLIENT_PROTOCOL FDT_CLIENT_PROTOCOL;\r
23\r
24typedef\r
25EFI_STATUS\r
e7108d0e 26(EFIAPI *FDT_CLIENT_GET_NODE_PROPERTY)(\r
8dbae2c1
AB
27 IN FDT_CLIENT_PROTOCOL *This,\r
28 IN INT32 Node,\r
29 IN CONST CHAR8 *PropertyName,\r
30 OUT CONST VOID **Prop,\r
31 OUT UINT32 *PropSize OPTIONAL\r
32 );\r
33\r
34typedef\r
35EFI_STATUS\r
e7108d0e 36(EFIAPI *FDT_CLIENT_SET_NODE_PROPERTY)(\r
8dbae2c1
AB
37 IN FDT_CLIENT_PROTOCOL *This,\r
38 IN INT32 Node,\r
39 IN CONST CHAR8 *PropertyName,\r
40 IN CONST VOID *Prop,\r
41 IN UINT32 PropSize\r
42 );\r
43\r
44typedef\r
45EFI_STATUS\r
e7108d0e 46(EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE)(\r
8dbae2c1
AB
47 IN FDT_CLIENT_PROTOCOL *This,\r
48 IN CONST CHAR8 *CompatibleString,\r
49 OUT INT32 *Node\r
50 );\r
51\r
52typedef\r
53EFI_STATUS\r
e7108d0e 54(EFIAPI *FDT_CLIENT_FIND_NEXT_COMPATIBLE_NODE)(\r
8dbae2c1
AB
55 IN FDT_CLIENT_PROTOCOL *This,\r
56 IN CONST CHAR8 *CompatibleString,\r
57 IN INT32 PrevNode,\r
58 OUT INT32 *Node\r
59 );\r
60\r
61typedef\r
62EFI_STATUS\r
e7108d0e 63(EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE_PROPERTY)(\r
8dbae2c1
AB
64 IN FDT_CLIENT_PROTOCOL *This,\r
65 IN CONST CHAR8 *CompatibleString,\r
66 IN CONST CHAR8 *PropertyName,\r
67 OUT CONST VOID **Prop,\r
68 OUT UINT32 *PropSize OPTIONAL\r
69 );\r
70\r
71typedef\r
72EFI_STATUS\r
e7108d0e 73(EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE_REG)(\r
8dbae2c1
AB
74 IN FDT_CLIENT_PROTOCOL *This,\r
75 IN CONST CHAR8 *CompatibleString,\r
76 OUT CONST VOID **Reg,\r
cfc8d51c
AB
77 OUT UINTN *AddressCells,\r
78 OUT UINTN *SizeCells,\r
8dbae2c1
AB
79 OUT UINT32 *RegSize\r
80 );\r
81\r
969d2eb3
AB
82typedef\r
83EFI_STATUS\r
e7108d0e 84(EFIAPI *FDT_CLIENT_FIND_NEXT_MEMORY_NODE_REG)(\r
969d2eb3
AB
85 IN FDT_CLIENT_PROTOCOL *This,\r
86 IN INT32 PrevNode,\r
87 OUT INT32 *Node,\r
88 OUT CONST VOID **Reg,\r
89 OUT UINTN *AddressCells,\r
90 OUT UINTN *SizeCells,\r
91 OUT UINT32 *RegSize\r
92 );\r
93\r
94typedef\r
95EFI_STATUS\r
e7108d0e 96(EFIAPI *FDT_CLIENT_FIND_MEMORY_NODE_REG)(\r
969d2eb3
AB
97 IN FDT_CLIENT_PROTOCOL *This,\r
98 OUT INT32 *Node,\r
99 OUT CONST VOID **Reg,\r
100 OUT UINTN *AddressCells,\r
101 OUT UINTN *SizeCells,\r
102 OUT UINT32 *RegSize\r
103 );\r
104\r
8dbae2c1
AB
105typedef\r
106EFI_STATUS\r
e7108d0e 107(EFIAPI *FDT_CLIENT_GET_OR_INSERT_CHOSEN_NODE)(\r
8dbae2c1
AB
108 IN FDT_CLIENT_PROTOCOL *This,\r
109 OUT INT32 *Node\r
110 );\r
111\r
112struct _FDT_CLIENT_PROTOCOL {\r
e7108d0e
MK
113 FDT_CLIENT_GET_NODE_PROPERTY GetNodeProperty;\r
114 FDT_CLIENT_SET_NODE_PROPERTY SetNodeProperty;\r
8dbae2c1 115\r
e7108d0e
MK
116 FDT_CLIENT_FIND_COMPATIBLE_NODE FindCompatibleNode;\r
117 FDT_CLIENT_FIND_NEXT_COMPATIBLE_NODE FindNextCompatibleNode;\r
118 FDT_CLIENT_FIND_COMPATIBLE_NODE_PROPERTY FindCompatibleNodeProperty;\r
119 FDT_CLIENT_FIND_COMPATIBLE_NODE_REG FindCompatibleNodeReg;\r
8dbae2c1 120\r
e7108d0e
MK
121 FDT_CLIENT_FIND_MEMORY_NODE_REG FindMemoryNodeReg;\r
122 FDT_CLIENT_FIND_NEXT_MEMORY_NODE_REG FindNextMemoryNodeReg;\r
969d2eb3 123\r
e7108d0e 124 FDT_CLIENT_GET_OR_INSERT_CHOSEN_NODE GetOrInsertChosenNode;\r
8dbae2c1
AB
125};\r
126\r
e7108d0e 127extern EFI_GUID gFdtClientProtocolGuid;\r
8dbae2c1
AB
128\r
129#endif\r