//\r
ASSERT (TokenNumber + 1 < PCD_TOTAL_TOKEN_NUMBER + 1);\r
\r
- if ((!PtrType) && (*Size != DxePcdGetSize (TokenNumber + 1))) {\r
- return EFI_INVALID_PARAMETER;\r
+ if (PtrType) {\r
+ if (*Size > DxePcdGetSize (TokenNumber + 1)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ } else {\r
+ if (*Size != DxePcdGetSize (TokenNumber + 1)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
}\r
\r
//\r
@retval EFI_NOT_FOUND If the PCD Entry is not found according to Token Number and GUID space.\r
@retval EFI_OUT_OF_RESOURCES If the callback function can't be registered because there is not free\r
slot left in the CallbackFnTable.\r
+ @retval EFI_INVALID_PARAMETER If the callback function want to be de-registered can not be found.\r
**/\r
EFI_STATUS\r
PeiRegisterCallBackWorker (\r
}\r
}\r
\r
- return Register? EFI_OUT_OF_RESOURCES : EFI_NOT_FOUND;\r
+ return Register? EFI_OUT_OF_RESOURCES : EFI_INVALID_PARAMETER;\r
\r
}\r
\r
\r
LocalTokenNumber = PeiPcdDb->Init.LocalTokenNumberTable[TokenNumber];\r
\r
- if ((!PtrType) && (PeiPcdGetSize(TokenNumber + 1) != *Size)) {\r
- return EFI_INVALID_PARAMETER;\r
+ if (PtrType) {\r
+ if (*Size > PeiPcdGetSize (TokenNumber + 1)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ } else {\r
+ if (*Size != PeiPcdGetSize (TokenNumber + 1)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
}\r
\r
//\r