]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/PCD/Pei/Service.h
Add in support for GetNextTokenNumber API.
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Pei / Service.h
index d775a12a170612104757ba61a44af06ee76b75fc..b0f066817ca0ea57e9868f8b77c953fb87863aa7 100644 (file)
@@ -19,93 +19,112 @@ Module Name: Service.h
 #define _SERVICE_H\r
 \r
 //\r
-// Offset of StateByte\r
+// Please make sure the PCD Serivce PEIM Version is consistent with\r
+// the version of PCD Database generation tool\r
 //\r
-#define PCD_STATEBYTE_HIIENABLE           0x01\r
-#define PCD_STATEBYTE_SKUENABLE           0x02\r
-#define PCD_STATEBYTE_VPDENABLE           0x04\r
-#define PCD_STATEBYTE_SKUDATAARRAYENABLE  0x08\r
-#define PCD_STATEBYTE_DATUMTYPE           0x70\r
-#define PCD_STATEBYTE_EXTENDEDGUIDPRESENT 0x80\r
-\r
-#define PCD_DATUMTYPE_OFFSET 4\r
+#define PCD_PEI_SERVICE_DRIVER_VERSION      1\r
 \r
 //\r
-// The definitions for interpreting DatumType\r
+// PCD_PEI_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
+// and generated by PCD Database generation tool.\r
 //\r
-#define PCD_BYTE8   (0x00 << PCD_DATUMTYPE_OFFSET)\r
-#define PCD_BYTE16  (0x01 << PCD_DATUMTYPE_OFFSET)\r
-#define PCD_BYTE32  (0x02 << PCD_DATUMTYPE_OFFSET)\r
-#define PCD_BYTE64  (0x03 << PCD_DATUMTYPE_OFFSET)\r
-#define PCD_POINTER (0x04 << PCD_DATUMTYPE_OFFSET)\r
-#define PCD_BOOLEAN (0x05 << PCD_DATUMTYPE_OFFSET)\r
-\r
-extern GUID gEfiPcdImageHobGuid;\r
+#if (PCD_PEI_SERVICE_PEIM_VERSION != PCD_PEI_DATABASE_GENTOOL_VERSION)\r
+  #error "Please make sure the version of PCD Service PEIM and PCD PEI Database Generation Tool matches"\r
+#endif\r
 \r
 /* Internal Function definitions */\r
 \r
-VOID\r
-PeiGetPcdEntryWorker (\r
-  IN UINTN Token,\r
-  IN CONST GUID       *Guid,  OPTIONAL\r
-  IN PCD_DATA_TYPE    Type,\r
-  OUT VOID            *Data\r
-  );\r
+PEI_PCD_DATABASE *\r
+GetPcdDatabase (\r
+  VOID\r
+  )\r
+;\r
 \r
 EFI_STATUS\r
