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