I would suggest moving this to the "new" package.  

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Jiewen Yao
> Sent: Friday, September 30, 2016 5:21 AM
> To: edk2-devel@lists.01.org
> Cc: Michael D Kinney <michael.d.kin...@intel.com>; Feng Tian
> <feng.t...@intel.com>; Chao Zhang <chao.b.zh...@intel.com>; Liming Gao
> <liming....@intel.com>; Star Zeng <star.z...@intel.com>
> Subject: [edk2] [PATCH V2 02/50] MdeModulePkg/Include: Add
> EdkiiSystemCapsuleLib definition.
> 
> This library is used to abstract the action for EDKII system FMP capsule, 
> such as
> extracting a component from capsule, or authenticate the capsule.
> 
> Cc: Feng Tian <feng.t...@intel.com>
> Cc: Star Zeng <star.z...@intel.com>
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <liming....@intel.com>
> Cc: Chao Zhang <chao.b.zh...@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jiewen Yao <jiewen....@intel.com>
> Reviewed-by: Liming Gao <liming....@intel.com>
> ---
>  MdeModulePkg/Include/Library/EdkiiSystemCapsuleLib.h | 154
> ++++++++++++++++++++
>  1 file changed, 154 insertions(+)
> 
> diff --git a/MdeModulePkg/Include/Library/EdkiiSystemCapsuleLib.h
> b/MdeModulePkg/Include/Library/EdkiiSystemCapsuleLib.h
> new file mode 100644
> index 0000000..db0ce79
> --- /dev/null
> +++ b/MdeModulePkg/Include/Library/EdkiiSystemCapsuleLib.h
> @@ -0,0 +1,154 @@
> +/** @file
> +  EDKII System Capsule library.
> +
> +Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> This
> +program and the accompanying materials are licensed and made available
> +under the terms and conditions of the BSD License which accompanies
> +this distribution.  The full text of the license may be found at
> +http://opensource.org/licenses/bsd-license.php
> +
> +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS
> OR IMPLIED.
> +
> +**/
> +
> +
> +#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
> +
> --
> 2.7.4.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to