]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/PCD/Pei/Pcd.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Pei / Pcd.c
diff --git a/EdkModulePkg/Universal/PCD/Pei/Pcd.c b/EdkModulePkg/Universal/PCD/Pei/Pcd.c
deleted file mode 100644 (file)
index daaba4b..0000000
+++ /dev/null
@@ -1,796 +0,0 @@
-/** @file PCD PEIM\r
-\r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. 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
-\r
-\r
-Module Name: Pcd.c\r
-\r
-**/\r
-\r
-#include "Service.h"\r
-\r
-\r
-PCD_PPI mPcdPpiInstance = {\r
-  PeiPcdSetSku,\r
-\r
-  PeiPcdGet8,\r
-  PeiPcdGet16,          \r
-  PeiPcdGet32,          \r
-  PeiPcdGet64,          \r
-  PeiPcdGetPtr,         \r
-  PeiPcdGetBool,     \r
-  PeiPcdGetSize,\r
-\r
-  PeiPcdGet8Ex,\r
-  PeiPcdGet16Ex,          \r
-  PeiPcdGet32Ex,          \r
-  PeiPcdGet64Ex,          \r
-  PeiPcdGetPtrEx,         \r
-  PeiPcdGetBoolEx,     \r
-  PeiPcdGetSizeEx,\r
-  \r
-  PeiPcdSet8,\r
-  PeiPcdSet16,          \r
-  PeiPcdSet32,          \r
-  PeiPcdSet64,          \r
-  PeiPcdSetPtr,         \r
-  PeiPcdSetBool,     \r
-\r
-  PeiPcdSet8Ex,\r
-  PeiPcdSet16Ex,          \r
-  PeiPcdSet32Ex,          \r
-  PeiPcdSet64Ex,          \r
-  PeiPcdSetPtrEx,         \r
-  PeiPcdSetBoolEx,\r
-\r
-  PeiRegisterCallBackOnSet,\r
-  PcdUnRegisterCallBackOnSet,\r
-  PeiPcdGetNextToken,\r
-  PeiPcdGetNextTokenSpace\r
-};\r
-\r
-\r
-\r
-STATIC EFI_PEI_PPI_DESCRIPTOR  mPpiPCD = {\r
-  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-  &gPcdPpiGuid,\r
-  &mPcdPpiInstance\r
-};\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdPeimInit (\r
-  IN EFI_FFS_FILE_HEADER      *FfsHeader,\r
-  IN EFI_PEI_SERVICES         **PeiServices\r
-  )\r
-{\r
-  EFI_STATUS Status;\r
-\r
-  BuildPcdDatabase ();\r
-  \r
-  Status = PeiServicesInstallPpi (&mPpiPCD);\r
-\r
-  ASSERT_EFI_ERROR (Status);\r
-  \r
-  return EFI_SUCCESS;\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-PeiPcdSetSku (\r
-  IN  UINTN                  SkuId\r
-  )\r
-{\r
-\r
-  GetPcdDatabase()->Init.SystemSkuId = (SKU_ID) SkuId;\r
-\r
-  return;\r
-}\r
-\r
-\r
-\r
-UINT8\r
-EFIAPI\r
-PeiPcdGet8 (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  return *((UINT8 *) GetWorker (TokenNumber, sizeof (UINT8)));\r
-}\r
-\r
-\r
-\r
-UINT16\r
-EFIAPI\r
-PeiPcdGet16 (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  return ReadUnaligned16 (GetWorker (TokenNumber, sizeof (UINT16)));\r
-}\r
-\r
-\r
-\r
-UINT32\r
-EFIAPI\r
-PeiPcdGet32 (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  return ReadUnaligned32 (GetWorker (TokenNumber, sizeof (UINT32)));\r
-}\r
-\r
-\r
-\r
-UINT64\r
-EFIAPI\r
-PeiPcdGet64 (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  return ReadUnaligned64 (GetWorker (TokenNumber, sizeof (UINT64)));\r
-}\r
-\r
-\r
-\r
-VOID *\r
-EFIAPI\r
-PeiPcdGetPtr (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  return GetWorker (TokenNumber, 0);\r
-}\r
-\r
-\r
-\r
-BOOLEAN\r
-EFIAPI\r
-PeiPcdGetBool (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  return *((BOOLEAN *) GetWorker (TokenNumber, sizeof (BOOLEAN)));\r
-}\r
-\r
-\r
-\r
-UINTN\r
-EFIAPI\r
-PeiPcdGetSize (\r
-  IN UINTN                    TokenNumber\r
-  )\r
-{\r
-  PEI_PCD_DATABASE    *PeiPcdDb;\r
-  UINTN               Size;\r
-  UINTN               MaxSize;\r
-\r
-  //\r
-  // If DebugAssertEnabled is TRUE, we still need to provide the GET size\r
-  // function as GetWorker and SetWoker need this function to do ASSERT.\r
-  //\r
-  if ((!FeaturePcdGet(PcdPeiPcdDatabaseGetSizeEnabled)) &&\r
-      (!DebugAssertEnabled ())) {\r
-    return 0;\r
-  }\r
-\r
-  PeiPcdDb = GetPcdDatabase ();\r
-  //\r
-  // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
-  // We have to decrement TokenNumber by 1 to make it usable\r
-  // as the array index.\r
-  //\r
-  TokenNumber--;\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
-  // 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
-  if (Size == 0) {\r
-    //\r
-    // For pointer type, we need to scan the SIZE_TABLE to get the current size.\r
-    //\r
-    return GetPtrTypeSize (TokenNumber, &MaxSize, PeiPcdDb);\r
-  } else {\r
-    return Size;\r
-  }\r
-\r
-}\r
-\r
-\r
-\r
-UINT8\r
-EFIAPI\r
-PeiPcdGet8Ex (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINTN                      ExTokenNumber\r
-  )\r
-{\r
-  return *((UINT8 *) ExGetWorker (Guid, ExTokenNumber, sizeof (UINT8)));\r
-}\r
-\r
-\r
-\r
-UINT16\r
-EFIAPI\r
-PeiPcdGet16Ex (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINTN                      ExTokenNumber\r
-  )\r
-{\r
-  return ReadUnaligned16 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT16)));\r
-}\r
-\r
-\r
-\r
-UINT32\r
-EFIAPI\r
-PeiPcdGet32Ex (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINTN                      ExTokenNumber\r
-  )\r
-{\r
-  return ReadUnaligned32 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT32)));\r
-}\r
-\r
-\r
-\r
-UINT64\r
-EFIAPI\r
-PeiPcdGet64Ex (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINTN                      ExTokenNumber\r
-  )\r
-{\r
-  return ReadUnaligned64 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT64)));\r
-}\r
-\r
-\r
-\r
-VOID *\r
-EFIAPI\r
-PeiPcdGetPtrEx (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINTN                      ExTokenNumber\r
-  )\r
-{\r
-  return ExGetWorker (Guid, ExTokenNumber, 0);\r
-}\r
-\r
-\r
-\r
-BOOLEAN\r
-EFIAPI\r
-PeiPcdGetBoolEx (\r
-  IN CONST  EFI_GUID              *Guid,\r
-  IN UINTN                        ExTokenNumber\r
-  )\r
-{\r
-  return *((BOOLEAN *) ExGetWorker (Guid, ExTokenNumber, sizeof (BOOLEAN)));\r
-}\r
-\r
-\r
-\r
-UINTN\r
-EFIAPI\r
-PeiPcdGetSizeEx (\r
-  IN CONST  EFI_GUID              *Guid,\r
-  IN UINTN                        ExTokenNumber\r
-  )\r
-{\r
-  if ((!FeaturePcdGet (PcdPeiPcdDatabaseGetSizeEnabled)) ||  !FeaturePcdGet (PcdPeiPcdDatabaseExEnabled)) {\r
-    return 0;\r
-  }\r
-\r
-  return PeiPcdGetSize (GetExPcdTokenNumber (Guid, ExTokenNumber));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet8 (\r
-  IN UINTN                        TokenNumber,\r
-  IN UINT8                        Value\r
-  )\r
-{\r
-  return SetValueWorker (TokenNumber, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet16 (\r
-  IN UINTN                         TokenNumber,\r
-  IN UINT16                        Value\r
-  )\r
-{\r
-  return SetValueWorker (TokenNumber, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet32 (\r
-  IN UINTN                         TokenNumber,\r
-  IN UINT32                        Value\r
-  )\r
-{\r
-  return SetValueWorker (TokenNumber, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet64 (\r
-  IN UINTN                         TokenNumber,\r
-  IN UINT64                        Value\r
-  )\r
-{\r
-  return SetValueWorker (TokenNumber, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSetPtr (\r
-  IN      UINTN                    TokenNumber,\r
-  IN OUT  UINTN                    *SizeOfBuffer,\r
-  IN      VOID                     *Buffer\r
-  )\r
-{\r
-  return SetWorker (TokenNumber, Buffer, SizeOfBuffer, TRUE);\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSetBool (\r
-  IN UINTN                         TokenNumber,\r
-  IN BOOLEAN                       Value\r
-  )\r
-{\r
-  return SetValueWorker (TokenNumber, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet8Ex (\r
-  IN CONST EFI_GUID               *Guid,\r
-  IN UINTN                        ExTokenNumber,\r
-  IN UINT8                        Value\r
-  )\r
-{\r
-  return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet16Ex (\r
-  IN CONST EFI_GUID               *Guid,\r
-  IN UINTN                        ExTokenNumber,\r
-  IN UINT16                       Value\r
-  )\r
-{\r
-  return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet32Ex (\r
-  IN CONST EFI_GUID               *Guid,\r
-  IN UINTN                        ExTokenNumber,\r
-  IN UINT32                       Value\r
-  )\r
-{\r
-  return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSet64Ex (\r
-  IN CONST EFI_GUID               *Guid,\r
-  IN UINTN                        ExTokenNumber,\r
-  IN UINT64                       Value\r
-  )\r
-{\r
-  return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSetPtrEx (\r
-  IN CONST EFI_GUID               *Guid,\r
-  IN UINTN                        ExTokenNumber,\r
-  IN UINTN                        *SizeOfBuffer,\r
-  IN VOID                         *Value\r
-  )\r
-{\r
-  return ExSetWorker (ExTokenNumber, Guid, Value, SizeOfBuffer, TRUE);\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdSetBoolEx (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINTN                      ExTokenNumber,\r
-  IN BOOLEAN                    Value\r
-  )\r
-{\r
-  return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));\r
-}\r
-\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiRegisterCallBackOnSet (\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  UINTN                       ExTokenNumber,\r
-  IN  PCD_PPI_CALLBACK            CallBackFunction\r
-  )\r
-{\r
-  if (!FeaturePcdGet(PcdPeiPcdDatabaseCallbackOnSetEnabled)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
-  ASSERT (CallBackFunction != NULL);\r
-  \r
-  return PeiRegisterCallBackWorker (ExTokenNumber, Guid, CallBackFunction, TRUE);\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdUnRegisterCallBackOnSet (\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  UINTN                       ExTokenNumber,\r
-  IN  PCD_PPI_CALLBACK            CallBackFunction\r
-  )\r
-{\r
-  if (!FeaturePcdGet(PcdPeiPcdDatabaseCallbackOnSetEnabled)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
-  ASSERT (CallBackFunction != NULL);\r
-  \r
-  return PeiRegisterCallBackWorker (ExTokenNumber, Guid, CallBackFunction, FALSE);\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdGetNextToken (\r
-  IN CONST EFI_GUID               *Guid, OPTIONAL\r
-  IN OUT  UINTN                   *TokenNumber\r
-  )\r
-{\r
-  UINTN               GuidTableIdx;\r
-  PEI_PCD_DATABASE    *PeiPcdDb;\r
-  EFI_GUID            *MatchGuid;\r
-  DYNAMICEX_MAPPING   *ExMapTable;\r
-  UINTN               i;\r
-  BOOLEAN             Found;\r
-  BOOLEAN             PeiExMapTableEmpty;\r
-\r
-  if (!FeaturePcdGet (PcdPeiPcdDatabaseTraverseEnabled)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
-  PeiExMapTableEmpty = PEI_EXMAP_TABLE_EMPTY;\r
-\r
-  if (Guid == NULL) {\r
-    if (*TokenNumber > PEI_NEX_TOKEN_NUMBER) {\r
-      return EFI_NOT_FOUND;\r
-    }\r
-    (*TokenNumber)++;\r
-    if (*TokenNumber > PEI_NEX_TOKEN_NUMBER) {\r
-      *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
-    }\r
-    return EFI_SUCCESS;\r
-  } else {\r
-    if (PeiExMapTableEmpty) {\r
-      *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
-      return EFI_SUCCESS;\r
-    }\r
-    \r
-    //\r
-    // Assume PCD Database AutoGen tool is sorting the ExMap based on the following order\r
-    // 1) ExGuid\r
-    // 2) ExTokenNumber\r
-    //\r
-    PeiPcdDb = GetPcdDatabase ();\r
-    \r
-    MatchGuid = ScanGuid (PeiPcdDb->Init.GuidTable, sizeof(PeiPcdDb->Init.GuidTable), Guid);\r
-\r
-    if (MatchGuid == NULL) {\r
-      *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
-      return EFI_NOT_FOUND;\r
-    }\r
-\r
-    GuidTableIdx = MatchGuid - PeiPcdDb->Init.GuidTable;\r
-\r
-    ExMapTable = PeiPcdDb->Init.ExMapTable;\r
-\r
-    Found = FALSE;\r
-    //\r
-    // Locate the GUID in ExMapTable first.\r
-    //\r
-    for (i = 0; i < PEI_EXMAPPING_TABLE_SIZE; i++) {\r
-      if (ExMapTable[i].ExGuidIndex == GuidTableIdx) {\r
-        Found = TRUE;\r
-        break;\r
-      }\r
-    }\r
-\r
-    if (Found) {\r
-      if (*TokenNumber == PCD_INVALID_TOKEN_NUMBER) {\r
-        *TokenNumber = ExMapTable[i].ExTokenNumber;\r
-         return EFI_SUCCESS;\r
-      }\r
-\r
-      for ( ; i < PEI_EXMAPPING_TABLE_SIZE; i++) {\r
-        if (ExMapTable[i].ExTokenNumber == *TokenNumber) {\r
-          i++;\r
-          if (i == PEI_EXMAPPING_TABLE_SIZE) {\r
-            //\r
-            // Exceed the length of ExMap Table\r
-            //\r
-            *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
-            return EFI_SUCCESS;\r
-          }\r
-          if (ExMapTable[i].ExGuidIndex == GuidTableIdx) {\r
-            *TokenNumber = ExMapTable[i].ExTokenNumber;\r
-            return EFI_SUCCESS;\r
-          } else {\r
-            *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
-            return EFI_SUCCESS;\r
-          }\r
-        }\r
-      }\r
-      return EFI_NOT_FOUND;\r
-    }\r
-  }\r
-\r
-  return EFI_NOT_FOUND;\r
-}\r
-\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeiPcdGetNextTokenSpace (\r
-  IN OUT CONST EFI_GUID          **Guid\r
-  )\r
-{\r
-  UINTN               GuidTableIdx;\r
-  EFI_GUID            *MatchGuid;\r
-  PEI_PCD_DATABASE    *PeiPcdDb;\r
-  DYNAMICEX_MAPPING   *ExMapTable;\r
-  UINTN               i;\r
-  BOOLEAN             Found;\r
-  BOOLEAN             PeiExMapTableEmpty;\r
-\r
-  if (!FeaturePcdGet (PcdPeiPcdDatabaseTraverseEnabled)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
-  ASSERT (Guid != NULL);\r
-\r
-  PeiExMapTableEmpty = PEI_EXMAP_TABLE_EMPTY;\r
-\r
-  if (PeiExMapTableEmpty) {\r
-    if (*Guid != NULL) {\r
-      return EFI_NOT_FOUND;\r
-    } else {\r
-      return EFI_SUCCESS;\r
-    }\r
-  }\r
-\r
-  //\r
-  // Assume PCD Database AutoGen tool is sorting the ExMap based on the following order\r
-  // 1) ExGuid\r
-  // 2) ExTokenNumber\r
-  //\r
-  PeiPcdDb = GetPcdDatabase ();\r
-\r
-  ExMapTable = PeiPcdDb->Init.ExMapTable;\r
-\r
-  if (*Guid == NULL) {\r
-    //\r
-    // return the first Token Space Guid.\r
-    //\r
-    *Guid = &PeiPcdDb->Init.GuidTable[ExMapTable[0].ExGuidIndex];\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  MatchGuid = ScanGuid (PeiPcdDb->Init.GuidTable, sizeof(PeiPcdDb->Init.GuidTable), *Guid);\r
-\r
-  if (MatchGuid == NULL) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-  \r
-  GuidTableIdx = MatchGuid - PeiPcdDb->Init.GuidTable;\r
-\r
-  Found = FALSE;\r
-  for (i = 0; i < PEI_EXMAPPING_TABLE_SIZE; i++) {\r
-    if (ExMapTable[i].ExGuidIndex == GuidTableIdx) {\r
-      Found = TRUE;\r
-      break;\r
-    }\r
-  }\r
-\r
-  if (Found) {\r
-    i++;\r
-    for ( ; i < PEI_EXMAPPING_TABLE_SIZE; i++ ) {\r
-      if (ExMapTable[i].ExGuidIndex != GuidTableIdx ) {\r
-        *Guid = &PeiPcdDb->Init.GuidTable[ExMapTable[i].ExGuidIndex];\r
-        return EFI_SUCCESS;\r
-      }\r
-    }\r
-    *Guid = NULL;\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  return EFI_NOT_FOUND;\r
-\r
-}\r
-\r
-UINTN\r
-GetPtrTypeSize (\r
-  IN    UINTN             LocalTokenNumberTableIdx,\r
-  OUT   UINTN             *MaxSize,\r
-  IN    PEI_PCD_DATABASE  *Database\r
-  )\r
-{\r
-  INTN        SizeTableIdx;\r
-  UINTN       LocalTokenNumber;\r
-  SKU_ID      *SkuIdTable;\r
-  SIZE_INFO   *SizeTable;\r
-  UINTN       i;\r
-\r
-  SizeTableIdx = GetSizeTableIndex (LocalTokenNumberTableIdx, Database);\r
-\r
-  LocalTokenNumber = Database->Init.LocalTokenNumberTable[LocalTokenNumberTableIdx];\r
-\r
-  ASSERT ((LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) == PCD_DATUM_TYPE_POINTER);\r
-  \r
-  SizeTable = Database->Init.SizeTable;\r
-\r
-  *MaxSize = SizeTable[SizeTableIdx];\r
-  //\r
-  // SizeTable only contain record for PCD_DATUM_TYPE_POINTER type \r
-  // PCD entry.\r
-  //\r
-  if (LocalTokenNumber & PCD_TYPE_VPD) {\r
-      //\r
-      // We have only one entry for VPD enabled PCD entry:\r
-      // 1) MAX Size.\r
-      // We consider current size is equal to MAX size.\r
-      //\r
-      return *MaxSize;\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
-      return SizeTable[SizeTableIdx + 1];\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 (LocalTokenNumberTableIdx, Database);\r
-      for (i = 0; i < SkuIdTable[0]; i++) {\r
-        if (SkuIdTable[1 + i] == Database->Init.SystemSkuId) {\r
-          return SizeTable[SizeTableIdx + 1 + i];\r
-        }\r
-      }\r
-      return SizeTable[SizeTableIdx + 1];\r
-    }\r
-  }\r
-}\r
-\r
-\r
-\r
-BOOLEAN\r
-SetPtrTypeSize (\r
-  IN          UINTN             LocalTokenNumberTableIdx,\r
-  IN    OUT   UINTN             *CurrentSize,\r
-  IN          PEI_PCD_DATABASE  *Database\r
-  )\r
-{\r
-  INTN        SizeTableIdx;\r
-  UINTN       LocalTokenNumber;\r
-  SKU_ID      *SkuIdTable;\r
-  SIZE_INFO   *SizeTable;\r
-  UINTN       i;\r
-  UINTN       MaxSize;\r
-  \r
-  SizeTableIdx = GetSizeTableIndex (LocalTokenNumberTableIdx, Database);\r
-\r
-  LocalTokenNumber = Database->Init.LocalTokenNumberTable[LocalTokenNumberTableIdx];\r
-\r
-  ASSERT ((LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) == PCD_DATUM_TYPE_POINTER);\r
-  \r
-  SizeTable = Database->Init.SizeTable;\r
-\r
-  MaxSize = SizeTable[SizeTableIdx];\r
-  //\r
-  // SizeTable only contain record for PCD_DATUM_TYPE_POINTER type \r
-  // PCD entry.\r
-  //\r
-  if (LocalTokenNumber & PCD_TYPE_VPD) {\r
-      //\r
-      // We shouldn't come here as we don't support SET for VPD\r
-      //\r
-      ASSERT (FALSE);\r
-      return FALSE;\r
-  } else {\r
-    if ((*CurrentSize > MaxSize) ||\r
-      (*CurrentSize == MAX_ADDRESS)) {\r
-       *CurrentSize = MaxSize;\r
-       return FALSE;\r
-    } \r
-    \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
-      SizeTable[SizeTableIdx + 1] = (SIZE_INFO) *CurrentSize;\r
-      return TRUE;\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 (LocalTokenNumberTableIdx, Database);\r
-      for (i = 0; i < SkuIdTable[0]; i++) {\r
-        if (SkuIdTable[1 + i] == Database->Init.SystemSkuId) {\r
-          SizeTable[SizeTableIdx + 1 + i] = (SIZE_INFO) *CurrentSize;\r
-          return TRUE;\r
-        }\r
-      }\r
-      SizeTable[SizeTableIdx + 1] = (SIZE_INFO) *CurrentSize;\r
-      return TRUE;\r
-    }\r
-  }\r
-\r
-}\r