Add in support for GetNextTokenNumber API.
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Pei / Service.c
index 052ff9e91f56dc9975a256e82e2807ff0b49c229..e280dd6715558a39b82c33175db5892bcd0145f2 100644 (file)
@@ -17,18 +17,6 @@ Module Name: Service.c
 #include "Service.h"\r
 \r
 \r
-//\r
-// Build Tool will generate PEI_PCD_DB_INIT_VALUE in Autogen.h\r
-//\r
-/* PEI_PCD_DATABASE_INIT\r
-gPEIPcdDbInit = {\r
-  PEI_PCD_DB_INIT_VALUE\r
-};\r
-*/\r
-\r
-\r
-\r
-\r
 /**\r
   The function registers the CallBackOnSet fucntion\r
   according to TokenNumber and EFI_GUID space.\r
@@ -59,7 +47,7 @@ PeiRegisterCallBackWorker (
 \r
   if (Guid == NULL) {\r
     TokenNumber = ExTokenNumber;\r
-    ASSERT (TokenNumber < PEI_LOCAL_TOKEN_NUMBER);\r
+    ASSERT (TokenNumber < PEI_NEX_TOKEN_NUMBER);\r
     LocalTokenNumber = GetPcdDatabase()->Init.LocalTokenNumberTable[TokenNumber];\r
   } else {\r
     GetExPcdTokenAttributes (Guid, ExTokenNumber, &Attr);\r
@@ -74,10 +62,12 @@ PeiRegisterCallBackWorker (
   ASSERT (GuidHob != NULL);\r
   \r
   CallbackTable = GET_GUID_HOB_DATA (GuidHob);\r
+  CallbackTable = CallbackTable + (TokenNumber * FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry));\r
 \r
   Compare = Register? NULL: CallBackFunction;\r
   Assign  = Register? CallBackFunction: NULL;\r
 \r
+\r
   for (Idx = 0; Idx < FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {\r
     if (CallbackTable[Idx] == Compare) {\r
       CallbackTable[Idx] = Assign;\r
@@ -155,7 +145,7 @@ GetHiiVariable (
   VOID       *Buffer;\r
   EFI_PEI_READ_ONLY_VARIABLE_PPI *VariablePpi;\r
 \r
-  Status = PeiCoreLocatePpi (&gEfiPeiReadOnlyVariablePpiGuid, 0, NULL, &VariablePpi);\r
+  Status = PeiCoreLocatePpi (&gEfiPeiReadOnlyVariablePpiGuid, 0, NULL, (VOID **) &VariablePpi);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
   Size = 0;\r
@@ -173,8 +163,6 @@ GetHiiVariable (
   Status = PeiCoreAllocatePool (Size, &Buffer);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  // declare a local for STP.\r
-  //\r
   Status = VariablePpi->PeiGetVariable (\r
                             GetPeiServicesTablePointer (),\r
                             (UINT16 *) VariableName,\r
@@ -227,7 +215,7 @@ GetSkuEnabledTokenNumber (
       Value += sizeof(VARIABLE_HEAD) * i;\r
       return ((Value - (UINT8 *) PeiPcdDb) | PCD_TYPE_HII);\r
       \r
-    case 0: //Change to a MACRO PCD_TYPE_DATA\r
+    case PCD_TYPE_DATA:\r
       Value += Size * i;\r
       return (Value - (UINT8 *) PeiPcdDb);\r
       \r