TianoCore EDK2 master
Loading...
Searching...
No Matches
AmlTreeIterator.h
Go to the documentation of this file.
1
9#ifndef AML_ITERATOR_H_
10#define AML_ITERATOR_H_
11
12/* This header file does not include internal Node definition,
13 i.e. AML_ROOT_NODE, AML_OBJECT_NODE, etc. The node definitions
14 must be included by the caller file. The function prototypes must
15 only expose AML_NODE_HANDLE, AML_ROOT_NODE_HANDLE, etc. node
16 definitions.
17 This allows to keep the functions defined here both internal and
18 potentially external. If necessary, any function of this file can
19 be exposed externally.
20 The Api folder is internal to the AmlLib, but should only use these
21 functions. They provide a "safe" way to interact with the AmlLib.
22*/
23
84typedef enum EAmlIteratorMode {
97
105
116typedef
119 IN AML_TREE_ITERATOR *Iterator,
120 OUT AML_NODE_HANDLE *OutNode
121 );
122
136typedef
139 IN AML_TREE_ITERATOR *Iterator,
140 OUT AML_NODE_HANDLE *NextNode
141 );
142
156typedef
159 IN AML_TREE_ITERATOR *Iterator,
160 OUT AML_NODE_HANDLE *PrevNode
161 );
162
167typedef struct AmlTreeIterator {
170
173
177
194EFIAPI
196 IN AML_NODE_HANDLE Node,
197 IN EAML_ITERATOR_MODE IteratorMode,
198 OUT AML_TREE_ITERATOR **IteratorPtr
199 );
200
214EFIAPI
216 IN AML_TREE_ITERATOR *Iterator
217 );
218
219#endif // AML_ITERATOR_H_
void * AML_NODE_HANDLE
Definition: AmlLib.h:47
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
EFI_STATUS(EFIAPI * EDKII_AML_TREE_ITERATOR_GET_NEXT)(IN AML_TREE_ITERATOR *Iterator, OUT AML_NODE_HANDLE *NextNode)
EFI_STATUS(EFIAPI * EDKII_AML_TREE_ITERATOR_GET_PREVIOUS)(IN AML_TREE_ITERATOR *Iterator, OUT AML_NODE_HANDLE *PrevNode)
EFI_STATUS EFIAPI AmlInitializeIterator(IN AML_NODE_HANDLE Node, IN EAML_ITERATOR_MODE IteratorMode, OUT AML_TREE_ITERATOR **IteratorPtr)
EFI_STATUS EFIAPI AmlDeleteIterator(IN AML_TREE_ITERATOR *Iterator)
EFI_STATUS(EFIAPI * EDKII_AML_TREE_ITERATOR_GET_NODE)(IN AML_TREE_ITERATOR *Iterator, OUT AML_NODE_HANDLE *OutNode)
enum EAmlIteratorMode EAML_ITERATOR_MODE
struct AmlTreeIterator AML_TREE_ITERATOR
EAmlIteratorMode
@ EAmlIteratorUnknown
Unknown/Invalid AML IteratorMode.
@ EAmlIteratorBranch
@ EAmlIteratorModeMax
Max enum.
@ EAmlIteratorLinear
EDKII_AML_TREE_ITERATOR_GET_PREVIOUS GetPrevious
Update the current node of the iterator with the previous node.
EDKII_AML_TREE_ITERATOR_GET_NEXT GetNext
Update the current node of the iterator with the next node.
EDKII_AML_TREE_ITERATOR_GET_NODE GetNode
Get the current node of the iterator.