FmpDevicePkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Macros Pages
FmpDependencyLib.h File Reference

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)
 
EFI_FIRMWARE_IMAGE_DEP *EFIAPI GetImageDependency (IN EFI_FIRMWARE_IMAGE_AUTHENTICATION *Image, IN UINTN ImageSize, OUT UINT32 *DepexSize, OUT UINT32 *LastAttemptStatus)
 
BOOLEAN EFIAPI EvaluateDependency (IN EFI_FIRMWARE_IMAGE_DEP *Dependencies, IN UINTN DependenciesSize, IN FMP_DEPEX_CHECK_VERSION_DATA *FmpVersions, IN UINTN FmpVersionsCount, OUT UINT32 *LastAttemptStatus)
 

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

Function Documentation

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

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.
EFI_FIRMWARE_IMAGE_DEP* EFIAPI GetImageDependency ( IN EFI_FIRMWARE_IMAGE_AUTHENTICATION *  Image,
IN UINTN  ImageSize,
OUT UINT32 *  DepexSize,
OUT UINT32 *  LastAttemptStatus 
)

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
BOOLEAN EFIAPI ValidateDependency ( IN EFI_FIRMWARE_IMAGE_DEP *  Dependencies,
IN UINTN  MaxDepexSize,
OUT UINT32 *  DepexSize,
OUT UINT32 *  LastAttemptStatus 
)

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.