TianoCore EDK2 master
Loading...
Searching...
No Matches
AmlNodeDefines.h File Reference

Go to the source code of this file.

Data Structures

struct  AmlNodeHeader
 
struct  AmlRootNode
 
struct  AmlObjectNode
 
struct  AmlDataNode
 

Macros

#define IS_AML_NODE_VALID(Node)
 
#define IS_AML_ROOT_NODE(Node)
 
#define IS_AML_OBJECT_NODE(Node)
 
#define IS_AML_DATA_NODE(Node)
 
#define AML_NODE_HAS_PARENT(Node)
 
#define AML_NODE_IS_DETACHED(Node)
 

Typedefs

typedef struct AmlNodeHeader AML_NODE_HEADER
 
typedef AML_NODE_HEADERAML_NODE_HANDLE
 
typedef struct AmlRootNode AML_ROOT_NODE
 
typedef AML_ROOT_NODEAML_ROOT_NODE_HANDLE
 
typedef struct AmlObjectNode AML_OBJECT_NODE
 
typedef AML_OBJECT_NODEAML_OBJECT_NODE_HANDLE
 
typedef struct AmlDataNode AML_DATA_NODE
 
typedef AML_DATA_NODEAML_DATA_NODE_HANDLE
 

Detailed Description

AML Node Definition.

Copyright (c) 2020, Arm Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file AmlNodeDefines.h.

Macro Definition Documentation

◆ AML_NODE_HAS_PARENT

#define AML_NODE_HAS_PARENT (   Node)
Value:
(IS_AML_NODE_VALID (Node) && \
(((CONST AML_NODE_HEADER*)Node)->Parent != NULL))
#define IS_AML_NODE_VALID(Node)
#define NULL
Definition: Base.h:319
#define CONST
Definition: Base.h:259

Check whether a Node has a parent.

Parameters
[in]NodeThe node to check.
Return values
TRUEThe Node is a data node.
FALSEOtherwise.

Definition at line 166 of file AmlNodeDefines.h.

◆ AML_NODE_IS_DETACHED

#define AML_NODE_IS_DETACHED (   Node)
Value:
(IS_AML_NODE_VALID (Node) && \
IsListEmpty ((CONST LIST_ENTRY*)Node) && \
(((CONST AML_NODE_HEADER*)Node)->Parent == NULL))

Check that the Node is not attached somewhere. This doesn't mean the node cannot have children.

Parameters
[in]NodeThe node to check.
Return values
TRUEThe Node has been detached.
FALSEOtherwise.

Definition at line 178 of file AmlNodeDefines.h.

◆ IS_AML_DATA_NODE

#define IS_AML_DATA_NODE (   Node)
Value:
((Node != NULL) && \
(((CONST AML_NODE_HEADER*)Node)->NodeType == EAmlNodeData))
@ EAmlNodeData
Definition: AmlDefines.h:176

Check whether a Node is a data node.

Parameters
[in]NodeThe node to check.
Return values
TRUEThe Node is a data node.
FALSEOtherwise.

Definition at line 155 of file AmlNodeDefines.h.

◆ IS_AML_NODE_VALID

#define IS_AML_NODE_VALID (   Node)
Value:
((Node != NULL) && \
((((CONST AML_NODE_HEADER*)Node)->NodeType > EAmlNodeUnknown) || \
(((CONST AML_NODE_HEADER*)Node)->NodeType < EAmlNodeMax)))
@ EAmlNodeMax
Max enum.
Definition: AmlDefines.h:178
@ EAmlNodeUnknown
Unknown/Invalid AML Node Type.
Definition: AmlDefines.h:172

Check whether a Node has a valid NodeType.

Parameters
[in]NodeThe node to check.
Return values
TRUEThe Node has a valid NodeType.
FALSEOtherwise.

Definition at line 121 of file AmlNodeDefines.h.

◆ IS_AML_OBJECT_NODE

#define IS_AML_OBJECT_NODE (   Node)
Value:
((Node != NULL) && \
(((CONST AML_NODE_HEADER*)Node)->NodeType == EAmlNodeObject))
@ EAmlNodeObject
Definition: AmlDefines.h:174

Check whether a Node is an object node.

Parameters
[in]NodeThe node to check.
Return values
TRUEThe Node is an object node.
FALSEOtherwise.

Definition at line 144 of file AmlNodeDefines.h.

◆ IS_AML_ROOT_NODE

#define IS_AML_ROOT_NODE (   Node)
Value:
((Node != NULL) && \
(((CONST AML_NODE_HEADER*)Node)->NodeType == EAmlNodeRoot))
@ EAmlNodeRoot
AML Root Node, typically represents a DefinitionBlock.
Definition: AmlDefines.h:173

Check whether a Node is a root node.

Parameters
[in]NodeThe node to check.
Return values
TRUEThe Node is a root node.
FALSEOtherwise.

Definition at line 133 of file AmlNodeDefines.h.

Typedef Documentation

◆ AML_DATA_NODE

typedef struct AmlDataNode AML_DATA_NODE

AML data node.

Data nodes store the smallest pieces of information. E.g.: UINT8, UINT64, NULL terminated string, etc. Data node don't have children nodes.

◆ AML_DATA_NODE_HANDLE

Data Node handle.

Definition at line 112 of file AmlNodeDefines.h.

◆ AML_NODE_HANDLE

Node handle.

Definition at line 33 of file AmlNodeDefines.h.

◆ AML_NODE_HEADER

AML header node.

This abstract class represents either a root/object/data node. All the enumerated nodes have this same common header.

◆ AML_OBJECT_NODE

AML object node.

Object nodes match AML statements. They are associated with an OpCode/SubOpCode, and can have children.

◆ AML_OBJECT_NODE_HANDLE

Object Node handle.

Definition at line 87 of file AmlNodeDefines.h.

◆ AML_ROOT_NODE

typedef struct AmlRootNode AML_ROOT_NODE

AML root node.

The root node is unique and at the head of tree. It is a fake node used to maintain the list of AML statements (stored as object nodes) which are at the first scope level.

◆ AML_ROOT_NODE_HANDLE

Root Node handle.

Definition at line 55 of file AmlNodeDefines.h.