]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PCD/Pei/Service.c
MdeModulePkg: Change OPTIONAL keyword usage style
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Pei / Service.c
index af40db8319c39489ef65cd1717838ef17cad5de4..a26e486711b5fa91f7a52f537557195a79b7ef20 100644 (file)
@@ -2,14 +2,8 @@
   The driver internal functions are implmented here.\r
   They build Pei PCD database, and provide access service to PCD database.\r
 \r
-Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -30,8 +24,6 @@ GetLocalTokenNumber (
   )\r
 {\r
   UINT32                LocalTokenNumber;\r
-  UINTN                 Size;\r
-  UINTN                 MaxSize;\r
 \r
   //\r
   // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
@@ -42,17 +34,6 @@ GetLocalTokenNumber (
 \r
   LocalTokenNumber = *((UINT32 *)((UINT8 *)Database + Database->LocalTokenNumberTableOffset) + TokenNumber);\r
 \r
-  Size = (LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) >> PCD_DATUM_TYPE_SHIFT;\r
-\r
-  if ((LocalTokenNumber & PCD_TYPE_SKU_ENABLED) == PCD_TYPE_SKU_ENABLED) {\r
-    if (Size == 0) {\r
-      GetPtrTypeSize (TokenNumber, &MaxSize, Database);\r
-    } else {\r
-      MaxSize = Size;\r
-    }\r
-    LocalTokenNumber = GetSkuEnabledTokenNumber (LocalTokenNumber & ~PCD_TYPE_SKU_ENABLED, MaxSize);\r
-  }\r
-\r
   return LocalTokenNumber;\r
 }\r
 \r
@@ -107,11 +88,19 @@ GetPcdName (
   )\r
 {\r
   UINT8             *StringTable;\r
+  UINTN             NameSize;\r
   PCD_NAME_INDEX    *PcdNameIndex;\r
   CHAR8             *TokenSpaceName;\r
   CHAR8             *PcdName;\r
   CHAR8             *Name;\r
 \r
+  //\r
+  // Return NULL when PCD name table is absent.\r
+  //\r
+  if (Database->PcdNameTableOffset == 0) {\r
+    return NULL;\r
+  }\r
+\r
   //\r
   // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
   // We have to decrement TokenNumber by 1 to make it usable\r
@@ -137,14 +126,15 @@ GetPcdName (
     //\r
     // Need to get the full PCD name.\r
     //\r
-    Name = AllocateZeroPool (AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName));\r
+    NameSize = AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName);\r
+    Name = AllocateZeroPool (NameSize);\r
     ASSERT (Name != NULL);\r
     //\r
     // Catenate TokenSpaceCName and PcdCName with a '.' to form the full PCD name.\r
     //\r
-    AsciiStrCat (Name, TokenSpaceName);\r
+    AsciiStrCatS (Name, NameSize, TokenSpaceName);\r
     Name[AsciiStrSize (TokenSpaceName) - sizeof (CHAR8)] = '.';\r
-    AsciiStrCat (Name, PcdName);  \r
+    AsciiStrCatS (Name, NameSize, PcdName);\r
   }\r
 \r
   return Name;\r
