X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkModulePkg%2FUniversal%2FPCD%2FPei%2FService.h;h=611427b578bd23f0f1aaabd19b0827ee240b3c9f;hp=d775a12a170612104757ba61a44af06ee76b75fc;hb=4c114006de95489973d33a5415bb451bcd6cd62a;hpb=878ddf1fc3540a715f63594ed22b6929e881afb4 diff --git a/EdkModulePkg/Universal/PCD/Pei/Service.h b/EdkModulePkg/Universal/PCD/Pei/Service.h index d775a12a17..611427b578 100644 --- a/EdkModulePkg/Universal/PCD/Pei/Service.h +++ b/EdkModulePkg/Universal/PCD/Pei/Service.h @@ -19,93 +19,106 @@ Module Name: Service.h #define _SERVICE_H // -// Offset of StateByte +// Please make sure the PCD Serivce PEIM Version is consistent with +// the version of PCD Database generation tool // -#define PCD_STATEBYTE_HIIENABLE 0x01 -#define PCD_STATEBYTE_SKUENABLE 0x02 -#define PCD_STATEBYTE_VPDENABLE 0x04 -#define PCD_STATEBYTE_SKUDATAARRAYENABLE 0x08 -#define PCD_STATEBYTE_DATUMTYPE 0x70 -#define PCD_STATEBYTE_EXTENDEDGUIDPRESENT 0x80 - -#define PCD_DATUMTYPE_OFFSET 4 +#define PCD_PEI_SERVICE_DRIVER_VERSION 1 // -// The definitions for interpreting DatumType +// PCD_PEI_DATABASE_GENTOOL_VERSION is defined in Autogen.h +// and generated by PCD Database generation tool. // -#define PCD_BYTE8 (0x00 << PCD_DATUMTYPE_OFFSET) -#define PCD_BYTE16 (0x01 << PCD_DATUMTYPE_OFFSET) -#define PCD_BYTE32 (0x02 << PCD_DATUMTYPE_OFFSET) -#define PCD_BYTE64 (0x03 << PCD_DATUMTYPE_OFFSET) -#define PCD_POINTER (0x04 << PCD_DATUMTYPE_OFFSET) -#define PCD_BOOLEAN (0x05 << PCD_DATUMTYPE_OFFSET) - -extern GUID gEfiPcdImageHobGuid; +#if (PCD_PEI_SERVICE_PEIM_VERSION != PCD_PEI_DATABASE_GENTOOL_VERSION) + #error "Please make sure the version of PCD Service PEIM and PCD PEI Database Generation Tool matches" +#endif /* Internal Function definitions */ -VOID -PeiGetPcdEntryWorker ( - IN UINTN Token, - IN CONST GUID *Guid, OPTIONAL - IN PCD_DATA_TYPE Type, - OUT VOID *Data - ); +PEI_PCD_DATABASE * +GetPcdDatabase ( + VOID + ) +; EFI_STATUS -PeiSetPcdEntryWorker ( - IN UINTN Token, - IN CONST GUID *Guid, OPTIONAL - IN PCD_DATA_TYPE Type, - IN VOID *Data - ); - -UINTN -PeiGetPcdEntrySizeWorker ( - IN UINTN Token, - IN CONST GUID *Guid OPTIONAL - ); +SetWorker ( + IN UINTN TokenNumber, + IN VOID *Data, + IN UINTN Size, + IN BOOLEAN PtrType + ) +; EFI_STATUS -PeiRegisterCallBackWorker ( - IN UINTN TokenNumber, - IN CONST GUID *Guid, OPTIONAL - IN PCD_PPI_CALLBACK CallBackFunction, - IN BOOLEAN Register -); +SetWorkerByLocalTokenNumber ( + UINT32 LocalTokenNumber, + VOID *Data, + UINTN Size, + BOOLEAN PtrType + ) +; EFI_STATUS -PeiSetSku ( - UINTN Id -); +ExSetWorker ( + IN UINT32 ExTokenNumber, + IN CONST EFI_GUID *Guid, + VOID *Data, + UINTN Size, + BOOLEAN PtrType + ) +; -EFI_STATUS -PeiGetNextTokenWorker ( - IN OUT UINTN *Token, - IN CONST GUID *Guid OPTIONAL - ); +VOID * +GetWorker ( + UINTN TokenNumber, + UINTN GetSize + ) +; -UINT8 * -LocatePcdImage ( - VOID +VOID * +ExGetWorker ( + IN CONST EFI_GUID *Guid, + IN UINT32 ExTokenNumber, + IN UINTN GetSize + ) +; + +typedef struct { + UINTN TokenNumber; + UINTN Size; + UINT32 LocalTokenNumberAlias; +} EX_PCD_ENTRY_ATTRIBUTE; + +VOID +GetExPcdTokenAttributes ( + IN CONST EFI_GUID *Guid, + IN UINT32 ExTokenNumber, + OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr + ) +; + +EFI_STATUS +PeiRegisterCallBackWorker ( + IN UINTN TokenNumber, + IN CONST GUID *Guid, OPTIONAL + IN PCD_PPI_CALLBACK CallBackFunction, + IN BOOLEAN Register ); VOID BuildPcdDatabase ( - UINT8 *PcdImageOnFlash + VOID ) ; -extern EFI_GUID gPcdImageFileGuid; - // // PPI Interface Implementation Declaration. // -EFI_STATUS +VOID EFIAPI PeiPcdSetSku ( - IN UINTN SkuId + IN SKU_ID SkuId ) ; @@ -113,7 +126,7 @@ PeiPcdSetSku ( UINT8 EFIAPI PeiPcdGet8 ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -121,7 +134,7 @@ PeiPcdGet8 ( UINT16 EFIAPI PeiPcdGet16 ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -129,7 +142,7 @@ PeiPcdGet16 ( UINT32 EFIAPI PeiPcdGet32 ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -137,7 +150,7 @@ PeiPcdGet32 ( UINT64 EFIAPI PeiPcdGet64 ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -145,7 +158,7 @@ PeiPcdGet64 ( VOID * EFIAPI PeiPcdGetPtr ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -153,7 +166,7 @@ PeiPcdGetPtr ( BOOLEAN EFIAPI PeiPcdGetBool ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -161,7 +174,7 @@ PeiPcdGetBool ( UINTN EFIAPI PeiPcdGetSize ( - IN UINTN TokenNumber + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -169,8 +182,8 @@ PeiPcdGetSize ( UINT8 EFIAPI PeiPcdGet8Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -178,16 +191,16 @@ PeiPcdGet8Ex ( UINT16 EFIAPI PeiPcdGet16Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; UINT32 EFIAPI PeiPcdGet32Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -195,8 +208,8 @@ PeiPcdGet32Ex ( UINT64 EFIAPI PeiPcdGet64Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -204,8 +217,8 @@ PeiPcdGet64Ex ( VOID * EFIAPI PeiPcdGetPtrEx ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -213,8 +226,8 @@ PeiPcdGetPtrEx ( BOOLEAN EFIAPI PeiPcdGetBoolEx ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -222,8 +235,8 @@ PeiPcdGetBoolEx ( UINTN EFIAPI PeiPcdGetSizeEx ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber ) ; @@ -231,7 +244,7 @@ PeiPcdGetSizeEx ( EFI_STATUS EFIAPI PeiPcdSet8 ( - IN UINTN TokenNumber, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT8 Value ) ; @@ -240,7 +253,7 @@ PeiPcdSet8 ( EFI_STATUS EFIAPI PeiPcdSet16 ( - IN UINTN TokenNumber, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT16 Value ) ; @@ -249,7 +262,7 @@ PeiPcdSet16 ( EFI_STATUS EFIAPI PeiPcdSet32 ( - IN UINTN TokenNumber, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT32 Value ) ; @@ -258,7 +271,7 @@ PeiPcdSet32 ( EFI_STATUS EFIAPI PeiPcdSet64 ( - IN UINTN TokenNumber, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT64 Value ) ; @@ -266,8 +279,9 @@ PeiPcdSet64 ( EFI_STATUS EFIAPI PeiPcdSetPtr ( - IN UINTN TokenNumber, - IN CONST VOID *Value + IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN SizeOfBuffer, + IN VOID *Buffer ) ; @@ -275,7 +289,7 @@ PeiPcdSetPtr ( EFI_STATUS EFIAPI PeiPcdSetBool ( - IN UINTN TokenNumber, + IN PCD_TOKEN_NUMBER TokenNumber, IN BOOLEAN Value ) ; @@ -284,8 +298,8 @@ PeiPcdSetBool ( EFI_STATUS EFIAPI PeiPcdSet8Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT8 Value ) ; @@ -293,8 +307,8 @@ PeiPcdSet8Ex ( EFI_STATUS EFIAPI PeiPcdSet16Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT16 Value ) ; @@ -303,8 +317,8 @@ PeiPcdSet16Ex ( EFI_STATUS EFIAPI PeiPcdSet32Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT32 Value ) ; @@ -313,8 +327,8 @@ PeiPcdSet32Ex ( EFI_STATUS EFIAPI PeiPcdSet64Ex ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber, IN UINT64 Value ) ; @@ -323,9 +337,10 @@ PeiPcdSet64Ex ( EFI_STATUS EFIAPI PeiPcdSetPtrEx ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber, - IN CONST VOID *Value + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN SizeOfBuffer, + IN VOID *Buffer ) ; @@ -333,8 +348,8 @@ PeiPcdSetPtrEx ( EFI_STATUS EFIAPI PeiPcdSetBoolEx ( - IN CONST EFI_GUID *Guid, - IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, + IN PCD_TOKEN_NUMBER TokenNumber, IN BOOLEAN Value ) ; @@ -343,10 +358,10 @@ PeiPcdSetBoolEx ( EFI_STATUS EFIAPI -PcdRegisterCallBackOnSet ( - IN UINTN TokenNumber, - IN CONST EFI_GUID *Guid, OPTIONAL - IN PCD_PPI_CALLBACK CallBackFunction +PeiRegisterCallBackOnSet ( + IN PCD_TOKEN_NUMBER TokenNumber, + IN CONST EFI_GUID *Guid, OPTIONAL + IN PCD_PPI_CALLBACK CallBackFunction ) ; @@ -354,9 +369,9 @@ PcdRegisterCallBackOnSet ( EFI_STATUS EFIAPI PcdUnRegisterCallBackOnSet ( - IN UINTN TokenNumber, - IN CONST EFI_GUID *Guid, OPTIONAL - IN PCD_PPI_CALLBACK CallBackFunction + IN PCD_TOKEN_NUMBER TokenNumber, + IN CONST EFI_GUID *Guid, OPTIONAL + IN PCD_PPI_CALLBACK CallBackFunction ) ; @@ -364,8 +379,15 @@ PcdUnRegisterCallBackOnSet ( EFI_STATUS EFIAPI PeiPcdGetNextToken ( - IN CONST EFI_GUID *Guid, OPTIONAL - IN OUT UINTN *TokenNumber + IN CONST EFI_GUID *Guid, OPTIONAL + IN OUT PCD_TOKEN_NUMBER *TokenNumber ) ; + +extern EFI_GUID gPcdDataBaseHobGuid; + +extern EFI_GUID gPcdPeiCallbackFnTableHobGuid; + +extern PEI_PCD_DATABASE_INIT gPEIPcdDbInit; + #endif