-PeiSetPcdEntryWorker (\r
-  IN UINTN Token,\r
-  IN CONST GUID       *Guid,  OPTIONAL\r
-  IN PCD_DATA_TYPE    Type,\r
-  IN VOID       *Data\r
-  );\r
+SetWorker (\r
+  IN PCD_TOKEN_NUMBER   TokenNumber,\r
+  IN VOID               *Data,\r
+  IN UINTN              Size,\r
+  IN BOOLEAN            PtrType\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+SetWorkerByLocalTokenNumber (\r
+  IN UINT32        LocalTokenNumber,\r
+  IN VOID          *Data,\r
+  IN UINTN         Size,\r
+  IN BOOLEAN       PtrType\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+ExSetWorker (\r
+  IN PCD_TOKEN_NUMBER     ExTokenNumber,\r
+  IN CONST EFI_GUID       *Guid,\r
+  IN VOID                 *Data,\r
+  IN UINTN                Size,\r
+  IN BOOLEAN              PtrType\r
+  )\r
+;\r
+\r
+VOID *\r
+GetWorker (\r
+  IN PCD_TOKEN_NUMBER     TokenNumber,\r
+  IN UINTN                GetSize\r
+  )\r
+;\r
+\r
+VOID *\r
+ExGetWorker (\r
+  IN CONST EFI_GUID   *Guid,\r
+  IN PCD_TOKEN_NUMBER ExTokenNumber,\r
+  IN UINTN            GetSize\r
+  )\r
+;\r
+\r
+typedef struct {\r
+  UINTN   TokenNumber;\r
+  UINTN   Size;\r
+  UINT32  LocalTokenNumberAlias;\r
+} EX_PCD_ENTRY_ATTRIBUTE;\r
+\r
+VOID\r
+GetExPcdTokenAttributes (\r
+  IN CONST EFI_GUID             *Guid,\r
+  IN PCD_TOKEN_NUMBER           ExTokenNumber,\r
+  OUT EX_PCD_ENTRY_ATTRIBUTE    *ExAttr\r
+  )\r
+;\r
+\r
+\r
 \r
-UINTN\r
-PeiGetPcdEntrySizeWorker (\r
-  IN UINTN Token,\r
-  IN CONST GUID       *Guid  OPTIONAL\r
-  );\r
 \r
 EFI_STATUS\r
 PeiRegisterCallBackWorker (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST GUID              *Guid, OPTIONAL\r
+  IN  PCD_TOKEN_NUMBER   TokenNumber,\r
+  IN  CONST GUID         *Guid, OPTIONAL\r
   IN  PCD_PPI_CALLBACK   CallBackFunction,\r
-  IN  BOOLEAN                 Register\r
+  IN  BOOLEAN            Register\r
 );\r
 \r
-EFI_STATUS\r
-PeiSetSku (\r
-  UINTN Id\r
-);\r
 \r
-EFI_STATUS\r
-PeiGetNextTokenWorker (\r
-  IN OUT UINTN *Token,\r
-  IN CONST GUID           *Guid     OPTIONAL\r
-  );\r
 \r
-UINT8 *\r
-LocatePcdImage (\r
-  VOID\r
-);\r
 \r
 VOID\r
 BuildPcdDatabase (\r
-  UINT8 *PcdImageOnFlash\r
+  VOID\r
   )\r
 ;\r
 \r
 \r
-extern EFI_GUID gPcdImageFileGuid;\r
-\r
 //\r
 // PPI Interface Implementation Declaration.\r
 //\r
-EFI_STATUS\r
+VOID\r
 EFIAPI\r
 PeiPcdSetSku (\r
-  IN  UINTN                  SkuId\r
+  IN  SKU_ID                  SkuId\r
   )\r
 ;\r
 \r
@@ -113,7 +132,7 @@ PeiPcdSetSku (
 UINT8\r
 EFIAPI\r
 PeiPcdGet8 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -121,7 +140,7 @@ PeiPcdGet8 (
 UINT16\r
 EFIAPI\r
 PeiPcdGet16 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -129,7 +148,7 @@ PeiPcdGet16 (
 UINT32\r
 EFIAPI\r
 PeiPcdGet32 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -137,7 +156,7 @@ PeiPcdGet32 (
 UINT64\r
 EFIAPI\r
 PeiPcdGet64 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -145,7 +164,7 @@ PeiPcdGet64 (
 VOID *\r
 EFIAPI\r
 PeiPcdGetPtr (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -153,7 +172,7 @@ PeiPcdGetPtr (
 BOOLEAN\r
 EFIAPI\r
 PeiPcdGetBool (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -161,7 +180,7 @@ PeiPcdGetBool (
 UINTN\r
 EFIAPI\r
 PeiPcdGetSize (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -169,8 +188,8 @@ PeiPcdGetSize (
 UINT8\r
 EFIAPI\r
 PeiPcdGet8Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -178,16 +197,16 @@ PeiPcdGet8Ex (
 UINT16\r
 EFIAPI\r
 PeiPcdGet16Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
 UINT32\r
 EFIAPI\r
 PeiPcdGet32Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -195,8 +214,8 @@ PeiPcdGet32Ex (
 UINT64\r
 EFIAPI\r
 PeiPcdGet64Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -204,8 +223,8 @@ PeiPcdGet64Ex (
 VOID *\r
 EFIAPI\r
 PeiPcdGetPtrEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -213,8 +232,8 @@ PeiPcdGetPtrEx (
 BOOLEAN\r
 EFIAPI\r
 PeiPcdGetBoolEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -222,8 +241,8 @@ PeiPcdGetBoolEx (
 UINTN\r
 EFIAPI\r
 PeiPcdGetSizeEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -231,7 +250,7 @@ PeiPcdGetSizeEx (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet8 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT8             Value\r
   )\r
 ;\r
@@ -240,7 +259,7 @@ PeiPcdSet8 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet16 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT16            Value\r
   )\r
 ;\r
@@ -249,7 +268,7 @@ PeiPcdSet16 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet32 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT32            Value\r
   )\r
 ;\r
@@ -258,7 +277,7 @@ PeiPcdSet32 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet64 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT64            Value\r
   )\r
 ;\r
@@ -266,8 +285,9 @@ PeiPcdSet64 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetPtr (\r
-  IN UINTN  TokenNumber,\r
-  IN CONST VOID        *Value\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             SizeOfBuffer,\r
+  IN VOID              *Buffer\r
   )\r
 ;\r
 \r
@@ -275,7 +295,7 @@ PeiPcdSetPtr (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetBool (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN BOOLEAN           Value\r
   )\r
 ;\r
@@ -284,8 +304,8 @@ PeiPcdSetBool (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet8Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT8             Value\r
   )\r
 ;\r
@@ -293,8 +313,8 @@ PeiPcdSet8Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet16Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT16            Value\r
   )\r
 ;\r
@@ -303,8 +323,8 @@ PeiPcdSet16Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet32Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT32            Value\r
   )\r
 ;\r
@@ -313,8 +333,8 @@ PeiPcdSet32Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet64Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT64            Value\r
   )\r
 ;\r
@@ -323,9 +343,10 @@ PeiPcdSet64Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetPtrEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
-  IN CONST VOID        *Value\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             SizeOfBuffer,\r
+  IN VOID              *Buffer\r
   )\r
 ;\r
 \r
@@ -333,8 +354,8 @@ PeiPcdSetPtrEx (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetBoolEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN BOOLEAN           Value\r
   )\r
 ;\r
@@ -343,10 +364,10 @@ PeiPcdSetBoolEx (
 \r
 EFI_STATUS\r
 EFIAPI\r
-PcdRegisterCallBackOnSet (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  PCD_PPI_CALLBACK   CallBackFunction\r
+PeiRegisterCallBackOnSet (\r
+  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  PCD_PPI_CALLBACK        CallBackFunction\r
   )\r
 ;\r
 \r
@@ -354,9 +375,9 @@ PcdRegisterCallBackOnSet (
 EFI_STATUS\r
 EFIAPI\r
 PcdUnRegisterCallBackOnSet (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  PCD_PPI_CALLBACK   CallBackFunction\r
+  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  PCD_PPI_CALLBACK        CallBackFunction\r
   )\r
 ;\r
 \r
@@ -364,8 +385,15 @@ PcdUnRegisterCallBackOnSet (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdGetNextToken (\r
-  IN CONST EFI_GUID               *Guid, OPTIONAL\r
-  IN OUT  UINTN    *TokenNumber\r
+  IN CONST EFI_GUID           *Guid, OPTIONAL\r
+  IN OUT  PCD_TOKEN_NUMBER    *TokenNumber\r
   )\r
 ;\r
+\r
+extern EFI_GUID gPcdDataBaseHobGuid;\r
+\r
+extern EFI_GUID gPcdPeiCallbackFnTableHobGuid;\r
+\r
+extern PEI_PCD_DATABASE_INIT gPEIPcdDbInit;\r
+\r
 #endif\r