@@ -160,7 +150,7 @@ GetPcdName (
   @param[in]    Guid        The 128-bit unique value that designates the namespace from which to extract the value.\r
   @param[in]    TokenNumber The PCD token number.\r
   @param[out]   PcdInfo     The returned information associated with the requested TokenNumber.\r
-                            The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName. \r
+                            The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.\r
 \r
   @retval  EFI_SUCCESS      The PCD information was returned successfully\r
   @retval  EFI_NOT_FOUND    The PCD service could not find the requested token number.\r
@@ -206,7 +196,7 @@ ExGetPcdInfo (
         PcdInfo->PcdSize = 0;\r
         //\r
         // Here use one representative in the token space to get the TokenSpaceCName.\r
-        // \r
+        //\r
         PcdInfo->PcdName = GetPcdName (TRUE, Database, ExMapTable[Index].TokenNumber);\r
         return EFI_SUCCESS;\r
       } else if (ExMapTable[Index].ExTokenNumber == TokenNumber) {\r
@@ -308,7 +298,7 @@ PeiGetPcdInfo (
 EFI_STATUS\r
 PeiRegisterCallBackWorker (\r
   IN  UINTN                       ExTokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
+  IN  CONST EFI_GUID              *Guid  OPTIONAL,\r
   IN  PCD_PPI_CALLBACK            CallBackFunction,\r
   IN  BOOLEAN                     Register\r
 )\r
@@ -349,7 +339,7 @@ PeiRegisterCallBackWorker (
     //\r
     TokenNumber--;\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
+    // between UINTN and 0 . So we add 1 in each size of the\r
     // comparison.\r
     ASSERT ((TokenNumber + 1) < (LocalTokenCount + 1));\r
   }\r
@@ -366,7 +356,7 @@ PeiRegisterCallBackWorker (
 \r
   GuidHob = GetFirstGuidHob (&gEfiCallerIdGuid);\r
   ASSERT (GuidHob != NULL);\r
-  \r
+\r
   CallbackTable = GET_GUID_HOB_DATA (GuidHob);\r
   CallbackTable = CallbackTable + (TokenNumber * PcdGet32 (PcdMaxPeiPcdCallBackNumberPerPcdEntry));\r
 \r
@@ -387,7 +377,7 @@ PeiRegisterCallBackWorker (
 \r
 \r
 /**\r
-  Find the Pcd database. \r
+  Find the Pcd database.\r
 \r
   @param  FileHandle  Handle of the file the external PCD database binary located.\r
 \r
@@ -456,7 +446,7 @@ BuildPcdDatabase (
   SizeOfCallbackFnTable = Database->LocalTokenCount * sizeof (PCD_PPI_CALLBACK) * PcdGet32 (PcdMaxPeiPcdCallBackNumberPerPcdEntry);\r
 \r
   CallbackFnTable = BuildGuidHob (&gEfiCallerIdGuid, SizeOfCallbackFnTable);\r
-  \r
+\r
   ZeroMem (CallbackFnTable, SizeOfCallbackFnTable);\r
 \r
   return Database;\r
@@ -524,90 +514,7 @@ GetHiiVariable (
 }\r
 \r
 /**\r
-  Find the local token number according to system SKU ID.\r
-\r
-  @param LocalTokenNumber PCD token number\r
-  @param Size             The size of PCD entry.\r
-\r
-  @return Token number according to system SKU ID.\r
-\r
-**/\r
-UINT32\r
-GetSkuEnabledTokenNumber (\r
-  UINT32 LocalTokenNumber,\r
-  UINTN  Size\r
-  ) \r
-{\r
-  PEI_PCD_DATABASE      *PeiPcdDb;\r
-  SKU_HEAD              *SkuHead;\r
-  SKU_ID                *SkuIdTable;\r
-  INTN                  Index;\r
-  UINT8                 *Value;\r
-  BOOLEAN               FoundSku;\r
-\r
-  PeiPcdDb = GetPcdDatabase ();\r
-\r
-  ASSERT ((LocalTokenNumber & PCD_TYPE_SKU_ENABLED) == 0);\r
-\r
-  SkuHead     = (SKU_HEAD *) ((UINT8 *)PeiPcdDb + (LocalTokenNumber & PCD_DATABASE_OFFSET_MASK));\r
-  Value       = (UINT8 *) ((UINT8 *)PeiPcdDb + (SkuHead->SkuDataStartOffset));\r
-  SkuIdTable  = (SKU_ID *) ((UINT8 *)PeiPcdDb + (SkuHead->SkuIdTableOffset));\r
-\r
-  //\r
-  // Find the current system's SKU ID entry in SKU ID table.\r
-  //\r
-  FoundSku = FALSE;\r
-  for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
-    if (PeiPcdDb->SystemSkuId == SkuIdTable[Index + 1]) {\r
-      FoundSku = TRUE;\r
-      break;\r
-    }\r
-  }\r
-\r
-  //\r
-  // Find the default SKU ID entry in SKU ID table.\r
-  //\r
-  if(!FoundSku) {\r
-    for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
-      if (0 == SkuIdTable[Index + 1]) {\r
-        break;\r
-      }\r
-    }\r
-  }\r
-  ASSERT (Index < SkuIdTable[0]);\r
-\r
-  switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {\r
-    case PCD_TYPE_VPD:\r
-      Value = (UINT8 *) &(((VPD_HEAD *) Value)[Index]);\r
-      return (UINT32) ((Value - (UINT8 *) PeiPcdDb) | PCD_TYPE_VPD);\r
-\r
-    case PCD_TYPE_HII:\r
-      Value = (UINT8 *) &(((VARIABLE_HEAD *) Value)[Index]);\r
-      return (UINT32) ((Value - (UINT8 *) PeiPcdDb) | PCD_TYPE_HII);\r
-\r
-    case PCD_TYPE_HII|PCD_TYPE_STRING:\r
-      Value = (UINT8 *) &(((VARIABLE_HEAD *) Value)[Index]);\r
-      return (UINT32) ((Value - (UINT8 *) PeiPcdDb) | PCD_TYPE_HII | PCD_TYPE_STRING);\r
-\r
-    case PCD_TYPE_STRING:\r
-      Value = (UINT8 *) &(((STRING_HEAD *) Value)[Index]);\r
-      return (UINT32) ((Value - (UINT8 *) PeiPcdDb) | PCD_TYPE_STRING);\r
-\r
-    case PCD_TYPE_DATA:\r
-      Value += Size * Index;\r
-      return (UINT32) ((Value - (UINT8 *) PeiPcdDb) | PCD_TYPE_DATA);\r
-\r
-    default:\r
-      ASSERT (FALSE);\r
-  }\r
-\r
-  ASSERT (FALSE);\r
-\r
-  return 0;\r
-}\r
-\r
-/**\r
-  Invoke the callback function when dynamic PCD entry was set, if this PCD entry \r
+  Invoke the callback function when dynamic PCD entry was set, if this PCD entry\r
   has registered callback function.\r
 \r
   @param ExTokenNumber   DynamicEx PCD's token number, if this PCD entry is dyanmicEx\r
@@ -622,7 +529,7 @@ GetSkuEnabledTokenNumber (
 VOID\r
 InvokeCallbackOnSet (\r
   UINTN             ExTokenNumber,\r
-  CONST EFI_GUID    *Guid, OPTIONAL\r
+  CONST EFI_GUID    *Guid  OPTIONAL,\r
   UINTN             TokenNumber,\r
   VOID              *Data,\r
   UINTN             Size\r
@@ -646,14 +553,14 @@ InvokeCallbackOnSet (
 \r
   if (Guid == NULL) {\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
+    // between UINTN and 0 . So we add 1 in each size of the\r
     // comparison.\r
     ASSERT (TokenNumber + 1 < (LocalTokenCount + 1));\r
   }\r
 \r
   GuidHob = GetFirstGuidHob (&gEfiCallerIdGuid);\r
   ASSERT (GuidHob != NULL);\r
-  \r
+\r
   CallbackTable = GET_GUID_HOB_DATA (GuidHob);\r
 \r
   CallbackTable += (TokenNumber * PcdGet32 (PcdMaxPeiPcdCallBackNumberPerPcdEntry));\r
@@ -703,7 +610,7 @@ SetValueWorker (
   @retval EFI_INVALID_PARAMETER  If Size of non-Ptr type PCD does not match the size information in PCD database.\r
   @retval EFI_NOT_FOUND          If value type of PCD entry is intergrate, but not in\r
                                  range of UINT8, UINT16, UINT32, UINT64\r
-  @retval EFI_NOT_FOUND          Can not find the PCD type according to token number.                                \r
+  @retval EFI_NOT_FOUND          Can not find the PCD type according to token number.\r
 **/\r
 EFI_STATUS\r
 SetWorker (\r
@@ -725,7 +632,7 @@ SetWorker (
   if (!FeaturePcdGet(PcdPeiFullPcdDatabaseEnable)) {\r
     return EFI_UNSUPPORTED;\r
   }\r
-  \r
+\r
   //\r
   // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
   // We have to decrement TokenNumber by 1 to make it usable\r
@@ -736,7 +643,7 @@ SetWorker (
   LocalTokenCount = PeiPcdDb->LocalTokenCount;\r
 \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
+  // between UINTN and 0 . So we add 1 in each size of the\r
   // comparison.\r
   ASSERT (TokenNumber + 1 < (LocalTokenCount + 1));\r
 \r
@@ -769,7 +676,7 @@ SetWorker (
 \r
   Offset          = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;\r
   InternalData    = (VOID *) ((UINT8 *) PeiPcdDb + Offset);\r
-  \r
+\r
   switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {\r
     case PCD_TYPE_VPD:\r
     case PCD_TYPE_HII:\r
@@ -821,7 +728,7 @@ SetWorker (
           return EFI_NOT_FOUND;\r
       }\r
     }\r
-      \r
+\r
   }\r
 \r
   ASSERT (FALSE);\r
@@ -853,12 +760,12 @@ ExSetValueWorker (
 \r
 /**\r
   Set value for a dynamic-ex PCD entry.\r
-  \r
-  This routine find the local token number according to dynamic-ex PCD's token \r
+\r
+  This routine find the local token number according to dynamic-ex PCD's token\r
   space guid and token number firstly, and invoke callback function if this PCD\r
   entry registered callback function. Finally, invoken general SetWorker to set\r
   PCD value.\r
-  \r
+\r
   @param ExTokenNumber   Dynamic-ex PCD token number.\r
   @param Guid            Token space guid for dynamic-ex PCD.\r
   @param Data            PCD value want to be set\r
@@ -888,7 +795,7 @@ ExSetWorker (
   if (TokenNumber == PCD_INVALID_TOKEN_NUMBER) {\r
     return EFI_NOT_FOUND;\r
   }\r
-  \r
+\r
   InvokeCallbackOnSet (ExTokenNumber, Guid, TokenNumber, Data, *Size);\r
 \r
   return SetWorker (TokenNumber, Data, Size, PtrType);\r
@@ -911,16 +818,16 @@ ExGetWorker (
   IN UINTN            ExTokenNumber,\r
   IN UINTN            GetSize\r
   )\r
-{ \r
+{\r
   return GetWorker (GetExPcdTokenNumber (Guid, ExTokenNumber), GetSize);\r
 }\r
 \r
 /**\r
   Get the PCD entry pointer in PCD database.\r
-  \r
+\r
   This routine will visit PCD database to find the PCD entry according to given\r
-  token number. The given token number is autogened by build tools and it will be \r
-  translated to local token number. Local token number contains PCD's type and \r
+  token number. The given token number is autogened by build tools and it will be\r
+  translated to local token number. Local token number contains PCD's type and\r
   offset of PCD entry in PCD database.\r
 \r
   @param TokenNumber     Token's number, it is autogened by build tools\r
@@ -948,6 +855,7 @@ GetWorker (
   UINT32              LocalTokenNumber;\r
   UINT32              LocalTokenCount;\r
   UINT8               *VaraiableDefaultBuffer;\r
+  UINTN               VpdBaseAddress;\r
 \r
   //\r
   // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
@@ -960,7 +868,7 @@ GetWorker (
   LocalTokenCount = PeiPcdDb->LocalTokenCount;\r
 \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
+  // between UINTN and 0 . So we add 1 in each size of the\r
   // comparison.\r
   ASSERT (TokenNumber + 1 < (LocalTokenCount + 1));\r
 \r
@@ -976,23 +884,35 @@ GetWorker (
     {\r
       VPD_HEAD *VpdHead;\r
       VpdHead = (VPD_HEAD *) ((UINT8 *)PeiPcdDb + Offset);\r
-      return (VOID *) (UINTN) (PcdGet32 (PcdVpdBaseAddress) + VpdHead->Offset);\r
+\r
+      //\r
+      // PcdVpdBaseAddress64 is DynamicEx PCD only. So, PeiPcdGet64Ex() is used to get its value.\r
+      //\r
+      VpdBaseAddress = (UINTN) PeiPcdGet64Ex (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdVpdBaseAddress64));\r
+      if (VpdBaseAddress == 0) {\r
+        //\r
+        // PcdVpdBaseAddress64 is not set, get value from PcdVpdBaseAddress.\r
+        //\r
+        VpdBaseAddress = (UINTN) PcdGet32 (PcdVpdBaseAddress);\r
+      }\r
+      ASSERT (VpdBaseAddress != 0);\r
+      return (VOID *)(VpdBaseAddress + VpdHead->Offset);\r
     }\r
-      \r
+\r
     case PCD_TYPE_HII|PCD_TYPE_STRING:\r
     case PCD_TYPE_HII:\r
     {\r
       VariableHead = (VARIABLE_HEAD *) ((UINT8 *)PeiPcdDb + Offset);\r
-      \r
+\r
       Guid = (EFI_GUID *) ((UINT8 *)PeiPcdDb + PeiPcdDb->GuidTableOffset) + VariableHead->GuidTableIndex;\r
       Name = (UINT16*)&StringTable[VariableHead->StringIndex];\r
 \r
       if ((LocalTokenNumber & PCD_TYPE_ALL_SET) == (PCD_TYPE_HII|PCD_TYPE_STRING)) {\r
         //\r
-        // If a HII type PCD's datum type is VOID*, the DefaultValueOffset is the index of \r
+        // If a HII type PCD's datum type is VOID*, the DefaultValueOffset is the index of\r
         // string array in string table.\r
         //\r
-        VaraiableDefaultBuffer = (UINT8 *) &StringTable[*(STRING_HEAD*)((UINT8*) PeiPcdDb + VariableHead->DefaultValueOffset)];   \r
+        VaraiableDefaultBuffer = (UINT8 *) &StringTable[*(STRING_HEAD*)((UINT8*) PeiPcdDb + VariableHead->DefaultValueOffset)];\r
       } else {\r
         VaraiableDefaultBuffer = (UINT8 *) PeiPcdDb + VariableHead->DefaultValueOffset;\r
       }\r
@@ -1030,13 +950,13 @@ GetWorker (
     default:\r
       ASSERT (FALSE);\r
       break;\r
-      \r
+\r
   }\r
 \r
   ASSERT (FALSE);\r
-      \r
+\r
   return NULL;\r
-  \r
+\r
 }\r
 \r
 /**\r
@@ -1045,14 +965,14 @@ GetWorker (
   A dynamic-ex type PCD, developer must provide pair of token space guid: token number\r
   in DEC file. PCD database maintain a mapping table that translate pair of {token\r
   space guid: token number} to Token Number.\r
-  \r
+\r
   @param Guid            Token space guid for dynamic-ex PCD entry.\r
   @param ExTokenNumber   Dynamic-ex PCD token number.\r
 \r
   @return Token Number for dynamic-ex PCD.\r
 \r
 **/\r
-UINTN           \r
+UINTN\r
 GetExPcdTokenNumber (\r
   IN CONST EFI_GUID             *Guid,\r
   IN UINTN                      ExTokenNumber\r
@@ -1076,16 +996,16 @@ GetExPcdTokenNumber (
   // error in the BUILD system.\r
   //\r
   ASSERT (MatchGuid != NULL);\r
-  \r
+\r
   MatchGuidIdx = MatchGuid - GuidTable;\r
-  \r
+\r
   for (Index = 0; Index < PeiPcdDb->ExTokenCount; Index++) {\r
-    if ((ExTokenNumber == ExMap[Index].ExTokenNumber) && \r
+    if ((ExTokenNumber == ExMap[Index].ExTokenNumber) &&\r
         (MatchGuidIdx == ExMap[Index].ExGuidIndex)) {\r
       return ExMap[Index].TokenNumber;\r
     }\r
   }\r
-  \r
+\r
   return PCD_INVALID_TOKEN_NUMBER;\r
 }\r
 \r
@@ -1104,36 +1024,8 @@ GetPcdDatabase (
 \r
   GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid);\r
   ASSERT (GuidHob != NULL);\r
-  \r
-  return (PEI_PCD_DATABASE *) GET_GUID_HOB_DATA (GuidHob);\r
-}\r
-\r
-/**\r
-  Get SKU ID table from PCD database.\r
-\r
-  @param LocalTokenNumberTableIdx Index of local token number in token number table.\r
-  @param Database                 PCD database.\r
-\r
-  @return Pointer to SKU ID array table\r
-\r
-**/\r
-SKU_ID *\r
-GetSkuIdArray (\r
-  IN    UINTN             LocalTokenNumberTableIdx,\r
-  IN    PEI_PCD_DATABASE  *Database\r
-  )\r
-{\r
-  SKU_HEAD *SkuHead;\r
-  UINTN     LocalTokenNumber;\r
-\r
-  LocalTokenNumber = *((UINT32 *)((UINT8 *)Database + Database->LocalTokenNumberTableOffset) + LocalTokenNumberTableIdx);\r
 \r
-  ASSERT ((LocalTokenNumber & PCD_TYPE_SKU_ENABLED) != 0);\r
-\r
-  SkuHead = (SKU_HEAD *) ((UINT8 *)Database + (LocalTokenNumber & PCD_DATABASE_OFFSET_MASK));\r
-\r
-  return (SKU_ID *) ((UINT8 *)Database + SkuHead->SkuIdTableOffset);\r
-  \r
+  return (PEI_PCD_DATABASE *) GET_GUID_HOB_DATA (GuidHob);\r
 }\r
 \r
 /**\r
@@ -1154,8 +1046,7 @@ GetSizeTableIndex (
   UINTN       Index;\r
   UINTN       SizeTableIdx;\r
   UINTN       LocalTokenNumber;\r
-  SKU_ID      *SkuIdTable;\r
-  \r
+\r
   SizeTableIdx = 0;\r
 \r
   for (Index = 0; Index < LocalTokenNumberTableIdx; Index++) {\r
@@ -1163,7 +1054,7 @@ GetSizeTableIndex (
 \r
     if ((LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) == PCD_DATUM_TYPE_POINTER) {\r
       //\r
-      // SizeTable only contain record for PCD_DATUM_TYPE_POINTER type \r
+      // SizeTable only contain record for PCD_DATUM_TYPE_POINTER type\r
       // PCD entry.\r
       //\r
       if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {\r
@@ -1175,22 +1066,12 @@ GetSizeTableIndex (
           //\r
           SizeTableIdx += 2;\r
       } else {\r
-        if ((LocalTokenNumber & PCD_TYPE_SKU_ENABLED) == 0) {\r
           //\r
           // We have only two entry for Non-Sku enabled PCD entry:\r
           // 1) MAX SIZE\r
           // 2) Current Size\r
           //\r
           SizeTableIdx += 2;\r
-        } else {\r
-          //\r
-          // We have these entry for SKU enabled PCD entry\r
-          // 1) MAX SIZE\r
-          // 2) Current Size for each SKU_ID (It is equal to MaxSku).\r
-          //\r
-          SkuIdTable = GetSkuIdArray (Index, Database);\r
-          SizeTableIdx += (UINTN)*SkuIdTable + 1;\r
-        }\r
       }\r
     }\r
 \r