]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/PCD/Dxe/Service.h
Add Lock for cirtical section in PCD database processing routines as PCD database...
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Dxe / Service.h
index d5918f2693f7b7977ce5b19aa2ff11931ec86316..572d172f3cf0fdec7e4e22b11ec7984bae231073 100644 (file)
@@ -18,294 +18,27 @@ Module Name: Service.h
 #ifndef _SERVICE_H\r
 #define _SERVICE_H\r
 \r
-#define USE_AUTOGEN\r
-\r
-#ifndef USE_AUTOGEN\r
 //\r
-// The following definition will be generated by build tool \r
+// Please make sure the PCD Serivce PEIM Version is consistent with\r
+// the version of PCD Database generation tool\r
 //\r
+#define PCD_DXE_SERVICE_DRIVER_VERSION      2\r
 \r
 //\r
-// Common definitions\r
-//\r
-#define PCD_TYPE_SHIFT        24\r
-\r
-\r
-#define PCD_TYPE_DATA         (0x00 << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_HII               (0x80 << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_VPD               (0x40 << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_SKU_ENABLED   (0x20 << PCD_TYPE_SHIFT)\r
-\r
-\r
-#define PCD_DATABASE_OFFSET_MASK (~(PCD_TYPE_HII | PCD_TYPE_VPD | PCD_TYPE_SKU_ENABLED))\r
-\r
-typedef struct  {\r
-  UINT32                ExTokenNumber;\r
-  UINT32                LocalTokenNumber;   // PCD Number of this particular platform build\r
-  UINT16                ExGuidIndex;        // Index of GuidTable\r
-} DYNAMICEX_MAPPING;\r
-\r
-\r
-typedef struct {\r
-  UINT32  SkuDataStartOffset; //We have to use offsetof MACRO as we don't know padding done by compiler\r
-  UINT32  SkuIdTableOffset;   //Offset from the PCD_DB\r
-} SKU_HEAD;\r
-\r
-\r
-typedef struct {\r
-  UINT16  GuidTableIndex;   // Offset in Guid Table in units of GUID.\r
-  UINT16  StringIndex;           // Offset in String Table in units of UINT16.\r
-  UINT16  Offset;           // Offset in Variable\r
-} VARIABLE_HEAD  ;\r
-\r
-\r
-typedef  struct {\r
-  UINT32  Offset;\r
-} VPD_HEAD;\r
-\r
-typedef struct {\r
-  UINT32 LocalTokenNumber;\r
-  UINT16 TokenNumber;\r
-  UINT16 Size;\r
-} SIZEINFO;\r
-\r
-#define offsetof(s,m)                 (UINT32)&(((s *)0)->m)\r
-\r
-\r
-\r
-//\r
-// C Structure generate for PEI PCD Database\r
-//\r
-#define PEI_EXMAPPING_TABLE_SIZE  1\r
-#define PEI_GUID_TABLE_SIZE         1\r
-#define PEI_LOCAL_TOKEN_NUMBER            1\r
-#define PEI_EXTOKEN_NUMBER          1\r
-#define PEI_STRING_TABLE_SIZE        2\r
-#define PEI_SKUID_TABLE_SIZE         3\r
-#define PEI_SIZE_TABLE_SIZE          1\r
-\r
-#define PEI_DATABASE_EMPTRY          FALSE\r
-#define PEI_DYNAMICEX_MAPPING_EMPTY  FALSE\r
-#define PEI_GUID_TABLE_EMPTY         FALSE\r
-#define PEI_STRINGTABLE_EMPTY        FALSE\r
-#define PEI_SIZETABLE_EMPTY          FALSE\r
-#define PEI_SKUID_TABLE_EMPTY        FALSE\r
-\r
-\r
-typedef struct {\r
-\r
-  DYNAMICEX_MAPPING ExMapTable[PEI_EXMAPPING_TABLE_SIZE];\r
-  EFI_GUID          GuidTable[PEI_GUID_TABLE_SIZE];\r
-\r
-  UINT32            LocalTokenNumberTable[PEI_LOCAL_TOKEN_NUMBER];\r
-\r
-\r
-  UINT16            StringTable[PEI_STRING_TABLE_SIZE];\r
-  UINT16            SizeTable[PEI_LOCAL_TOKEN_NUMBER];\r
-  \r
-  SKU_ID            SkuIdTable[PEI_SKUID_TABLE_SIZE];\r
-  \r
-  SKU_ID            SystemSkuId;\r
-\r
-} PEI_PCD_DATABASE_INIT;\r
-\r
-typedef struct {\r
-  UINT8 Dummy;\r
-} PEI_PCD_DATABASE_UNINIT;\r
-\r
-//\r
-// Following code should be generated for PCD DXE driver\r
-//\r
-\r
-#define DXE_EXMAPPING_TABLE_SIZE  1\r
-#define DXE_GUID_TABLE_SIZE         1\r
-#define DXE_TOKEN_NUMBER            1\r
-#define DXE_EXTOKEN_NUMBER          1\r
-#define DXE_STRING_TABLE_SIZE        2\r
-#define DXE_SKUID_TABLE_SIZE         3\r
-#define DXE_SIZE_TABLE_SIZE          1\r
-\r
-#define DXE_DATABASE_EMPTRY          FALSE\r
-#define DXE_DYNAMICEX_MAPPING_EMPTY  FALSE\r
-#define DXE_GUID_TABLE_EMPTY         FALSE\r
-#define DXE_STRINGTABLE_EMPTY        FALSE\r
-#define DXE_SIZETABLE_EMPTY          FALSE\r
-#define DXE_SKUID_TABLE_EMPTY        FALSE\r
-\r
-typedef struct {\r
-  DYNAMICEX_MAPPING ExMapTable[DXE_EXMAPPING_TABLE_SIZE];\r
-  EFI_GUID          GuidTable[DXE_GUID_TABLE_SIZE];\r
-\r
-  UINT32            LocalTokenNumberTable[DXE_TOKEN_NUMBER];\r
-\r
-\r
-  UINT16            StringTable[DXE_STRING_TABLE_SIZE];\r
-  UINT16            SizeTable[DXE_TOKEN_NUMBER];\r
-  \r
-  SKU_ID            SkuIdTable[DXE_SKUID_TABLE_SIZE];\r
-  \r
-} DXE_PCD_DATABASE_INIT;\r
-\r
-typedef struct {\r
-  UINT8 Dummy;\r
-} DXE_PCD_DATABASE_UNINIT;\r
-\r
-\r
-#define DXE_PCD_DB_INIT_VALUE \\r
-    /* ExMapTable */ \\r
-  { \\r
-    { /* ExTokenNumber */ 0x00000001, /* LocalTokenNumberIndex */ 0, /* ExGuidIndex */ 0} \\r
-  }, \\r
-  \\r
-  /* GuidTable */ \\r
-  { \\r
-    { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD }} \\r
-  }, \\r
-  \\r
-  /* LocalTokenNumberTable */ \\r
-  { \\r
-    0 \\r
-  }, \\r
-  \\r
-  /* StringTable */ \\r
-  { \\r
-    L"\0" \\r
-  }, \\r
-  \\r
-  /* SizeTable */ \\r
-  { \\r
-    4 \\r
-  }, \\r
-  \\r
-  /* SkuIdTable */ \\r
-  { \\r
-    /*MaxSku*/ 2, /*SkuId*/ 100, /*SkuId*/200   \\r
-  },\\r
-  \\r
-\r
-//\r
-// End of Autogen Code\r
+// PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
+// and generated by PCD Database generation tool.\r
 //\r
