]>
Commit | Line | Data |
---|---|---|
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 | |
8 | This program and the accompanying materials\r | |
9 | are licensed and made available under the terms and conditions of the BSD License\r | |
10 | which accompanies this distribution. The full text of the license may be found at\r | |
11 | http://opensource.org/licenses/bsd-license.php\r | |
12 | \r | |
13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
15 | \r | |
16 | **/\r | |
17 | \r | |
18 | #ifndef __FDT_CLIENT_H__\r | |
19 | #define __FDT_CLIENT_H__\r | |
20 | \r | |
21 | #define FDT_CLIENT_PROTOCOL_GUID { \\r | |
22 | 0xE11FACA0, 0x4710, 0x4C8E, {0xA7, 0xA2, 0x01, 0xBA, 0xA2, 0x59, 0x1B, 0x4C} \\r | |
23 | }\r | |
24 | \r | |
25 | //\r | |
26 | // Protocol interface structure\r | |
27 | //\r | |
28 | typedef struct _FDT_CLIENT_PROTOCOL FDT_CLIENT_PROTOCOL;\r | |
29 | \r | |
30 | typedef\r | |
31 | EFI_STATUS\r | |
32 | (EFIAPI *FDT_CLIENT_GET_NODE_PROPERTY) (\r | |
33 | IN FDT_CLIENT_PROTOCOL *This,\r | |
34 | IN INT32 Node,\r | |
35 | IN CONST CHAR8 *PropertyName,\r | |
36 | OUT CONST VOID **Prop,\r | |
37 | OUT UINT32 *PropSize OPTIONAL\r | |
38 | );\r | |
39 | \r | |
40 | typedef\r | |
41 | EFI_STATUS\r | |
42 | (EFIAPI *FDT_CLIENT_SET_NODE_PROPERTY) (\r | |
43 | IN FDT_CLIENT_PROTOCOL *This,\r | |
44 | IN INT32 Node,\r | |
45 | IN CONST CHAR8 *PropertyName,\r | |
46 | IN CONST VOID *Prop,\r | |
47 | IN UINT32 PropSize\r | |
48 | );\r | |
49 | \r | |
50 | typedef\r | |
51 | EFI_STATUS\r | |
52 | (EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE) (\r | |
53 | IN FDT_CLIENT_PROTOCOL *This,\r | |
54 | IN CONST CHAR8 *CompatibleString,\r | |
55 | OUT INT32 *Node\r | |
56 | );\r | |
57 | \r | |
58 | typedef\r | |
59 | EFI_STATUS\r | |
60 | (EFIAPI *FDT_CLIENT_FIND_NEXT_COMPATIBLE_NODE) (\r | |
61 | IN FDT_CLIENT_PROTOCOL *This,\r | |
62 | IN CONST CHAR8 *CompatibleString,\r | |
63 | IN INT32 PrevNode,\r | |
64 | OUT INT32 *Node\r | |
65 | );\r | |
66 | \r | |
67 | typedef\r | |
68 | EFI_STATUS\r | |
69 | (EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE_PROPERTY) (\r | |
70 | IN FDT_CLIENT_PROTOCOL *This,\r | |
71 | IN CONST CHAR8 *CompatibleString,\r | |
72 | IN CONST CHAR8 *PropertyName,\r | |
73 | OUT CONST VOID **Prop,\r | |
74 | OUT UINT32 *PropSize OPTIONAL\r | |
75 | );\r | |
76 | \r | |
77 | typedef\r | |
78 | EFI_STATUS\r | |
79 | (EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE_REG) (\r | |
80 | IN FDT_CLIENT_PROTOCOL *This,\r | |
81 | IN CONST CHAR8 *CompatibleString,\r | |
82 | OUT CONST VOID **Reg,\r | |
cfc8d51c AB |
83 | OUT UINTN *AddressCells,\r |
84 | OUT UINTN *SizeCells,\r | |
8dbae2c1 AB |
85 | OUT UINT32 *RegSize\r |
86 | );\r | |
87 | \r | |
969d2eb3 AB |
88 | typedef\r |
89 | EFI_STATUS\r | |
90 | (EFIAPI *FDT_CLIENT_FIND_NEXT_MEMORY_NODE_REG) (\r | |
91 | IN FDT_CLIENT_PROTOCOL *This,\r | |
92 | IN INT32 PrevNode,\r | |
93 | OUT INT32 *Node,\r | |
94 | OUT CONST VOID **Reg,\r | |
95 | OUT UINTN *AddressCells,\r | |
96 | OUT UINTN *SizeCells,\r | |
97 | OUT UINT32 *RegSize\r | |
98 | );\r | |
99 | \r | |
100 | typedef\r | |
101 | EFI_STATUS\r | |
102 | (EFIAPI *FDT_CLIENT_FIND_MEMORY_NODE_REG) (\r | |
103 | IN FDT_CLIENT_PROTOCOL *This,\r | |
104 | OUT INT32 *Node,\r | |
105 | OUT CONST VOID **Reg,\r | |
106 | OUT UINTN *AddressCells,\r | |
107 | OUT UINTN *SizeCells,\r | |
108 | OUT UINT32 *RegSize\r | |
109 | );\r | |
110 | \r | |
8dbae2c1 AB |
111 | typedef\r |
112 | EFI_STATUS\r | |
113 | (EFIAPI *FDT_CLIENT_GET_OR_INSERT_CHOSEN_NODE) (\r | |
114 | IN FDT_CLIENT_PROTOCOL *This,\r | |
115 | OUT INT32 *Node\r | |
116 | );\r | |
117 | \r | |
118 | struct _FDT_CLIENT_PROTOCOL {\r | |
119 | FDT_CLIENT_GET_NODE_PROPERTY GetNodeProperty;\r | |
120 | FDT_CLIENT_SET_NODE_PROPERTY SetNodeProperty;\r | |
121 | \r | |
122 | FDT_CLIENT_FIND_COMPATIBLE_NODE FindCompatibleNode;\r | |
123 | FDT_CLIENT_FIND_NEXT_COMPATIBLE_NODE FindNextCompatibleNode;\r | |
124 | FDT_CLIENT_FIND_COMPATIBLE_NODE_PROPERTY FindCompatibleNodeProperty;\r | |
125 | FDT_CLIENT_FIND_COMPATIBLE_NODE_REG FindCompatibleNodeReg;\r | |
126 | \r | |
969d2eb3 AB |
127 | FDT_CLIENT_FIND_MEMORY_NODE_REG FindMemoryNodeReg;\r |
128 | FDT_CLIENT_FIND_NEXT_MEMORY_NODE_REG FindNextMemoryNodeReg;\r | |
129 | \r | |
8dbae2c1 AB |
130 | FDT_CLIENT_GET_OR_INSERT_CHOSEN_NODE GetOrInsertChosenNode;\r |
131 | };\r | |
132 | \r | |
133 | extern EFI_GUID gFdtClientProtocolGuid;\r | |
134 | \r | |
135 | #endif\r |