+ if (Revision >= 3) {\r
+ // Validate and populate cache id\r
+ if (CacheInfoNode->CacheId == 0) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: PPTT: The cache id cannot be zero. Status = %r\n",\r
+ Status\r
+ ));\r
+ goto cleanup;\r
+ }\r
+\r
+ CacheIdUnique = IsCacheIdUnique (\r
+ CacheInfoNode->CacheId,\r
+ FoundCacheIds,\r
+ NodeIndex\r
+ );\r
+ if (!CacheIdUnique) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: PPTT: The cache id is not unique. " \\r
+ "CacheId = %d. Status = %r\n",\r
+ CacheInfoNode->CacheId,\r
+ Status\r
+ ));\r
+ goto cleanup;\r
+ }\r
+\r
+ // Store the cache id so we can check future cache ids for uniqueness\r
+ FoundCacheIds[NodeIndex] = CacheInfoNode->CacheId;\r
+\r
+ CacheStruct->CacheId = CacheInfoNode->CacheId;\r
+ }\r
+\r