+#if (PCD_DXE_SERVICE_PEIM_VERSION != PCD_DXE_DATABASE_GENTOOL_VERSION)\r
+  #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"\r
 #endif\r
 \r
-/*\r
-typedef struct {\r
-  PEI_PCD_DATABASE_INIT Init;\r
-  PEI_PCD_DATABASE_UNINIT Uninit;\r
-} PEI_PCD_DATABASE;\r
-\r
-\r
-\r
-typedef struct {\r
-  DXE_PCD_DATABASE_INIT Init;\r
-  DXE_PCD_DATABASE_UNINIT Uninit;\r
-} DXE_PCD_DATABASE;\r
-\r
-\r
-typedef struct {\r
-  PEI_PCD_DATABASE PeiDb;\r
-  DXE_PCD_DATABASE DxeDb;\r
-} PCD_DATABASE;\r
-*/\r
-\r
-\r
-//\r
-// Internal Functions\r
-//\r
-\r
-EFI_STATUS\r
-SetWorker (\r
-  UINTN         TokenNumber,\r
-  VOID          *Data,\r
-  UINTN         Size,\r
-  BOOLEAN       PtrType\r
-  )\r
-;\r
-\r
-EFI_STATUS\r
-ExSetWorker (\r
-  IN UINT32               ExTokenNumber,\r
-  IN CONST EFI_GUID       *Guid,\r
-  VOID                    *Data,\r
-  UINTN                   Size,\r
-  BOOLEAN                 PtrType\r
-  )\r
-;\r
-\r
-\r
-VOID *\r
-GetWorker (\r
-  UINTN  TokenNumber\r
-  )\r
-;\r
-\r
-VOID *\r
-ExGetWorker (\r
-  IN CONST EFI_GUID         *Guid,\r
-  IN UINTN                  ExTokenNumber,\r
-  IN UINTN                  GetSize\r
-  ) \r
-;\r
-\r
-UINT32\r
-GetSkuEnabledTokenNumber (\r
-  UINT32 LocalTokenNumber,\r
-  UINTN  Size,\r
-  BOOLEAN IsPeiDb\r
-  ) \r
-;\r
-\r
-EFI_STATUS\r
-GetHiiVariable (\r
-  IN  EFI_GUID      *VariableGuid,\r
-  IN  UINT16        *VariableName,\r
-  OUT VOID          ** VariableData,\r
-  OUT UINTN         *VariableSize\r
-  )\r
-;\r
-\r
-EFI_STATUS\r
-DxeRegisterCallBackWorker (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  PCD_PROTOCOL_CALLBACK   CallBackFunction,\r
-  IN  BOOLEAN                 Reigster\r
-);\r
-\r
-EFI_STATUS\r
-DxeGetNextTokenWorker (\r
-  IN OUT UINTN *Token,\r
-  IN CONST EFI_GUID           *Guid     OPTIONAL\r
-  );\r
-\r
-VOID\r
-BuildPcdDxeDataBase (\r
-  VOID\r
-);\r
-\r
-\r
-typedef struct {\r
-  UINTN   TokenNumber;\r
-  UINTN   Size;\r
-  UINT32  LocalTokenNumberAlias;\r
-  BOOLEAN IsPeiDb;\r
-} EX_PCD_ENTRY_ATTRIBUTE;\r
-\r
-VOID\r
-GetExPcdTokenAttributes (\r
-  IN CONST EFI_GUID             *Guid,\r
-  IN UINT32                     ExTokenNumber,\r
-  OUT EX_PCD_ENTRY_ATTRIBUTE    *ExAttr\r
-  )\r
-;\r
-\r
 //\r
 // Protocol Interface function declaration.\r
 //\r
 VOID\r
 EFIAPI\r
 DxePcdSetSku (\r
-  IN  SKU_ID                  SkuId\r
+  IN  UINTN                  SkuId\r
   )\r
 ;\r
 \r
