| /** @file | |
| AML Helper. | |
| Copyright (c) 2020, Arm Limited. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef AML_HELPER_H_ | |
| #define AML_HELPER_H_ | |
| #include <AmlNodeDefines.h> | |
| #include <ResourceData/AmlResourceData.h> | |
| /** Compare the NameString defined by the "Name ()" ASL function, | |
| and stored in the NameOpNode, with the input NameString. | |
| An ASL NameString is expected to be NULL terminated, and can be composed | |
| of NameSegs that have less that 4 chars, like "DEV". "DEV" will be expanded | |
| as "DEV_". | |
| An AML NameString is not NULL terminated and is only composed of | |
| 4 chars long NameSegs. | |
| @param [in] NameOpNode NameOp object node defining a variable. | |
| Must have an AML_NAME_OP/0 OpCode/SubOpCode. | |
| NameOp object nodes are defined in ASL | |
| using the "Name ()" function. | |
| @param [in] AslName ASL NameString to compare the NameOp's name with. | |
| Must be NULL terminated. | |
| @retval TRUE If the AslName and the AmlName defined by the NameOp node | |
| are similar. | |
| @retval FALSE Otherwise. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| AmlNameOpCompareName ( | |
| IN AML_OBJECT_NODE_HANDLE NameOpNode, | |
| IN CHAR8 *AslName | |
| ); | |
| /** Check whether ObjectNode has the input OpCode/SubOpcode couple. | |
| @param [in] ObjectNode Pointer to an object node. | |
| @param [in] OpCode OpCode to check | |
| @param [in] SubOpCode SubOpCode to check | |
| @retval TRUE The node is an object node and | |
| the Opcode and SubOpCode match. | |
| @retval FALSE Otherwise. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| AmlNodeHasOpCode ( | |
| IN AML_OBJECT_NODE_HANDLE ObjectNode, | |
| IN UINT8 OpCode, | |
| IN UINT8 SubOpCode | |
| ); | |
| /** Check whether DataNode has the input DataType. | |
| @param [in] DataNode Pointer to a data node. | |
| @param [in] DataType DataType to check. | |
| @retval TRUE The node is a data node and | |
| the DataType match. | |
| @retval FALSE Otherwise. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| AmlNodeHasDataType ( | |
| IN AML_DATA_NODE_HANDLE DataNode, | |
| IN EAML_NODE_DATA_TYPE DataType | |
| ); | |
| /** Check whether RdNode has the input RdDataType. | |
| @param [in] RdNode Pointer to a data node. | |
| @param [in] RdDataType DataType to check. | |
| @retval TRUE The node is a Resource Data node and | |
| the RdDataType match. | |
| @retval FALSE Otherwise. | |
| **/ | |
| BOOLEAN | |
| EFIAPI | |
| AmlNodeHasRdDataType ( | |
| IN AML_DATA_NODE_HANDLE RdNode, | |
| IN AML_RD_HEADER RdDataType | |
| ); | |
| #endif // AML_HELPER_H_ |