MdeMoudlePkg/CapsulePei: Optimize AreCapsulesStaged

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1853

AreCapsulesStaged do not need to return the status, only boolean
result is useful. So directly return a boolean value.
Cannot initialize the variable at its definition.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Michael Turner <Michael.Turner@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Signed-off-by: Zhichao gao <zhichao.gao@intel.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
This commit is contained in:
Zhichao Gao 2019-06-10 09:43:59 +08:00 committed by Hao A Wu
parent 0c52961538
commit f654a18b66
1 changed files with 13 additions and 29 deletions

View File

@ -793,29 +793,21 @@ BuildMemoryResourceDescriptor (
/** /**
Check if the capsules are staged. Check if the capsules are staged.
@param UpdateCapsules A pointer to return the check result. @retval TRUE The capsules are staged.
@retval FALSE The capsules are not staged.
@retval EFI_INVALID_PARAMETER The parameter is null.
@retval EFI_SUCCESS The Capsules are staged.
**/ **/
EFI_STATUS BOOLEAN
AreCapsulesStaged ( AreCapsulesStaged (
OUT BOOLEAN *UpdateCapsules VOID
) )
{ {
EFI_STATUS Status; EFI_STATUS Status;
UINTN Size; UINTN Size;
EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices; EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
EFI_PHYSICAL_ADDRESS CapsuleDataPtr64 = 0; EFI_PHYSICAL_ADDRESS CapsuleDataPtr64;
if (UpdateCapsules == NULL) { CapsuleDataPtr64 = 0;
DEBUG ((DEBUG_ERROR, "%a Invalid parameters. Inputs can't be NULL\n", __FUNCTION__));
ASSERT (UpdateCapsules != NULL);
return EFI_INVALID_PARAMETER;
}
*UpdateCapsules = FALSE;
Status = PeiServicesLocatePpi( Status = PeiServicesLocatePpi(
&gEfiPeiReadOnlyVariable2PpiGuid, &gEfiPeiReadOnlyVariable2PpiGuid,
@ -826,7 +818,7 @@ AreCapsulesStaged (
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Failed to find ReadOnlyVariable2PPI\n")); DEBUG ((DEBUG_ERROR, "Failed to find ReadOnlyVariable2PPI\n"));
return Status; return FALSE;
} }
// //
@ -843,10 +835,10 @@ AreCapsulesStaged (
); );
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
*UpdateCapsules = TRUE; return TRUE;
} }
return EFI_SUCCESS; return FALSE;
} }
#define MAX_SG_LIST_HEADS (20) #define MAX_SG_LIST_HEADS (20)
@ -1120,20 +1112,12 @@ CheckCapsuleUpdate (
IN EFI_PEI_SERVICES **PeiServices IN EFI_PEI_SERVICES **PeiServices
) )
{ {
EFI_STATUS Status; if (AreCapsulesStaged ()) {
BOOLEAN Update; return EFI_SUCCESS;
Status = AreCapsulesStaged (&Update);
if (!EFI_ERROR (Status)) {
if (Update) {
Status = EFI_SUCCESS;
} else { } else {
Status = EFI_NOT_FOUND; return EFI_NOT_FOUND;
} }
} }
return Status;
}
/** /**
This function will look at a capsule and determine if it's a test pattern. This function will look at a capsule and determine if it's a test pattern.
If it is, then it will verify it and emit an error message if corruption is detected. If it is, then it will verify it and emit an error message if corruption is detected.