X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkModulePkg%2FUniversal%2FPCD%2FDxe%2FService.h;h=572d172f3cf0fdec7e4e22b11ec7984bae231073;hp=d33a891eba78375f71e52777383559f859a1cbc0;hb=a696a78c371709fc6a74295296c92c4e94b23a1d;hpb=4c114006de95489973d33a5415bb451bcd6cd62a diff --git a/EdkModulePkg/Universal/PCD/Dxe/Service.h b/EdkModulePkg/Universal/PCD/Dxe/Service.h index d33a891eba..572d172f3c 100644 --- a/EdkModulePkg/Universal/PCD/Dxe/Service.h +++ b/EdkModulePkg/Universal/PCD/Dxe/Service.h @@ -22,7 +22,7 @@ Module Name: Service.h // Please make sure the PCD Serivce PEIM Version is consistent with // the version of PCD Database generation tool // -#define PCD_DXE_SERVICE_DRIVER_VERSION 1 +#define PCD_DXE_SERVICE_DRIVER_VERSION 2 // // PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h @@ -32,111 +32,13 @@ Module Name: Service.h #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches" #endif - -typedef struct { - LIST_ENTRY Node; - PCD_PROTOCOL_CALLBACK CallbackFn; -} CALLBACK_FN_ENTRY; - -#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field) - -// -// Internal Functions -// - -EFI_STATUS -SetWorker ( - UINTN TokenNumber, - VOID *Data, - UINTN Size, - BOOLEAN PtrType - ) -; - -EFI_STATUS -ExSetWorker ( - IN UINT32 ExTokenNumber, - IN CONST EFI_GUID *Guid, - VOID *Data, - UINTN Size, - BOOLEAN PtrType - ) -; - - -VOID * -GetWorker ( - UINTN TokenNumber - ) -; - -VOID * -ExGetWorker ( - IN CONST EFI_GUID *Guid, - IN UINTN ExTokenNumber, - IN UINTN GetSize - ) -; - -UINT32 -GetSkuEnabledTokenNumber ( - UINT32 LocalTokenNumber, - UINTN Size, - BOOLEAN IsPeiDb - ) -; - -EFI_STATUS -GetHiiVariable ( - IN EFI_GUID *VariableGuid, - IN UINT16 *VariableName, - OUT VOID ** VariableData, - OUT UINTN *VariableSize - ) -; - -EFI_STATUS -DxeRegisterCallBackWorker ( - IN UINTN TokenNumber, - IN CONST EFI_GUID *Guid, OPTIONAL - IN PCD_PROTOCOL_CALLBACK CallBackFunction -); - -EFI_STATUS -DxeUnRegisterCallBackWorker ( - IN UINTN TokenNumber, - IN CONST EFI_GUID *Guid, OPTIONAL - IN PCD_PROTOCOL_CALLBACK CallBackFunction -); - -VOID -BuildPcdDxeDataBase ( - VOID -); - - -typedef struct { - UINTN TokenNumber; - UINTN Size; - UINT32 LocalTokenNumberAlias; - BOOLEAN IsPeiDb; -} EX_PCD_ENTRY_ATTRIBUTE; - -VOID -GetExPcdTokenAttributes ( - IN CONST EFI_GUID *Guid, - IN UINT32 ExTokenNumber, - OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr - ) -; - // // Protocol Interface function declaration. // VOID EFIAPI DxePcdSetSku ( - IN SKU_ID SkuId + IN UINTN SkuId ) ; @@ -144,7 +46,7 @@ DxePcdSetSku ( UINT8 EFIAPI DxePcdGet8 ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -152,7 +54,7 @@ DxePcdGet8 ( UINT16 EFIAPI DxePcdGet16 ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -160,7 +62,7 @@ DxePcdGet16 ( UINT32 EFIAPI DxePcdGet32 ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -168,7 +70,7 @@ DxePcdGet32 ( UINT64 EFIAPI DxePcdGet64 ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -176,7 +78,7 @@ DxePcdGet64 ( VOID * EFIAPI DxePcdGetPtr ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -184,7 +86,7 @@ DxePcdGetPtr ( BOOLEAN EFIAPI DxePcdGetBool ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -192,7 +94,7 @@ DxePcdGetBool ( UINTN EFIAPI DxePcdGetSize ( - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -201,7 +103,7 @@ UINT8 EFIAPI DxePcdGet8Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -210,7 +112,7 @@ UINT16 EFIAPI DxePcdGet16Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -219,7 +121,7 @@ UINT32 EFIAPI DxePcdGet32Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -229,7 +131,7 @@ UINT64 EFIAPI DxePcdGet64Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -239,7 +141,7 @@ VOID * EFIAPI DxePcdGetPtrEx ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -248,7 +150,7 @@ BOOLEAN EFIAPI DxePcdGetBoolEx ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -257,7 +159,7 @@ UINTN EFIAPI DxePcdGetSizeEx ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber + IN UINTN TokenNumber ) ; @@ -265,7 +167,7 @@ DxePcdGetSizeEx ( EFI_STATUS EFIAPI DxePcdSet8 ( - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT8 Value ) ; @@ -274,7 +176,7 @@ DxePcdSet8 ( EFI_STATUS EFIAPI DxePcdSet16 ( - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT16 Value ) ; @@ -283,7 +185,7 @@ DxePcdSet16 ( EFI_STATUS EFIAPI DxePcdSet32 ( - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT32 Value ) ; @@ -292,7 +194,7 @@ DxePcdSet32 ( EFI_STATUS EFIAPI DxePcdSet64 ( - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT64 Value ) ; @@ -301,9 +203,9 @@ DxePcdSet64 ( EFI_STATUS EFIAPI DxePcdSetPtr ( - IN PCD_TOKEN_NUMBER TokenNumber, - IN UINTN SizeOfBuffer, - IN VOID *Buffer + IN UINTN TokenNumber, + IN UINTN *SizeOfBuffer, + IN VOID *Buffer ) ; @@ -311,7 +213,7 @@ DxePcdSetPtr ( EFI_STATUS EFIAPI DxePcdSetBool ( - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN BOOLEAN Value ) ; @@ -321,7 +223,7 @@ EFI_STATUS EFIAPI DxePcdSet8Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT8 Value ) ; @@ -331,7 +233,7 @@ EFI_STATUS EFIAPI DxePcdSet16Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT16 Value ) ; @@ -341,7 +243,7 @@ EFI_STATUS EFIAPI DxePcdSet32Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT32 Value ) ; @@ -351,7 +253,7 @@ EFI_STATUS EFIAPI DxePcdSet64Ex ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN UINT64 Value ) ; @@ -360,10 +262,10 @@ DxePcdSet64Ex ( EFI_STATUS EFIAPI DxePcdSetPtrEx ( - IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, - IN UINTN SizeOfBuffer, - IN VOID *Buffer + IN CONST EFI_GUID *Guid, + IN UINTN TokenNumber, + IN OUT UINTN *SizeOfBuffer, + IN VOID *Buffer ) ; @@ -372,7 +274,7 @@ EFI_STATUS EFIAPI DxePcdSetBoolEx ( IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, + IN UINTN TokenNumber, IN BOOLEAN Value ) ; @@ -382,8 +284,8 @@ DxePcdSetBoolEx ( EFI_STATUS EFIAPI DxeRegisterCallBackOnSet ( - IN PCD_TOKEN_NUMBER TokenNumber, IN CONST EFI_GUID *Guid, OPTIONAL + IN UINTN TokenNumber, IN PCD_PROTOCOL_CALLBACK CallBackFunction ) ; @@ -392,8 +294,8 @@ DxeRegisterCallBackOnSet ( EFI_STATUS EFIAPI DxeUnRegisterCallBackOnSet ( - IN PCD_TOKEN_NUMBER TokenNumber, IN CONST EFI_GUID *Guid, OPTIONAL + IN UINTN TokenNumber, IN PCD_PROTOCOL_CALLBACK CallBackFunction ) ; @@ -403,28 +305,167 @@ EFI_STATUS EFIAPI DxePcdGetNextToken ( IN CONST EFI_GUID *Guid, OPTIONAL - IN OUT PCD_TOKEN_NUMBER *TokenNumber + IN OUT UINTN *TokenNumber ) ; + + EFI_STATUS -SetWorkerByLocalTokenNumber ( - UINT32 LocalTokenNumber, - VOID *Data, - UINTN Size, - BOOLEAN PtrType, - BOOLEAN IsPeiDb +EFIAPI +DxePcdGetNextTokenSpace ( + IN OUT CONST EFI_GUID **Guid ) ; -PCD_TOKEN_NUMBER + +typedef struct { + LIST_ENTRY Node; + PCD_PROTOCOL_CALLBACK CallbackFn; +} CALLBACK_FN_ENTRY; + +#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field) + +// +// Internal Functions +// + +EFI_STATUS +SetValueWorker ( + IN UINTN TokenNumber, + IN VOID *Data, + IN UINTN Size + ) +; + +EFI_STATUS +SetWorker ( + IN UINTN TokenNumber, + IN VOID *Data, + IN OUT UINTN *Size, + IN BOOLEAN PtrType + ) +; + + +EFI_STATUS +ExSetValueWorker ( + IN UINTN ExTokenNumber, + IN CONST EFI_GUID *Guid, + IN VOID *Data, + IN UINTN SetSize + ) +; + + + +EFI_STATUS +ExSetWorker ( + IN UINTN ExTokenNumber, + IN CONST EFI_GUID *Guid, + IN VOID *Data, + IN OUT UINTN *Size, + IN BOOLEAN PtrType + ) +; + + +VOID * +GetWorker ( + IN UINTN TokenNumber, + IN UINTN GetSize + ) +; + +VOID * +ExGetWorker ( + IN CONST EFI_GUID *Guid, + IN UINTN ExTokenNumber, + IN UINTN GetSize + ) +; + +UINT32 +GetSkuEnabledTokenNumber ( + UINT32 LocalTokenNumber, + UINTN Size, + BOOLEAN IsPeiDb + ) +; + +EFI_STATUS +GetHiiVariable ( + IN EFI_GUID *VariableGuid, + IN UINT16 *VariableName, + OUT UINT8 **VariableData, + OUT UINTN *VariableSize + ) +; + +EFI_STATUS +SetHiiVariable ( + IN EFI_GUID *VariableGuid, + IN UINT16 *VariableName, + IN CONST VOID *Data, + IN UINTN DataSize, + IN UINTN Offset + ) +; + +EFI_STATUS +DxeRegisterCallBackWorker ( + IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, OPTIONAL + IN PCD_PROTOCOL_CALLBACK CallBackFunction +); + +EFI_STATUS +DxeUnRegisterCallBackWorker ( + IN UINTN TokenNumber, + IN CONST EFI_GUID *Guid, OPTIONAL + IN PCD_PROTOCOL_CALLBACK CallBackFunction +); + +VOID +BuildPcdDxeDataBase ( + VOID +); + + +UINTN +GetExPcdTokenNumber ( + IN CONST EFI_GUID *Guid, + IN UINT32 ExTokenNumber + ) +; + + + +EFI_STATUS ExGetNextTokeNumber ( - IN CONST EFI_GUID *Guid, - IN PCD_TOKEN_NUMBER TokenNumber, - IN EFI_GUID *GuidTable, - IN UINTN SizeOfGuidTable, - IN DYNAMICEX_MAPPING *ExMapTable, - IN UINTN SizeOfExMapTable + IN CONST EFI_GUID *Guid, + IN OUT UINTN *TokenNumber, + IN EFI_GUID *GuidTable, + IN UINTN SizeOfGuidTable, + IN DYNAMICEX_MAPPING *ExMapTable, + IN UINTN SizeOfExMapTable + ) +; + + +UINTN +GetPtrTypeSize ( + IN UINTN LocalTokenNumberTableIdx, + OUT UINTN *MaxSize + ) +; + + + +BOOLEAN +SetPtrTypeSize ( + IN UINTN LocalTokenNumberTableIdx, + IN OUT UINTN *CurrentSize ) ; @@ -434,4 +475,6 @@ extern PCD_DATABASE * mPcdDatabase; extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit; +extern EFI_LOCK mPcdDatabaseLock; + #endif