123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /** @file
- EDKII System Capsule library.
- Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef __EDKII_SYSTEM_CAPSULE_LIB_H__
- #define __EDKII_SYSTEM_CAPSULE_LIB_H__
- #include <Guid/EdkiiSystemFmpCapsule.h>
- /**
- Extract ImageFmpInfo from system firmware.
- @param[in] SystemFirmwareImage The System Firmware image.
- @param[in] SystemFirmwareImageSize The size of the System Firmware image in bytes.
- @param[out] ImageFmpInfo The ImageFmpInfo.
- @param[out] ImageFmpInfoSize The size of the ImageFmpInfo in bytes.
- @retval TRUE The ImageFmpInfo is extracted.
- @retval FALSE The ImageFmpInfo is not extracted.
- **/
- BOOLEAN
- EFIAPI
- ExtractSystemFirmwareImageFmpInfo (
- IN VOID *SystemFirmwareImage,
- IN UINTN SystemFirmwareImageSize,
- OUT EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR **ImageFmpInfo,
- OUT UINTN *ImageFmpInfoSize
- );
- /**
- Extract the driver FV from an authenticated image.
- @param[in] AuthenticatedImage The authenticated capsule image.
- @param[in] AuthenticatedImageSize The size of the authenticated capsule image in bytes.
- @param[out] DriverFvImage The driver FV image.
- @param[out] DriverFvImageSize The size of the driver FV image in bytes.
- @retval TRUE The driver Fv is extracted.
- @retval FALSE The driver Fv is not extracted.
- **/
- BOOLEAN
- EFIAPI
- ExtractDriverFvImage (
- IN VOID *AuthenticatedImage,
- IN UINTN AuthenticatedImageSize,
- OUT VOID **DriverFvImage,
- OUT UINTN *DriverFvImageSize
- );
- /**
- Extract the config image from an authenticated image.
- @param[in] AuthenticatedImage The authenticated capsule image.
- @param[in] AuthenticatedImageSize The size of the authenticated capsule image in bytes.
- @param[out] ConfigImage The config image.
- @param[out] ConfigImageSize The size of the config image in bytes.
- @retval TRUE The config image is extracted.
- @retval FALSE The config image is not extracted.
- **/
- BOOLEAN
- EFIAPI
- ExtractConfigImage (
- IN VOID *AuthenticatedImage,
- IN UINTN AuthenticatedImageSize,
- OUT VOID **ConfigImage,
- OUT UINTN *ConfigImageSize
- );
- /**
- Extract the System Firmware image from an authenticated image.
- @param[in] AuthenticatedImage The authenticated capsule image.
- @param[in] AuthenticatedImageSize The size of the authenticated capsule image in bytes.
- @param[out] SystemFirmwareImage The System Firmware image.
- @param[out] SystemFirmwareImageSize The size of the System Firmware image in bytes.
- @retval TRUE The System Firmware image is extracted.
- @retval FALSE The System Firmware image is not extracted.
- **/
- BOOLEAN
- EFIAPI
- ExtractSystemFirmwareImage (
- IN VOID *AuthenticatedImage,
- IN UINTN AuthenticatedImageSize,
- OUT VOID **SystemFirmwareImage,
- OUT UINTN *SystemFirmwareImageSize
- );
- /**
- Extract the authenticated image from an FMP capsule image.
- @param[in] Image The FMP capsule image, including EFI_FIRMWARE_IMAGE_AUTHENTICATION.
- @param[in] ImageSize The size of FMP capsule image in bytes.
- @param[out] LastAttemptStatus The last attempt status, which will be recorded in ESRT and FMP EFI_FIRMWARE_IMAGE_DESCRIPTOR.
- @param[out] AuthenticatedImage The authenticated capsule image, excluding EFI_FIRMWARE_IMAGE_AUTHENTICATION.
- @param[out] AuthenticatedImageSize The size of the authenticated capsule image in bytes.
- @retval TRUE The authenticated image is extracted.
- @retval FALSE The authenticated image is not extracted.
- **/
- BOOLEAN
- EFIAPI
- ExtractAuthenticatedImage (
- IN VOID *Image,
- IN UINTN ImageSize,
- OUT UINT32 *LastAttemptStatus,
- OUT VOID **AuthenticatedImage,
- OUT UINTN *AuthenticatedImageSize
- );
- /**
- Authenticated system firmware FMP capsule image.
- Caution: This function may receive untrusted input.
- @param[in] Image The FMP capsule image, including EFI_FIRMWARE_IMAGE_AUTHENTICATION.
- @param[in] ImageSize The size of FMP capsule image in bytes.
- @param[in] ForceVersionMatch TRUE: The version of capsule must be as same as the version of current image.
- FALSE: The version of capsule must be as same as greater than the lowest
- supported version of current image.
- @param[out] LastAttemptVersion The last attempt version, which will be recorded in ESRT and FMP EFI_FIRMWARE_IMAGE_DESCRIPTOR.
- @param[out] LastAttemptStatus The last attempt status, which will be recorded in ESRT and FMP EFI_FIRMWARE_IMAGE_DESCRIPTOR.
- @param[out] AuthenticatedImage The authenticated capsule image, excluding EFI_FIRMWARE_IMAGE_AUTHENTICATION.
- @param[out] AuthenticatedImageSize The size of the authenticated capsule image in bytes.
- @retval TRUE Authentication passes and the authenticated image is extracted.
- @retval FALSE Authentication fails and the authenticated image is not extracted.
- **/
- EFI_STATUS
- EFIAPI
- CapsuleAuthenticateSystemFirmware (
- IN VOID *Image,
- IN UINTN ImageSize,
- IN BOOLEAN ForceVersionMatch,
- OUT UINT32 *LastAttemptVersion,
- OUT UINT32 *LastAttemptStatus,
- OUT VOID **AuthenticatedImage,
- OUT UINTN *AuthenticatedImageSize
- );
- #endif
|