+/**\r
+ Function to test if two GIC CPU Interface information structures have the\r
+ same ACPI Processor UID.\r
+\r
+ @param [in] GicCInfo1 Pointer to the first GICC info structure.\r
+ @param [in] GicCInfo2 Pointer to the second GICC info structure.\r
+ @param [in] Index1 Index of GicCInfo1 in the shared list of GIC\r
+ CPU Interface Info structures.\r
+ @param [in] Index2 Index of GicCInfo2 in the shared list of GIC\r
+ CPU Interface Info structures.\r
+\r
+ @retval TRUE GicCInfo1 and GicCInfo2 have the same UID.\r
+ @retval FALSE GicCInfo1 and GicCInfo2 have different UIDs.\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+IsAcpiUidEqual (\r
+ IN CONST VOID * GicCInfo1,\r
+ IN CONST VOID * GicCInfo2,\r
+ IN UINTN Index1,\r
+ IN UINTN Index2\r
+ )\r
+{\r
+ UINT32 Uid1;\r
+ UINT32 Uid2;\r
+\r
+ ASSERT ((GicCInfo1 != NULL) && (GicCInfo2 != NULL));\r
+\r
+ Uid1 = ((CM_ARM_GICC_INFO*)GicCInfo1)->AcpiProcessorUid;\r
+ Uid2 = ((CM_ARM_GICC_INFO*)GicCInfo2)->AcpiProcessorUid;\r
+\r
+ if (Uid1 == Uid2) {\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: MADT: GICC Info Structures %d and %d have the same ACPI " \\r
+ "Processor UID: 0x%x.\n",\r
+ Index1,\r
+ Index2,\r
+ Uid1\r
+ ));\r
+ return TRUE;\r
+ }\r
+\r
+ return FALSE;\r
+}\r
+\r