TianoCore EDK2 master
Loading...
Searching...
No Matches
FmpDependencyLib.h File Reference
#include <PiDxe.h>
#include <Protocol/FirmwareManagement.h>

Go to the source code of this file.

Data Structures

struct  FMP_DEPEX_CHECK_VERSION_DATA
 

Functions

BOOLEAN EFIAPI ValidateDependency (IN EFI_FIRMWARE_IMAGE_DEP *Dependencies, IN UINTN MaxDepexSize, OUT UINT32 *DepexSize, OUT UINT32 *LastAttemptStatus OPTIONAL)
 
EFI_FIRMWARE_IMAGE_DEP *EFIAPI GetImageDependency (IN EFI_FIRMWARE_IMAGE_AUTHENTICATION *Image, IN UINTN ImageSize, OUT UINT32 *DepexSize, OUT UINT32 *LastAttemptStatus OPTIONAL)
 
BOOLEAN EFIAPI EvaluateDependency (IN EFI_FIRMWARE_IMAGE_DEP *Dependencies, IN UINTN DependenciesSize, IN FMP_DEPEX_CHECK_VERSION_DATA *FmpVersions OPTIONAL, IN UINTN FmpVersionsCount, OUT UINT32 *LastAttemptStatus OPTIONAL)
 

Detailed Description

Fmp Capsule Dependency support functions for Firmware Management Protocol based firmware updates.

Copyright (c) Microsoft Corporation.
Copyright (c) 2020, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file FmpDependencyLib.h.

Function Documentation

◆ EvaluateDependency()

BOOLEAN EFIAPI EvaluateDependency ( IN EFI_FIRMWARE_IMAGE_DEP Dependencies,
IN UINTN  DependenciesSize,
IN FMP_DEPEX_CHECK_VERSION_DATA *FmpVersions  OPTIONAL,
IN UINTN  FmpVersionsCount,
OUT UINT32 *LastAttemptStatus  OPTIONAL 
)

Evaluate the dependencies. The caller must search all the Fmp instances and gather their versions into FmpVersions parameter. If there is PUSH_GUID opcode in dependency expression with no FmpVersions provided, the dependency will evaluate to FALSE.

Parameters
[in]DependenciesDependency expressions.
[in]DependenciesSizeSize of Dependency expressions.
[in]FmpVersionsArray of Fmp ImageTypeId and version. This parameter is optional and can be set to NULL.
[in]FmpVersionsCountElement count of the array. When FmpVersions is NULL, FmpVersionsCount must be 0.
[out]LastAttemptStatusAn optional pointer to a UINT32 that holds the last attempt status to report back to the caller. This function will set the value to LAST_ATTEMPT_STATUS_SUCCESS if an error code is not set.
Return values
TRUEDependency expressions evaluate to TRUE.
FALSEDependency expressions evaluate to FALSE.

Definition at line 221 of file FmpDependencyLib.c.

◆ GetImageDependency()

EFI_FIRMWARE_IMAGE_DEP *EFIAPI GetImageDependency ( IN EFI_FIRMWARE_IMAGE_AUTHENTICATION Image,
IN UINTN  ImageSize,
OUT UINT32 *  DepexSize,
OUT UINT32 *LastAttemptStatus  OPTIONAL 
)

Get dependency from firmware image.

Parameters
[in]ImagePoints to the firmware image.
[in]ImageSizeSize, in bytes, of the firmware image.
[out]DepexSizeSize, in bytes, of the dependency.
[out]LastAttemptStatusAn optional pointer to a UINT32 that holds the last attempt status to report back to the caller. If a last attempt status error code is not returned, this function will not modify the LastAttemptStatus value.
Return values
Thepointer to dependency.
Null

Definition at line 640 of file FmpDependencyLib.c.

◆ ValidateDependency()

BOOLEAN EFIAPI ValidateDependency ( IN EFI_FIRMWARE_IMAGE_DEP Dependencies,
IN UINTN  MaxDepexSize,
OUT UINT32 *  DepexSize,
OUT UINT32 *LastAttemptStatus  OPTIONAL 
)

Validate the dependency expression and output its size.

Parameters
[in]DependenciesPointer to the EFI_FIRMWARE_IMAGE_DEP.
[in]MaxDepexSizeMax size of the dependency.
[out]DepexSizeSize of dependency.
[out]LastAttemptStatusAn optional pointer to a UINT32 that holds the last attempt status to report back to the caller. If a last attempt status error code is not returned, this function will not modify the LastAttemptStatus value.
Return values
TRUEThe dependency expression is valid.
FALSEThe dependency expression is invalid.

Definition at line 561 of file FmpDependencyLib.c.