]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/PCD/Pei/Pcd.c
Add Feature Flag PcdDxePcdDatabaseTraverseEnabled and PcdPeiPcdDatabaseTraverseEnabled
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Pei / Pcd.c
index 4ae4b27ef496e36c599e714f63d95db37d5376f6..fe2fa85f4470cbf49a937ad4b9b53fb0af08d3ab 100644 (file)
@@ -182,7 +182,10 @@ PeiPcdGetSize (
   //\r
   TokenNumber--;\r
 \r
   //\r
   TokenNumber--;\r
 \r
-  ASSERT (TokenNumber < PEI_LOCAL_TOKEN_NUMBER);\r
+  // EBC compiler is very choosy. It may report warning about comparison\r
+  // between UINTN and 0 . So we add 1 in each size of the \r
+  // comparison.\r
+  ASSERT (TokenNumber + 1 < PEI_LOCAL_TOKEN_NUMBER + 1);\r
 \r
   Size = (PeiPcdDb->Init.LocalTokenNumberTable[TokenNumber] & PCD_DATUM_TYPE_ALL_SET) >> PCD_DATUM_TYPE_SHIFT;\r
 \r
 \r
   Size = (PeiPcdDb->Init.LocalTokenNumberTable[TokenNumber] & PCD_DATUM_TYPE_ALL_SET) >> PCD_DATUM_TYPE_SHIFT;\r
 \r
@@ -479,6 +482,10 @@ PeiPcdGetNextToken (
   UINTN               i;\r
   BOOLEAN             Found;\r
     \r
   UINTN               i;\r
   BOOLEAN             Found;\r
     \r
+  if (!FeaturePcdGet (PcdPeiPcdDatabaseTraverseEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+    \r
   if (Guid == NULL) {\r
     if (*TokenNumber > PEI_NEX_TOKEN_NUMBER) {\r
       return EFI_NOT_FOUND;\r
   if (Guid == NULL) {\r
     if (*TokenNumber > PEI_NEX_TOKEN_NUMBER) {\r
       return EFI_NOT_FOUND;\r
@@ -570,6 +577,10 @@ PeiPcdGetNextTokenSpace (
   UINTN               i;\r
   BOOLEAN             Found;\r
 \r
   UINTN               i;\r
   BOOLEAN             Found;\r
 \r
+  if (!FeaturePcdGet (PcdPeiPcdDatabaseTraverseEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   ASSERT (Guid != NULL);\r
 \r
   if (PEI_EXMAP_TABLE_EMPTY) {\r
   ASSERT (Guid != NULL);\r
 \r
   if (PEI_EXMAP_TABLE_EMPTY) {\r