57 if (NewRdNode !=
NULL) {
61 if (ParentNode !=
NULL) {
65 Status = EFI_INVALID_PARAMETER;
75 if ((BufferOpNode ==
NULL) ||
80 Status = EFI_INVALID_PARAMETER;
86 if (EFI_ERROR (Status)) {
92 if (NewRdNode !=
NULL) {
126 IN BOOLEAN IsDenseTranslation,
127 IN BOOLEAN IsTypeStatic
140 (IsTypeStatic ? 0 : BIT4) |
141 (IsDenseTranslation ? 0 : BIT5);
169 IN BOOLEAN IsReadWrite,
170 IN UINT8 MemoryRangeType,
171 IN BOOLEAN IsTypeStatic
175 if ((Cacheable > 3) ||
176 (MemoryRangeType > 3))
185 return (IsReadWrite ? BIT0 : 0) |
187 (MemoryRangeType << 3) |
188 (IsTypeStatic ? 0 : BIT5);
209 IN BOOLEAN IsPosDecode,
210 IN BOOLEAN IsMinFixed,
211 IN BOOLEAN IsMaxFixed
214 return (IsPosDecode ? 0 : BIT1) |
215 (IsMinFixed ? BIT2 : 0) |
216 (IsMaxFixed ? BIT3 : 0);
241 IN BOOLEAN IsMinFixed,
242 IN BOOLEAN IsMaxFixed,
243 IN UINT64 AddressGranularity,
244 IN UINT64 AddressMinimum,
245 IN UINT64 AddressMaximum,
246 IN UINT64 AddressTranslation,
247 IN UINT64 RangeLength
250 if ((AddressMinimum > AddressMaximum) ||
251 (RangeLength > (AddressMaximum - AddressMinimum + 1)) ||
252 ((AddressGranularity != 0) &&
253 (((AddressGranularity + 1) & AddressGranularity) != 0)))
256 return EFI_INVALID_PARAMETER;
259 if (RangeLength != 0) {
260 if (IsMinFixed ^ IsMaxFixed) {
262 return EFI_INVALID_PARAMETER;
263 }
else if (IsMinFixed &&
265 (AddressGranularity != 0) &&
266 ((AddressMaximum - AddressMinimum + 1) != RangeLength))
269 return EFI_INVALID_PARAMETER;
272 if (IsMinFixed && IsMaxFixed) {
274 return EFI_INVALID_PARAMETER;
275 }
else if (IsMinFixed &&
276 ((AddressMinimum & AddressGranularity) != 0))
279 return EFI_INVALID_PARAMETER;
280 }
else if (IsMaxFixed &&
281 (((AddressMaximum + 1) & AddressGranularity) != 0))
284 return EFI_INVALID_PARAMETER;
345 IN UINT8 ResourceType,
346 IN BOOLEAN IsResourceConsumer,
347 IN BOOLEAN IsPosDecode,
348 IN BOOLEAN IsMinFixed,
349 IN BOOLEAN IsMaxFixed,
350 IN UINT8 TypeSpecificFlags,
351 IN UINT32 AddressGranularity,
352 IN UINT32 AddressMinimum,
353 IN UINT32 AddressMaximum,
354 IN UINT32 AddressTranslation,
355 IN UINT32 RangeLength,
356 IN UINT8 ResourceSourceIndex,
357 IN CONST CHAR8 *ResourceSource,
367 if ((TypeSpecificFlags == MAX_UINT8) ||
368 (ResourceSourceIndex != 0) ||
369 (ResourceSource !=
NULL) ||
370 ((NameOpNode ==
NULL) && (NewRdNode ==
NULL)))
373 return EFI_INVALID_PARAMETER;
385 if (EFI_ERROR (Status)) {
391 RdDWord.Header.Header.Bits.Name =
392 ACPI_LARGE_DWORD_ADDRESS_SPACE_DESCRIPTOR_NAME;
393 RdDWord.Header.Header.Bits.Type = ACPI_LARGE_ITEM_FLAG;
395 sizeof (ACPI_LARGE_RESOURCE_HEADER);
398 RdDWord.ResType = ResourceType;
404 RdDWord.SpecificFlag = TypeSpecificFlags;
405 RdDWord.AddrSpaceGranularity = AddressGranularity;
406 RdDWord.AddrRangeMin = AddressMinimum;
407 RdDWord.AddrRangeMax = AddressMaximum;
408 RdDWord.AddrTranslationOffset = AddressTranslation;
409 RdDWord.AddrLen = RangeLength;
417 if (EFI_ERROR (Status)) {
422 return LinkRdNode (RdNode, NameOpNode, NewRdNode);
474 IN BOOLEAN IsResourceConsumer,
475 IN BOOLEAN IsMinFixed,
476 IN BOOLEAN IsMaxFixed,
477 IN BOOLEAN IsPosDecode,
479 IN UINT32 AddressGranularity,
480 IN UINT32 AddressMinimum,
481 IN UINT32 AddressMaximum,
482 IN UINT32 AddressTranslation,
483 IN UINT32 RangeLength,
484 IN UINT8 ResourceSourceIndex,
485 IN CONST CHAR8 *ResourceSource,
486 IN BOOLEAN IsDenseTranslation,
487 IN BOOLEAN IsTypeStatic,
493 ACPI_ADDRESS_SPACE_TYPE_IO,
570 IN BOOLEAN IsResourceConsumer,
571 IN BOOLEAN IsPosDecode,
572 IN BOOLEAN IsMinFixed,
573 IN BOOLEAN IsMaxFixed,
575 IN BOOLEAN IsReadWrite,
576 IN UINT32 AddressGranularity,
577 IN UINT32 AddressMinimum,
578 IN UINT32 AddressMaximum,
579 IN UINT32 AddressTranslation,
580 IN UINT32 RangeLength,
581 IN UINT8 ResourceSourceIndex,
582 IN CONST CHAR8 *ResourceSource,
584 IN BOOLEAN IsTypeStatic,
590 ACPI_ADDRESS_SPACE_TYPE_MEM,
650 RangeDesc.Header.Header.Byte = ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR;
652 sizeof (ACPI_LARGE_RESOURCE_HEADER);
653 RangeDesc.Information = IsReadWrite ? BIT0 : 0;
654 RangeDesc.BaseAddress = Address;
655 RangeDesc.Length = RangeLength;
663 if (EFI_ERROR (Status)) {
668 return LinkRdNode (MemNode, NameOpNode, NewMemNode);
725 IN UINT8 ResourceType,
726 IN BOOLEAN IsResourceConsumer,
727 IN BOOLEAN IsPosDecode,
728 IN BOOLEAN IsMinFixed,
729 IN BOOLEAN IsMaxFixed,
730 IN UINT8 TypeSpecificFlags,
731 IN UINT16 AddressGranularity,
732 IN UINT16 AddressMinimum,
733 IN UINT16 AddressMaximum,
734 IN UINT16 AddressTranslation,
735 IN UINT16 RangeLength,
736 IN UINT8 ResourceSourceIndex,
737 IN CONST CHAR8 *ResourceSource,
747 if ((TypeSpecificFlags == MAX_UINT8) ||
748 (ResourceSourceIndex != 0) ||
749 (ResourceSource !=
NULL) ||
750 ((NameOpNode ==
NULL) && (NewRdNode ==
NULL)))
753 return EFI_INVALID_PARAMETER;
765 if (EFI_ERROR (Status)) {
771 Rdword.Header.Header.Bits.Name =
772 ACPI_LARGE_WORD_ADDRESS_SPACE_DESCRIPTOR_NAME;
773 Rdword.Header.Header.Bits.Type = ACPI_LARGE_ITEM_FLAG;
775 sizeof (ACPI_LARGE_RESOURCE_HEADER);
778 Rdword.ResType = ResourceType;
784 Rdword.SpecificFlag = TypeSpecificFlags;
785 Rdword.AddrSpaceGranularity = AddressGranularity;
786 Rdword.AddrRangeMin = AddressMinimum;
787 Rdword.AddrRangeMax = AddressMaximum;
788 Rdword.AddrTranslationOffset = AddressTranslation;
789 Rdword.AddrLen = RangeLength;
797 if (EFI_ERROR (Status)) {
802 return LinkRdNode (RdNode, NameOpNode, NewRdNode);
847 IN BOOLEAN IsResourceConsumer,
848 IN BOOLEAN IsMinFixed,
849 IN BOOLEAN IsMaxFixed,
850 IN BOOLEAN IsPosDecode,
851 IN UINT16 AddressGranularity,
852 IN UINT16 AddressMinimum,
853 IN UINT16 AddressMaximum,
854 IN UINT16 AddressTranslation,
855 IN UINT16 RangeLength,
856 IN UINT8 ResourceSourceIndex,
857 IN CONST CHAR8 *ResourceSource,
864 ACPI_ADDRESS_SPACE_TYPE_BUS,
928 IN BOOLEAN IsResourceConsumer,
929 IN BOOLEAN IsMinFixed,
930 IN BOOLEAN IsMaxFixed,
931 IN BOOLEAN IsPosDecode,
933 IN UINT16 AddressGranularity,
934 IN UINT16 AddressMinimum,
935 IN UINT16 AddressMaximum,
936 IN UINT16 AddressTranslation,
937 IN UINT16 RangeLength,
938 IN UINT8 ResourceSourceIndex,
939 IN CONST CHAR8 *ResourceSource,
940 IN BOOLEAN IsDenseTranslation,
941 IN BOOLEAN IsTypeStatic,
947 ACPI_ADDRESS_SPACE_TYPE_IO,
1023 IN UINT8 ResourceType,
1024 IN BOOLEAN IsResourceConsumer,
1025 IN BOOLEAN IsPosDecode,
1026 IN BOOLEAN IsMinFixed,
1027 IN BOOLEAN IsMaxFixed,
1028 IN UINT8 TypeSpecificFlags,
1029 IN UINT64 AddressGranularity,
1030 IN UINT64 AddressMinimum,
1031 IN UINT64 AddressMaximum,
1032 IN UINT64 AddressTranslation,
1033 IN UINT64 RangeLength,
1034 IN UINT8 ResourceSourceIndex,
1035 IN CONST CHAR8 *ResourceSource,
1045 if ((TypeSpecificFlags == MAX_UINT8) ||
1046 (ResourceSourceIndex != 0) ||
1047 (ResourceSource !=
NULL) ||
1048 ((NameOpNode ==
NULL) && (NewRdNode ==
NULL)))
1051 return EFI_INVALID_PARAMETER;
1063 if (EFI_ERROR (Status)) {
1069 RdQword.Header.Header.Bits.Name =
1070 ACPI_LARGE_QWORD_ADDRESS_SPACE_DESCRIPTOR_NAME;
1071 RdQword.Header.Header.Bits.Type = ACPI_LARGE_ITEM_FLAG;
1073 sizeof (ACPI_LARGE_RESOURCE_HEADER);
1076 RdQword.ResType = ResourceType;
1082 RdQword.SpecificFlag = TypeSpecificFlags;
1083 RdQword.AddrSpaceGranularity = AddressGranularity;
1084 RdQword.AddrRangeMin = AddressMinimum;
1085 RdQword.AddrRangeMax = AddressMaximum;
1086 RdQword.AddrTranslationOffset = AddressTranslation;
1087 RdQword.AddrLen = RangeLength;
1095 if (EFI_ERROR (Status)) {
1100 return LinkRdNode (RdNode, NameOpNode, NewRdNode);
1152 IN BOOLEAN IsResourceConsumer,
1153 IN BOOLEAN IsMinFixed,
1154 IN BOOLEAN IsMaxFixed,
1155 IN BOOLEAN IsPosDecode,
1157 IN UINT64 AddressGranularity,
1158 IN UINT64 AddressMinimum,
1159 IN UINT64 AddressMaximum,
1160 IN UINT64 AddressTranslation,
1161 IN UINT64 RangeLength,
1162 IN UINT8 ResourceSourceIndex,
1163 IN CONST CHAR8 *ResourceSource,
1164 IN BOOLEAN IsDenseTranslation,
1165 IN BOOLEAN IsTypeStatic,
1171 ACPI_ADDRESS_SPACE_TYPE_IO,
1186 ResourceSourceIndex,
1248 IN BOOLEAN IsResourceConsumer,
1249 IN BOOLEAN IsPosDecode,
1250 IN BOOLEAN IsMinFixed,
1251 IN BOOLEAN IsMaxFixed,
1253 IN BOOLEAN IsReadWrite,
1254 IN UINT64 AddressGranularity,
1255 IN UINT64 AddressMinimum,
1256 IN UINT64 AddressMaximum,
1257 IN UINT64 AddressTranslation,
1258 IN UINT64 RangeLength,
1259 IN UINT8 ResourceSourceIndex,
1260 IN CONST CHAR8 *ResourceSource,
1262 IN BOOLEAN IsTypeStatic,
1268 ACPI_ADDRESS_SPACE_TYPE_MEM,
1284 ResourceSourceIndex,
1327 IN BOOLEAN ResourceConsumer,
1328 IN BOOLEAN EdgeTriggered,
1329 IN BOOLEAN ActiveLow,
1341 UINT32 *FirstInterrupt;
1343 if ((IrqList ==
NULL) ||
1345 ((NameOpNode ==
NULL) && (NewRdNode ==
NULL)))
1348 return EFI_INVALID_PARAMETER;
1352 RdInterrupt.Header.Header.Bits.Name =
1353 ACPI_LARGE_EXTENDED_IRQ_DESCRIPTOR_NAME;
1354 RdInterrupt.Header.Header.Bits.Type = ACPI_LARGE_ITEM_FLAG;
1356 sizeof (ACPI_LARGE_RESOURCE_HEADER);
1359 RdInterrupt.InterruptVectorFlags = (ResourceConsumer ? BIT0 : 0) |
1360 (EdgeTriggered ? BIT1 : 0) |
1361 (ActiveLow ? BIT2 : 0) |
1362 (Shared ? BIT3 : 0);
1363 RdInterrupt.InterruptTableLength = IrqCount;
1366 FirstInterrupt = RdInterrupt.InterruptNumber;
1369 CopyMem (FirstInterrupt, IrqList, (
sizeof (UINT32) * IrqCount));
1373 (UINT8 *)&RdInterrupt,
1377 if (EFI_ERROR (Status)) {
1382 return LinkRdNode (RdNode, NameOpNode, NewRdNode);
1425 IN UINT8 AddressSpace,
1429 IN UINT8 AccessSize,
1440 if (((AddressSpace != EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL) &&
1441 (AccessSize > EFI_ACPI_6_4_QWORD)) ||
1442 ((NameOpNode ==
NULL) && (NewRdNode ==
NULL)))
1445 return EFI_INVALID_PARAMETER;
1449 RdRegister.Header.Header.Bits.Name =
1450 ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME;
1451 RdRegister.Header.Header.Bits.Type = ACPI_LARGE_ITEM_FLAG;
1453 sizeof (ACPI_LARGE_RESOURCE_HEADER);
1456 RdRegister.AddressSpaceId = AddressSpace;
1457 RdRegister.RegisterBitWidth = BitWidth;
1458 RdRegister.RegisterBitOffset = BitOffset;
1459 RdRegister.AddressSize = AccessSize;
1460 RdRegister.RegisterAddress = Address;
1464 (UINT8 *)&RdRegister,
1468 if (EFI_ERROR (Status)) {
1473 return LinkRdNode (RdNode, NameOpNode, NewRdNode);
1509 IN BOOLEAN IsDecoder16,
1510 IN UINT16 AddressMinimum,
1511 IN UINT16 AddressMaximum,
1513 IN UINT8 RangeLength,
1522 if (AddressMinimum > AddressMaximum) {
1523 return EFI_INVALID_PARAMETER;
1526 if (Alignment != 0) {
1528 if ((AddressMinimum % Alignment) != 0) {
1529 return EFI_INVALID_PARAMETER;
1532 if ((AddressMaximum % Alignment) != 0) {
1533 return EFI_INVALID_PARAMETER;
1537 IoDesc.Header.Byte = ACPI_IO_PORT_DESCRIPTOR;
1538 IoDesc.Information = IsDecoder16 ? BIT0 : 0;
1540 IoDesc.BaseAddressMin = AddressMinimum;
1541 IoDesc.BaseAddressMax = AddressMaximum;
1542 IoDesc.Alignment = Alignment;
1543 IoDesc.Length = RangeLength;
1551 if (EFI_ERROR (Status)) {
1556 return LinkRdNode (IoNode, NameOpNode, NewRdNode);
1597 IN UINT8 CheckSum OPTIONAL,
1605 ACPI_SMALL_RESOURCE_HEADER SmallResHdr;
1607 if ((ParentNode ==
NULL) && (NewRdNode ==
NULL)) {
1609 return EFI_INVALID_PARAMETER;
1616 sizeof (ACPI_SMALL_RESOURCE_HEADER);
1617 SmallResHdr.Bits.Name = ACPI_SMALL_END_TAG_DESCRIPTOR_NAME;
1618 SmallResHdr.Bits.Type = ACPI_SMALL_ITEM_FLAG;
1621 EndTag.Desc = SmallResHdr.Byte;
1622 EndTag.Checksum = CheckSum;
1630 if (EFI_ERROR (Status)) {
1635 if (NewRdNode !=
NULL) {
1636 *NewRdNode = RdNode;
1639 if (ParentNode !=
NULL) {
1648 Status = EFI_INVALID_PARAMETER;
1658 if (EFI_ERROR (Status)) {
1667 if (RdNode !=
NULL) {
PACKED struct @101 EFI_ACPI_DWORD_ADDRESS_SPACE_DESCRIPTOR
PACKED struct @103 EFI_ACPI_EXTENDED_INTERRUPT_DESCRIPTOR
PACKED struct @100 EFI_ACPI_QWORD_ADDRESS_SPACE_DESCRIPTOR
PACKED struct @95 EFI_ACPI_IO_PORT_DESCRIPTOR
PACKED struct @99 EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR
PACKED struct @102 EFI_ACPI_WORD_ADDRESS_SPACE_DESCRIPTOR
PACKED struct @107 EFI_ACPI_GENERIC_REGISTER_DESCRIPTOR
BOOLEAN EFIAPI AmlNodeHasOpCode(IN AML_OBJECT_NODE_HANDLE ObjectNode, IN UINT8 OpCode, IN UINT8 SubOpCode)
EFI_STATUS EFIAPI AmlAppendRdNode(IN AML_OBJECT_NODE_HANDLE BufferOpNode, IN AML_DATA_NODE_HANDLE NewRdNode)
AML_MEMORY_ATTRIBUTES_MTP
AML_MEMORY_ATTRIBUTES_MEM
void * AML_DATA_NODE_HANDLE
void * AML_OBJECT_NODE_HANDLE
EFI_STATUS EFIAPI AmlCreateDataNode(IN EAML_NODE_DATA_TYPE DataType, IN CONST UINT8 *Data, IN UINT32 DataSize, OUT AML_DATA_NODE **NewDataNodePtr)
EFI_STATUS EFIAPI AmlCodeGenEndTag(IN UINT8 CheckSum OPTIONAL, IN AML_OBJECT_NODE *ParentNode OPTIONAL, OUT AML_DATA_NODE **NewRdNode OPTIONAL)
STATIC EFI_STATUS EFIAPI AmlCodeGenRdDWordSpace(IN UINT8 ResourceType, IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsPosDecode, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN UINT8 TypeSpecificFlags, IN UINT32 AddressGranularity, IN UINT32 AddressMinimum, IN UINT32 AddressMaximum, IN UINT32 AddressTranslation, IN UINT32 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
EFI_STATUS EFIAPI AmlCodeGenRdDWordIo(IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN BOOLEAN IsPosDecode, IN UINT8 IsaRanges, IN UINT32 AddressGranularity, IN UINT32 AddressMinimum, IN UINT32 AddressMaximum, IN UINT32 AddressTranslation, IN UINT32 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN BOOLEAN IsDenseTranslation, IN BOOLEAN IsTypeStatic, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
EFI_STATUS EFIAPI AmlCodeGenRdQWordIo(IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN BOOLEAN IsPosDecode, IN UINT8 IsaRanges, IN UINT64 AddressGranularity, IN UINT64 AddressMinimum, IN UINT64 AddressMaximum, IN UINT64 AddressTranslation, IN UINT64 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN BOOLEAN IsDenseTranslation, IN BOOLEAN IsTypeStatic, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
STATIC EFI_STATUS EFIAPI AmlCodeGenRdWordSpace(IN UINT8 ResourceType, IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsPosDecode, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN UINT8 TypeSpecificFlags, IN UINT16 AddressGranularity, IN UINT16 AddressMinimum, IN UINT16 AddressMaximum, IN UINT16 AddressTranslation, IN UINT16 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
STATIC UINT8 EFIAPI MemoryRangeSpecificFlags(IN UINT8 Cacheable, IN BOOLEAN IsReadWrite, IN UINT8 MemoryRangeType, IN BOOLEAN IsTypeStatic)
EFI_STATUS EFIAPI AmlCodeGenRdDWordMemory(IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsPosDecode, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN AML_MEMORY_ATTRIBUTES_MEM Cacheable, IN BOOLEAN IsReadWrite, IN UINT32 AddressGranularity, IN UINT32 AddressMinimum, IN UINT32 AddressMaximum, IN UINT32 AddressTranslation, IN UINT32 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN AML_MEMORY_ATTRIBUTES_MTP MemoryRangeType, IN BOOLEAN IsTypeStatic, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
STATIC EFI_STATUS EFIAPI CheckAddressSpaceFields(IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN UINT64 AddressGranularity, IN UINT64 AddressMinimum, IN UINT64 AddressMaximum, IN UINT64 AddressTranslation, IN UINT64 RangeLength)
EFI_STATUS EFIAPI AmlCodeGenRdWordIo(IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN BOOLEAN IsPosDecode, IN UINT8 IsaRanges, IN UINT16 AddressGranularity, IN UINT16 AddressMinimum, IN UINT16 AddressMaximum, IN UINT16 AddressTranslation, IN UINT16 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN BOOLEAN IsDenseTranslation, IN BOOLEAN IsTypeStatic, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
STATIC EFI_STATUS EFIAPI LinkRdNode(IN AML_DATA_NODE *RdNode, IN AML_OBJECT_NODE *ParentNode, OUT AML_DATA_NODE **NewRdNode)
EFI_STATUS EFIAPI AmlCodeGenRdRegister(IN UINT8 AddressSpace, IN UINT8 BitWidth, IN UINT8 BitOffset, IN UINT64 Address, IN UINT8 AccessSize, IN AML_OBJECT_NODE_HANDLE NameOpNode OPTIONAL, OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
EFI_STATUS EFIAPI AmlCodeGenRdInterrupt(IN BOOLEAN ResourceConsumer, IN BOOLEAN EdgeTriggered, IN BOOLEAN ActiveLow, IN BOOLEAN Shared, IN UINT32 *IrqList, IN UINT8 IrqCount, IN AML_OBJECT_NODE_HANDLE NameOpNode OPTIONAL, OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
STATIC UINT8 EFIAPI AddressSpaceGeneralFlags(IN BOOLEAN IsPosDecode, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed)
STATIC EFI_STATUS EFIAPI AmlCodeGenRdQWordSpace(IN UINT8 ResourceType, IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsPosDecode, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN UINT8 TypeSpecificFlags, IN UINT64 AddressGranularity, IN UINT64 AddressMinimum, IN UINT64 AddressMaximum, IN UINT64 AddressTranslation, IN UINT64 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
STATIC UINT8 EFIAPI RdIoRangeSpecificFlags(IN UINT8 IsaRanges, IN BOOLEAN IsDenseTranslation, IN BOOLEAN IsTypeStatic)
EFI_STATUS EFIAPI AmlCodeGenRdIo(IN BOOLEAN IsDecoder16, IN UINT16 AddressMinimum, IN UINT16 AddressMaximum, IN UINT8 Alignment, IN UINT8 RangeLength, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
EFI_STATUS EFIAPI AmlCodeGenRdQWordMemory(IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsPosDecode, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN AML_MEMORY_ATTRIBUTES_MEM Cacheable, IN BOOLEAN IsReadWrite, IN UINT64 AddressGranularity, IN UINT64 AddressMinimum, IN UINT64 AddressMaximum, IN UINT64 AddressTranslation, IN UINT64 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN AML_MEMORY_ATTRIBUTES_MTP MemoryRangeType, IN BOOLEAN IsTypeStatic, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
EFI_STATUS EFIAPI AmlCodeGenRdMemory32Fixed(BOOLEAN IsReadWrite, UINT32 Address, UINT32 RangeLength, AML_OBJECT_NODE_HANDLE NameOpNode, AML_DATA_NODE_HANDLE *NewMemNode)
EFI_STATUS EFIAPI AmlCodeGenRdWordBusNumber(IN BOOLEAN IsResourceConsumer, IN BOOLEAN IsMinFixed, IN BOOLEAN IsMaxFixed, IN BOOLEAN IsPosDecode, IN UINT16 AddressGranularity, IN UINT16 AddressMinimum, IN UINT16 AddressMaximum, IN UINT16 AddressTranslation, IN UINT16 RangeLength, IN UINT8 ResourceSourceIndex, IN CONST CHAR8 *ResourceSource, IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
#define ASSERT_EFI_ERROR(StatusParameter)
AML_NODE_HANDLE EFIAPI AmlGetFixedArgument(IN AML_OBJECT_NODE_HANDLE ObjectNode, IN EAML_PARSE_INDEX Index)
AML_NODE_HANDLE EFIAPI AmlGetNextVariableArgument(IN AML_NODE_HANDLE Node, IN AML_NODE_HANDLE CurrVarArg)
EAML_NODE_TYPE EFIAPI AmlGetNodeType(IN AML_NODE_HANDLE Node)
EFI_STATUS EFIAPI AmlVarListAddTail(IN AML_NODE_HANDLE ParentNode, IN AML_NODE_HANDLE NewNode)
@ EAmlParseIndexTerm1
Second fixed argument index.
@ EAmlNodeDataTypeResourceData
Resource data element.
EFI_STATUS EFIAPI AmlDeleteTree(IN AML_NODE_HANDLE Node)