@@ -313,7 +46,7 @@ DxePcdSetSku (
 UINT8\r
 EFIAPI\r
 DxePcdGet8 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -321,7 +54,7 @@ DxePcdGet8 (
 UINT16\r
 EFIAPI\r
 DxePcdGet16 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -329,7 +62,7 @@ DxePcdGet16 (
 UINT32\r
 EFIAPI\r
 DxePcdGet32 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -337,7 +70,7 @@ DxePcdGet32 (
 UINT64\r
 EFIAPI\r
 DxePcdGet64 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -345,7 +78,7 @@ DxePcdGet64 (
 VOID *\r
 EFIAPI\r
 DxePcdGetPtr (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -353,7 +86,7 @@ DxePcdGetPtr (
 BOOLEAN\r
 EFIAPI\r
 DxePcdGetBool (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -361,7 +94,7 @@ DxePcdGetBool (
 UINTN\r
 EFIAPI\r
 DxePcdGetSize (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -370,7 +103,7 @@ UINT8
 EFIAPI\r
 DxePcdGet8Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -379,7 +112,7 @@ UINT16
 EFIAPI\r
 DxePcdGet16Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -388,7 +121,7 @@ UINT32
 EFIAPI\r
 DxePcdGet32Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -398,7 +131,7 @@ UINT64
 EFIAPI\r
 DxePcdGet64Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -408,7 +141,7 @@ VOID *
 EFIAPI\r
 DxePcdGetPtrEx (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -417,7 +150,7 @@ BOOLEAN
 EFIAPI\r
 DxePcdGetBoolEx (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -426,7 +159,7 @@ UINTN
 EFIAPI\r
 DxePcdGetSizeEx (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber\r
+  IN UINTN             TokenNumber\r
   )\r
 ;\r
 \r
@@ -434,7 +167,7 @@ DxePcdGetSizeEx (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSet8 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT8             Value\r
   )\r
 ;\r
@@ -443,7 +176,7 @@ DxePcdSet8 (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSet16 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT16             Value\r
   )\r
 ;\r
@@ -452,7 +185,7 @@ DxePcdSet16 (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSet32 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT32             Value\r
   )\r
 ;\r
@@ -461,7 +194,7 @@ DxePcdSet32 (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSet64 (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT64            Value\r
   )\r
 ;\r
@@ -470,9 +203,9 @@ DxePcdSet64 (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSetPtr (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
-  IN UINTN             SizeOfBuffer,\r
-  IN VOID              *Buffer\r
+  IN        UINTN             TokenNumber,\r
+  IN        UINTN             *SizeOfBuffer,\r
+  IN        VOID              *Buffer\r
   )\r
 ;\r
 \r
@@ -480,7 +213,7 @@ DxePcdSetPtr (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSetBool (\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN BOOLEAN           Value\r
   )\r
 ;\r
@@ -490,7 +223,7 @@ EFI_STATUS
 EFIAPI\r
 DxePcdSet8Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT8             Value\r
   )\r
 ;\r
@@ -500,7 +233,7 @@ EFI_STATUS
 EFIAPI\r
 DxePcdSet16Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT16            Value\r
   )\r
 ;\r
@@ -510,7 +243,7 @@ EFI_STATUS
 EFIAPI\r
 DxePcdSet32Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT32             Value\r
   )\r
 ;\r
@@ -520,7 +253,7 @@ EFI_STATUS
 EFIAPI\r
 DxePcdSet64Ex (\r
   IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             TokenNumber,\r
   IN UINT64            Value\r
   )\r
 ;\r
@@ -529,10 +262,10 @@ DxePcdSet64Ex (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSetPtrEx (\r
-  IN CONST EFI_GUID    *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
-  IN UINTN             SizeOfBuffer,\r
-  IN VOID              *Buffer\r
+  IN        CONST EFI_GUID    *Guid,\r
+  IN        UINTN             TokenNumber,\r
+  IN OUT    UINTN             *SizeOfBuffer,\r
+  IN        VOID              *Buffer\r
   )\r
 ;\r
 \r
@@ -540,8 +273,8 @@ DxePcdSetPtrEx (
 EFI_STATUS\r
 EFIAPI\r
 DxePcdSetBoolEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN UINTN             TokenNumber,\r
   IN BOOLEAN           Value\r
   )\r
 ;\r
@@ -550,9 +283,9 @@ DxePcdSetBoolEx (
 \r
 EFI_STATUS\r
 EFIAPI\r
-PcdRegisterCallBackOnSet (\r
-  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
+DxeRegisterCallBackOnSet (\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  UINTN                   TokenNumber,\r
   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
   )\r
 ;\r
@@ -560,9 +293,9 @@ PcdRegisterCallBackOnSet (
 \r
 EFI_STATUS\r
 EFIAPI\r
-PcdUnRegisterCallBackOnSet (\r
-  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+DxeUnRegisterCallBackOnSet (\r
   IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  UINTN                   TokenNumber,\r
   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
   )\r
 ;\r
@@ -572,24 +305,176 @@ EFI_STATUS
 EFIAPI\r
 DxePcdGetNextToken (\r
   IN CONST EFI_GUID               *Guid, OPTIONAL\r
-  IN OUT   PCD_TOKEN_NUMBER       *TokenNumber\r
+  IN OUT   UINTN                  *TokenNumber\r
   )\r
 ;\r
 \r
+\r
+\r
 EFI_STATUS\r
-SetWorkerByLocalTokenNumber (\r
-  UINT32        LocalTokenNumber,\r
-  VOID          *Data,\r
-  UINTN         Size,\r
-  BOOLEAN       PtrType,\r
-  BOOLEAN       IsPeiDb\r
+EFIAPI\r
+DxePcdGetNextTokenSpace (\r
+  IN OUT CONST EFI_GUID               **Guid\r
+  )\r
+;\r
+\r
+\r
+typedef struct {\r
+  LIST_ENTRY              Node;\r
+  PCD_PROTOCOL_CALLBACK   CallbackFn;\r
+} CALLBACK_FN_ENTRY;\r
+\r
+#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field)\r
+\r
+//\r
+// Internal Functions\r
+//\r
+\r
+EFI_STATUS\r
+SetValueWorker (\r
+  IN UINTN                   TokenNumber,\r
+  IN VOID                    *Data,\r
+  IN UINTN                   Size\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+SetWorker (\r
+  IN          UINTN                     TokenNumber,\r
+  IN          VOID                      *Data,\r
+  IN OUT      UINTN                     *Size,\r
+  IN          BOOLEAN                   PtrType\r
+  )\r
+;\r
+\r
+\r
+EFI_STATUS\r
+ExSetValueWorker (\r
+  IN          UINTN                ExTokenNumber,\r
+  IN          CONST EFI_GUID       *Guid,\r
+  IN          VOID                 *Data,\r
+  IN          UINTN                SetSize\r
+  )\r
+;\r
+\r
+\r
+\r
+EFI_STATUS\r
+ExSetWorker (\r
+  IN      UINTN                ExTokenNumber,\r
+  IN      CONST EFI_GUID       *Guid,\r
+  IN      VOID                 *Data,\r
+  IN OUT  UINTN                *Size,\r
+  IN      BOOLEAN              PtrType\r
+  )\r
+;\r
+\r
+\r
+VOID *\r
+GetWorker (\r
+  IN UINTN             TokenNumber,\r
+  IN UINTN             GetSize\r
+  )\r
+;\r
+\r
+VOID *\r
+ExGetWorker (\r
+  IN CONST EFI_GUID         *Guid,\r
+  IN UINTN                  ExTokenNumber,\r
+  IN UINTN                  GetSize\r
+  ) \r
+;\r
+\r
+UINT32\r
+GetSkuEnabledTokenNumber (\r
+  UINT32 LocalTokenNumber,\r
+  UINTN  Size,\r
+  BOOLEAN IsPeiDb\r
+  ) \r
+;\r
+\r
+EFI_STATUS\r
+GetHiiVariable (\r
+  IN  EFI_GUID      *VariableGuid,\r
+  IN  UINT16        *VariableName,\r
+  OUT UINT8          **VariableData,\r
+  OUT UINTN         *VariableSize\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+SetHiiVariable (\r
+  IN  EFI_GUID     *VariableGuid,\r
+  IN  UINT16       *VariableName,\r
+  IN  CONST VOID   *Data,\r
+  IN  UINTN        DataSize,\r
+  IN  UINTN        Offset\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+DxeRegisterCallBackWorker (\r
+  IN  UINTN                   TokenNumber,\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
+);\r
+\r
+EFI_STATUS\r
+DxeUnRegisterCallBackWorker (\r
+  IN  UINTN                   TokenNumber,\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
+);\r
+\r
+VOID\r
+BuildPcdDxeDataBase (\r
+  VOID\r
+);\r
+\r
+\r
+UINTN           \r
+GetExPcdTokenNumber (\r
+  IN CONST EFI_GUID             *Guid,\r
+  IN UINT32                     ExTokenNumber\r
+  )\r
+;\r
+\r
+\r
+\r
+EFI_STATUS           \r
+ExGetNextTokeNumber (\r
+  IN      CONST EFI_GUID    *Guid,\r
+  IN OUT  UINTN             *TokenNumber,\r
+  IN      EFI_GUID          *GuidTable,\r
+  IN      UINTN             SizeOfGuidTable,\r
+  IN      DYNAMICEX_MAPPING *ExMapTable,\r
+  IN      UINTN             SizeOfExMapTable\r
+  )\r
+;\r
+\r
+\r
+UINTN\r
+GetPtrTypeSize (\r
+  IN    UINTN             LocalTokenNumberTableIdx,\r
+  OUT   UINTN             *MaxSize\r
+  )\r
+;\r
+\r
+\r
+\r
+BOOLEAN\r
+SetPtrTypeSize (\r
+  IN          UINTN             LocalTokenNumberTableIdx,\r
+  IN    OUT   UINTN             *CurrentSize\r
   )\r
 ;\r
 \r
 extern EFI_GUID gPcdDataBaseHobGuid;\r
 \r
-extern PCD_DATABASE * gPcdDatabase;\r
+extern PCD_DATABASE * mPcdDatabase;\r
 \r
 extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;\r
 \r
+extern EFI_LOCK mPcdDatabaseLock;\r
+\r
 #endif\r