-/**\r
- Update the ID Type Structure (Type 2) information.\r
-\r
- This function populates the ID Type Structures with information from\r
- the Configuration Manager and and adds this information to the PPTT table.\r
-\r
- @param [in] Generator Pointer to the PPTT Generator.\r
- @param [in] CfgMgrProtocol Pointer to the Configuration Manager\r
- Protocol Interface.\r
- @param [in] Pptt Pointer to PPTT table structure.\r
- @param [in] NodesStartOffset Offset from the start of PPTT table to the\r
- start of ID Type Structures.\r
-\r
- @retval EFI_SUCCESS Structures updated successfully.\r
- @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
- @retval EFI_NOT_FOUND A required object was not found.\r
-**/\r
-STATIC\r
-EFI_STATUS\r
-AddIdTypeStructures (\r
- IN CONST ACPI_PPTT_GENERATOR *CONST Generator,\r
- IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,\r
- IN CONST EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_HEADER *Pptt,\r
- IN CONST UINT32 NodesStartOffset\r
- )\r
-{\r
- EFI_ACPI_6_3_PPTT_STRUCTURE_ID *IdStruct;\r
- CM_ARM_PROC_NODE_ID_INFO *ProcIdInfoNode;\r
- PPTT_NODE_INDEXER *IdStructIterator;\r
- UINT32 NodeCount;\r
-\r
- ASSERT (\r
- (Generator != NULL) &&\r
- (CfgMgrProtocol != NULL) &&\r
- (Pptt != NULL)\r
- );\r
-\r
- IdStruct = (EFI_ACPI_6_3_PPTT_STRUCTURE_ID *)((UINT8 *)Pptt + NodesStartOffset);\r
-\r
- IdStructIterator = Generator->IdStructIndexedList;\r
- NodeCount = Generator->IdStructCount;\r
- while (NodeCount-- != 0) {\r
- ProcIdInfoNode = (CM_ARM_PROC_NODE_ID_INFO *)IdStructIterator->Object;\r
-\r
- // Populate the node\r
- IdStruct->Type = EFI_ACPI_6_3_PPTT_TYPE_ID;\r
- IdStruct->Length = sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_ID);\r
- IdStruct->Reserved[0] = EFI_ACPI_RESERVED_BYTE;\r
- IdStruct->Reserved[1] = EFI_ACPI_RESERVED_BYTE;\r
- IdStruct->VendorId = ProcIdInfoNode->VendorId;\r
- IdStruct->Level1Id = ProcIdInfoNode->Level1Id;\r
- IdStruct->Level2Id = ProcIdInfoNode->Level2Id;\r
- IdStruct->MajorRev = ProcIdInfoNode->MajorRev;\r
- IdStruct->MinorRev = ProcIdInfoNode->MinorRev;\r
- IdStruct->SpinRev = ProcIdInfoNode->SpinRev;\r
-\r
- // Next ID Type Structure\r
- IdStruct = (EFI_ACPI_6_3_PPTT_STRUCTURE_ID *)((UINT8 *)IdStruct +\r
- IdStruct->Length);\r
- IdStructIterator++;\r
- } // ID Type Structure\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r