- InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
-\r
- return SetWorkerByLocalTokenNumber (LocalTokenNumber, Data, Size, PtrType);\r
-\r
-}\r
-\r
-\r
-\r
-\r
-EFI_STATUS\r
-ExSetWorker (\r
- IN UINT32 ExTokenNumber,\r
- IN CONST EFI_GUID *Guid,\r
- VOID *Data,\r
- UINTN Size,\r
- BOOLEAN PtrType\r
- )\r
-{\r
- PEI_PCD_DATABASE *PeiPcdDb;\r
- EX_PCD_ENTRY_ATTRIBUTE Attr;\r
-\r
-\r
- PeiPcdDb = GetPcdDatabase ();\r
-\r
- GetExPcdTokenAttributes (Guid, ExTokenNumber, &Attr);\r
-\r
- ASSERT (!PtrType && Attr.Size);\r
-\r
- ASSERT (PtrType && Attr.Size >= Size);\r
-\r
- InvokeCallbackOnSet (ExTokenNumber, Guid, Attr.TokenNumber, Data, Size);\r
-\r
- SetWorkerByLocalTokenNumber (Attr.LocalTokenNumberAlias, Data, Size, PtrType);\r
-\r
- return EFI_SUCCESS;\r
- \r
-}\r
-\r
-\r
-\r
+ //\r
+ // We only invoke the callback function for Dynamic Type PCD Entry.\r
+ // For Dynamic EX PCD entry, we have invoked the callback function for Dynamic EX\r
+ // type PCD entry in ExSetWorker.\r
+ //\r
+ if (TokenNumber < PEI_NEX_TOKEN_NUMBER) {\r
+ InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
+ }\r