VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/EmbeddedPkg/Include/Protocol/FdtClient.h

Last change on this file was 99404, checked in by vboxsync, 2 years ago

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

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

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette