#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
-\r
-UINTN\r
-PeiGetPcdEntrySizeWorker (\r
- IN UINTN Token,\r
- IN CONST GUID *Guid OPTIONAL\r
- );\r
+SetWorker (\r
+ IN UINTN TokenNumber,\r
+ IN VOID *Data,\r
+ IN UINTN Size,\r
+ IN BOOLEAN PtrType\r
+ )\r
+;\r
\r
EFI_STATUS\r
-PeiRegisterCallBackWorker (\r
- IN UINTN TokenNumber,\r
- IN CONST GUID *Guid, OPTIONAL\r
- IN PCD_PPI_CALLBACK CallBackFunction,\r
- IN BOOLEAN Register\r
-);\r
+SetWorkerByLocalTokenNumber (\r
+ UINT32 LocalTokenNumber,\r
+ VOID *Data,\r
+ UINTN Size,\r
+ BOOLEAN PtrType\r
+ )\r
+;\r
\r
EFI_STATUS\r
-PeiSetSku (\r
- UINTN Id\r
-);\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
-EFI_STATUS\r
-PeiGetNextTokenWorker (\r
- IN OUT UINTN *Token,\r
- IN CONST GUID *Guid OPTIONAL\r
- );\r
+VOID *\r
+GetWorker (\r
+ UINTN TokenNumber,\r
+ UINTN GetSize\r
+ )\r
+;\r
\r
-UINT8 *\r
-LocatePcdImage (\r
- VOID\r
+VOID *\r
+ExGetWorker (\r
+ IN CONST EFI_GUID *Guid,\r
+ IN UINT32 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 UINT32 ExTokenNumber,\r
+ OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+PeiRegisterCallBackWorker (\r
+ IN UINTN TokenNumber,\r
+ IN CONST GUID *Guid, OPTIONAL\r
+ IN PCD_PPI_CALLBACK CallBackFunction,\r
+ IN BOOLEAN Register\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
UINT8\r
EFIAPI\r
PeiPcdGet8 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
UINT16\r
EFIAPI\r
PeiPcdGet16 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
UINT32\r
EFIAPI\r
PeiPcdGet32 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
UINT64\r
EFIAPI\r
PeiPcdGet64 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
VOID *\r
EFIAPI\r
PeiPcdGetPtr (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
BOOLEAN\r
EFIAPI\r
PeiPcdGetBool (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
UINTN\r
EFIAPI\r
PeiPcdGetSize (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
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
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
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
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
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
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
EFI_STATUS\r
EFIAPI\r
PeiPcdSet8 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT8 Value\r
)\r
;\r
EFI_STATUS\r
EFIAPI\r
PeiPcdSet16 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT16 Value\r
)\r
;\r
EFI_STATUS\r
EFIAPI\r
PeiPcdSet32 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT32 Value\r
)\r
;\r
EFI_STATUS\r
EFIAPI\r
PeiPcdSet64 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT64 Value\r
)\r
;\r
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
EFI_STATUS\r
EFIAPI\r
PeiPcdSetBool (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN BOOLEAN Value\r
)\r
;\r
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
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
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
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
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
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
\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
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
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