]>
Commit | Line | Data |
---|---|---|
c85ac524 PG |
1 | /** @file\r |
2 | AML Helper.\r | |
3 | \r | |
4 | Copyright (c) 2020, Arm Limited. All rights reserved.<BR>\r | |
5 | \r | |
6 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
7 | **/\r | |
8 | \r | |
9 | #ifndef AML_HELPER_H_\r | |
10 | #define AML_HELPER_H_\r | |
11 | \r | |
12 | #include <AmlNodeDefines.h>\r | |
13 | #include <ResourceData/AmlResourceData.h>\r | |
14 | \r | |
15 | /** Compare the NameString defined by the "Name ()" ASL function,\r | |
16 | and stored in the NameOpNode, with the input NameString.\r | |
17 | \r | |
18 | An ASL NameString is expected to be NULL terminated, and can be composed\r | |
19 | of NameSegs that have less that 4 chars, like "DEV". "DEV" will be expanded\r | |
20 | as "DEV_".\r | |
21 | \r | |
11ce7a2d | 22 | An AML NameString is not NULL terminated and is only composed of\r |
c85ac524 PG |
23 | 4 chars long NameSegs.\r |
24 | \r | |
25 | @param [in] NameOpNode NameOp object node defining a variable.\r | |
26 | Must have an AML_NAME_OP/0 OpCode/SubOpCode.\r | |
27 | NameOp object nodes are defined in ASL\r | |
28 | using the "Name ()" function.\r | |
29 | @param [in] AslName ASL NameString to compare the NameOp's name with.\r | |
30 | Must be NULL terminated.\r | |
31 | \r | |
32 | @retval TRUE If the AslName and the AmlName defined by the NameOp node\r | |
33 | are similar.\r | |
34 | @retval FALSE Otherwise.\r | |
35 | **/\r | |
36 | BOOLEAN\r | |
37 | EFIAPI\r | |
38 | AmlNameOpCompareName (\r | |
731c67e1 MK |
39 | IN AML_OBJECT_NODE_HANDLE NameOpNode,\r |
40 | IN CHAR8 *AslName\r | |
c85ac524 PG |
41 | );\r |
42 | \r | |
43 | /** Check whether ObjectNode has the input OpCode/SubOpcode couple.\r | |
44 | \r | |
45 | @param [in] ObjectNode Pointer to an object node.\r | |
46 | @param [in] OpCode OpCode to check\r | |
47 | @param [in] SubOpCode SubOpCode to check\r | |
48 | \r | |
49 | @retval TRUE The node is an object node and\r | |
50 | the Opcode and SubOpCode match.\r | |
51 | @retval FALSE Otherwise.\r | |
52 | **/\r | |
53 | BOOLEAN\r | |
54 | EFIAPI\r | |
55 | AmlNodeHasOpCode (\r | |
731c67e1 MK |
56 | IN AML_OBJECT_NODE_HANDLE ObjectNode,\r |
57 | IN UINT8 OpCode,\r | |
58 | IN UINT8 SubOpCode\r | |
c85ac524 PG |
59 | );\r |
60 | \r | |
61 | /** Check whether DataNode has the input DataType.\r | |
62 | \r | |
63 | @param [in] DataNode Pointer to a data node.\r | |
64 | @param [in] DataType DataType to check.\r | |
65 | \r | |
66 | @retval TRUE The node is a data node and\r | |
67 | the DataType match.\r | |
68 | @retval FALSE Otherwise.\r | |
69 | **/\r | |
70 | BOOLEAN\r | |
71 | EFIAPI\r | |
72 | AmlNodeHasDataType (\r | |
731c67e1 MK |
73 | IN AML_DATA_NODE_HANDLE DataNode,\r |
74 | IN EAML_NODE_DATA_TYPE DataType\r | |
c85ac524 PG |
75 | );\r |
76 | \r | |
77 | /** Check whether RdNode has the input RdDataType.\r | |
78 | \r | |
79 | @param [in] RdNode Pointer to a data node.\r | |
80 | @param [in] RdDataType DataType to check.\r | |
81 | \r | |
82 | @retval TRUE The node is a Resource Data node and\r | |
83 | the RdDataType match.\r | |
84 | @retval FALSE Otherwise.\r | |
85 | **/\r | |
86 | BOOLEAN\r | |
87 | EFIAPI\r | |
88 | AmlNodeHasRdDataType (\r | |
731c67e1 MK |
89 | IN AML_DATA_NODE_HANDLE RdNode,\r |
90 | IN AML_RD_HEADER RdDataType\r | |
c85ac524 PG |
91 | );\r |
92 | \r | |
93 | #endif // AML_HELPER_H_\r |