]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/PCD/Dxe/Service.c
1. Updated PalCallStatic.s in BaseCacheMaintenanceLib
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Dxe / Service.c
index bccd0a600add0835167fa97e99b252cde748d060..4b86cd7795ca38eab1f7871d58e2955bc4a97916 100644 (file)
@@ -24,11 +24,11 @@ Module Name: Service.c
 \r
 PCD_DATABASE * mPcdDatabase;\r
 \r
-LIST_ENTRY mCallbackFnTable[PCD_TOTAL_TOKEN_NUMBER];\r
+LIST_ENTRY *mCallbackFnTable;\r
 \r
 VOID *\r
 GetWorker (\r
-  PCD_TOKEN_NUMBER  TokenNumber,\r
+  UINTN             TokenNumber,\r
   UINTN             GetSize\r
   )\r
 {\r
@@ -83,7 +83,7 @@ GetWorker (
   switch (LocalTokenNumber & ~PCD_DATABASE_OFFSET_MASK) {\r
     case PCD_TYPE_VPD:\r
       VpdHead = (VPD_HEAD *) ((UINT8 *) PcdDb + Offset);\r
-      return (VOID *) (FixedPcdGet32(PcdVpdBaseAddress) + VpdHead->Offset);\r
+      return (VOID *) (UINTN) (FixedPcdGet32(PcdVpdBaseAddress) + VpdHead->Offset);\r
       \r
     case PCD_TYPE_HII:\r
       GuidTable   = IsPeiDb ? mPcdDatabase->PeiDb.Init.GuidTable :\r
@@ -124,7 +124,7 @@ GetWorker (
 \r
 EFI_STATUS\r
 DxeRegisterCallBackWorker (\r
-  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+  IN  UINTN                   TokenNumber,\r
   IN  CONST GUID              *Guid, OPTIONAL\r
   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
 )\r
@@ -134,7 +134,7 @@ DxeRegisterCallBackWorker (
   LIST_ENTRY              *ListNode;\r
 \r
   if (Guid != NULL) {\r
-    TokenNumber = GetExPcdTokenNumber (Guid, TokenNumber);\r
+    TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) TokenNumber);\r
   }\r
 \r
   ListHead = &mCallbackFnTable[TokenNumber];\r
@@ -167,7 +167,7 @@ DxeRegisterCallBackWorker (
 \r
 EFI_STATUS\r
 DxeUnRegisterCallBackWorker (\r
-  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+  IN  UINTN                   TokenNumber,\r
   IN  CONST GUID              *Guid, OPTIONAL\r
   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
 )\r
@@ -177,7 +177,7 @@ DxeUnRegisterCallBackWorker (
   LIST_ENTRY              *ListNode;\r
 \r
   if (Guid != NULL) {\r
-    TokenNumber = GetExPcdTokenNumber (Guid, TokenNumber);\r
+    TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) TokenNumber);\r
   }\r
 \r
   ListHead = &mCallbackFnTable[TokenNumber];\r
@@ -205,10 +205,10 @@ DxeUnRegisterCallBackWorker (
 \r
 \r
 \r
-PCD_TOKEN_NUMBER\r
+UINTN           \r
 ExGetNextTokeNumber (\r
   IN CONST EFI_GUID         *Guid,\r
-  IN PCD_TOKEN_NUMBER       TokenNumber,\r
+  IN UINTN                  TokenNumber,\r
   IN EFI_GUID               *GuidTable,\r
   IN UINTN                  SizeOfGuidTable,\r
   IN DYNAMICEX_MAPPING      *ExMapTable,\r
@@ -272,7 +272,7 @@ ExGetNextTokeNumber (
 VOID\r
 BuildPcdDxeDataBase (\r
   VOID\r
-)\r
+  )\r
 {\r
   PEI_PCD_DATABASE    *PeiDatabase;\r
   EFI_HOB_GUID_TYPE   *GuidHob;\r
@@ -310,6 +310,11 @@ BuildPcdDxeDataBase (
   //\r
   // Initialized the Callback Function Table\r
   //\r
+\r
+  if (PCD_TOTAL_TOKEN_NUMBER != 0) {\r
+    mCallbackFnTable = AllocateZeroPool (PCD_TOTAL_TOKEN_NUMBER * sizeof (LIST_ENTRY));\r
+  }\r
+  \r
   for (Idx = 0; Idx < PCD_TOTAL_TOKEN_NUMBER; Idx++) {\r
     InitializeListHead (&mCallbackFnTable[Idx]);\r
   }\r
@@ -393,15 +398,15 @@ GetSkuEnabledTokenNumber (
   switch (LocalTokenNumber & ~PCD_DATABASE_OFFSET_MASK) {\r
     case PCD_TYPE_VPD:\r
       Value = (UINT8 *) &(((VPD_HEAD *) Value)[i]);\r
-      return ((Value - PcdDb) | PCD_TYPE_VPD);\r
+      return (UINT32) ((Value - PcdDb) | PCD_TYPE_VPD);\r
 \r
     case PCD_TYPE_HII:\r
       Value = (UINT8 *) &(((VARIABLE_HEAD *) Value)[i]);\r
-      return ((Value - PcdDb) | PCD_TYPE_HII);\r
+      return (UINT32) ((Value - PcdDb) | PCD_TYPE_HII);\r
       \r
     case PCD_TYPE_DATA:\r
       Value += Size * i;\r
-      return (Value - PcdDb);\r
+      return (UINT32) (Value - PcdDb);\r
       \r
     default:\r
       ASSERT (FALSE);\r
@@ -452,7 +457,7 @@ InvokeCallbackOnSet (
 \r
 EFI_STATUS\r
 SetWorker (\r
-  PCD_TOKEN_NUMBER        TokenNumber,\r
+  UINTN                   TokenNumber,\r
   VOID                    *Data,\r
   UINTN                   Size,\r
   BOOLEAN                 PtrType\r
@@ -578,7 +583,7 @@ ExGetWorker (
   IN UINTN                  GetSize\r
   ) \r
 {\r
-  return GetWorker(GetExPcdTokenNumber (Guid, ExTokenNumber), GetSize);\r
+  return GetWorker(GetExPcdTokenNumber (Guid, (UINT32) ExTokenNumber), GetSize);\r
 }\r
 \r
 \r
@@ -587,18 +592,18 @@ ExGetWorker (
 \r
 EFI_STATUS\r
 ExSetWorker (\r
-  IN PCD_TOKEN_NUMBER     ExTokenNumber,\r
+  IN UINTN                ExTokenNumber,\r
   IN CONST EFI_GUID       *Guid,\r
   VOID                    *Data,\r
   UINTN                   SetSize,\r
   BOOLEAN                 PtrType\r
   )\r
 {\r
-  PCD_TOKEN_NUMBER        TokenNumber;\r
+  UINTN                   TokenNumber;\r
   \r
-  TokenNumber = GetExPcdTokenNumber (Guid, ExTokenNumber);\r
+  TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) ExTokenNumber);\r
 \r
-  InvokeCallbackOnSet (ExTokenNumber, Guid, TokenNumber, Data, SetSize);\r
+  InvokeCallbackOnSet ((UINT32) ExTokenNumber, Guid, TokenNumber, Data, SetSize);\r
 \r
   SetWorker (TokenNumber, Data, SetSize, PtrType);\r
 \r
@@ -664,10 +669,10 @@ SetHiiVariable (
 \r
 \r
 \r
-PCD_TOKEN_NUMBER\r
+UINTN           \r
 GetExPcdTokenNumber (\r
   IN CONST EFI_GUID             *Guid,\r
-  IN PCD_TOKEN_NUMBER           ExTokenNumber\r
+  IN UINT32                     ExTokenNumber\r
   )\r
 {\r
   UINT32              i;\r