\r
EFI_STATUS\r
SetWorker (\r
- UINTN TokenNumber,\r
- VOID *Data,\r
- UINTN Size,\r
- BOOLEAN PtrType\r
+ PCD_TOKEN_NUMBER TokenNumber,\r
+ VOID *Data,\r
+ UINTN Size,\r
+ BOOLEAN PtrType\r
)\r
{\r
UINT32 *LocalTokenNumberTable;\r
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable : \r
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;\r
\r
+ InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
+\r
TokenNumber = IsPeiDb ? TokenNumber\r
: TokenNumber - PEI_LOCAL_TOKEN_NUMBER;\r
\r
- InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
-\r
return SetWorkerByLocalTokenNumber (LocalTokenNumberTable[TokenNumber], Data, Size, PtrType, IsPeiDb);\r
\r
}\r
\r
EFI_STATUS\r
ExSetWorker (\r
- IN UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN CONST EFI_GUID *Guid,\r
VOID *Data,\r
UINTN SetSize,\r
VOID\r
GetExPcdTokenAttributes (\r
IN CONST EFI_GUID *Guid,\r
- IN UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr\r
)\r
{\r
\r
ExAttr->IsPeiDb = FALSE;\r
ExAttr->Size = SizeTable[i + DXE_NEX_TOKEN_NUMBER];\r
- ExAttr->TokenNumber = i + DXE_NEX_TOKEN_NUMBER;\r
+ ExAttr->TokenNumber = i + PEI_LOCAL_TOKEN_NUMBER;\r
ExAttr->LocalTokenNumberAlias = ExMap[i].LocalTokenNumber;\r
return;\r
\r
\r
EFI_STATUS\r
SetWorker (\r
- UINTN TokenNumber,\r
- VOID *Data,\r
- UINTN Size,\r
- BOOLEAN PtrType\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
ExSetWorker (\r
- IN UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN CONST EFI_GUID *Guid,\r
VOID *Data,\r
UINTN Size,\r
\r
VOID *\r
GetWorker (\r
- UINTN TokenNumber\r
+ PCD_TOKEN_NUMBER TokenNumber\r
)\r
;\r
\r
VOID *\r
ExGetWorker (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINTN GetSize\r
) \r
;\r
GetHiiVariable (\r
IN EFI_GUID *VariableGuid,\r
IN UINT16 *VariableName,\r
- OUT VOID ** VariableData,\r
+ OUT VOID **VariableData,\r
OUT UINTN *VariableSize\r
)\r
;\r
\r
EFI_STATUS\r
DxeRegisterCallBackWorker (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER 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 PCD_TOKEN_NUMBER TokenNumber,\r
IN CONST EFI_GUID *Guid, OPTIONAL\r
IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
);\r
VOID\r
GetExPcdTokenAttributes (\r
IN CONST EFI_GUID *Guid,\r
- IN UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr\r
)\r
;\r
(*TokenNumber)++;\r
\r
if (*TokenNumber >= PEI_NEX_TOKEN_NUMBER) {\r
- *TokenNumber = 0;\r
+ *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
}\r
\r
} else {\r
\r
if (PEI_EXMAP_TABLE_EMPTY) {\r
- *TokenNumber = (UINTN) PCD_INVALID_TOKEN_NUMBER;\r
+ *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
return EFI_NOT_FOUND;\r
}\r
\r
ASSERT (GuidHob != NULL);\r
\r
CallbackTable = GET_GUID_HOB_DATA (GuidHob);\r
+ CallbackTable = CallbackTable + (TokenNumber * FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry));\r
\r
Compare = Register? NULL: CallBackFunction;\r
Assign = Register? CallBackFunction: NULL;\r
\r
+\r
for (Idx = 0; Idx < FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {\r
if (CallbackTable[Idx] == Compare) {\r
CallbackTable[Idx] = Assign;\r
\r
EFI_STATUS\r
SetWorker (\r
- IN UINTN TokenNumber,\r
- IN VOID *Data,\r
- IN UINTN Size,\r
- IN BOOLEAN PtrType\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
- UINT32 LocalTokenNumber,\r
- VOID *Data,\r
- UINTN Size,\r
- BOOLEAN PtrType\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 UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN CONST EFI_GUID *Guid,\r
- VOID *Data,\r
- UINTN Size,\r
- BOOLEAN PtrType\r
+ IN VOID *Data,\r
+ IN UINTN Size,\r
+ IN BOOLEAN PtrType\r
)\r
;\r
\r
VOID *\r
GetWorker (\r
- UINTN TokenNumber,\r
- UINTN GetSize\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 UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINTN GetSize\r
)\r
;\r
VOID\r
GetExPcdTokenAttributes (\r
IN CONST EFI_GUID *Guid,\r
- IN UINT32 ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr\r
)\r
;\r
\r
+\r
+\r
+\r
EFI_STATUS\r
PeiRegisterCallBackWorker (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN CONST GUID *Guid, OPTIONAL\r
IN PCD_PPI_CALLBACK CallBackFunction,\r
IN BOOLEAN Register\r
);\r
\r
+\r
+\r
+\r
VOID\r
BuildPcdDatabase (\r
VOID\r
EFI_STATUS\r
EFIAPI\r
OnsetCallback1 (\r
- IN UINT32 CallBackToken,\r
- IN VOID *TokenData,\r
- IN UINTN TokenDataSize\r
+ IN CONST EFI_GUID *Guid,\r
+ IN UINT32 CallBackToken,\r
+ IN VOID *TokenData,\r
+ IN UINTN TokenDataSize\r
)\r
{\r
DebugPrint (0x80000000, "In CallbackOnSet %x %d\n", * ((UINT32 *)TokenData), TokenDataSize); \r
UINT16 u16;\r
UINT32 u32;\r
UINT64 u64;\r
+ PCD_TOKEN_NUMBER Token;\r
+ \r
+\r
+ LibPcdCallbackOnSet (NULL, PcdToken(PcdTestDynamicUint32), OnsetCallback1);\r
\r
u32 = 0xafafafaf;\r
PcdSet32(PcdTestDynamicUint32, u32);\r
ASSERT (u16 == 0x1234);\r
ASSERT (u64 == PcdGet64(PcdTestDynamicUint64));\r
ASSERT (u32 == PcdGet32(PcdTestDynamicUint32));\r
+\r
+\r
+ Token = PCD_INVALID_TOKEN_NUMBER;\r
+\r
+ do {\r
+ Token = LibPcdGetNextToken (NULL, Token);\r
+ DebugPrint (EFI_D_ERROR, "Next Token Number is %d\n", Token);\r
+ } while (Token != PCD_INVALID_TOKEN_NUMBER);\r
+ \r
\r
return;\r
}\r