FmpDevicePkg: Add FmpDependencyDevice library class and NULL instance

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2696

This library provides firmware device specific services to support
saving dependency to firmware device and getting dependency from
firmware device.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
Reviewed-by: Sean Brogan <sean.brogan@microsoft.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Wei6 Xu 2020-05-12 16:12:37 +08:00 committed by mergify[bot]
parent 6c4966423b
commit ba86bb2c4d
6 changed files with 149 additions and 0 deletions

View File

@ -43,6 +43,11 @@
# check during update of firmware image.
FmpDependencyCheckLib|Include/Library/FmpDependencyCheckLib.h
## @libraryclass Provides firmware device specific services to support
# saving dependency to firmware device and getting dependency
# from firmware device.
FmpDependencyDeviceLib|Include/Library/FmpDependencyDeviceLib.h
[LibraryClasses.Common.Private]
## @libraryclass Provides services to retrieve values from a capsule's FMP
# Payload Header. The structure is not included in the

View File

@ -64,6 +64,7 @@
FmpDeviceLib|FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.inf
FmpDependencyLib|FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.inf
FmpDependencyCheckLib|FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.inf
FmpDependencyDeviceLib|FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf
TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
[LibraryClasses.ARM, LibraryClasses.AARCH64]
@ -95,6 +96,7 @@
FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.inf
FmpDevicePkg/Library/FmpDependencyCheckLib/FmpDependencyCheckLib.inf
FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.inf
FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf
FmpDevicePkg/FmpDxe/FmpDxeLib.inf
#

View File

@ -0,0 +1,51 @@
/** @file
Provides firmware device specific services to support saving dependency to
firmware device and getting dependency from firmware device.
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __FMP_DEPENDENCY_DEVICE_LIB__
#define __FMP_DEPENDENCY_DEVICE_LIB__
#include <PiDxe.h>
#include <Protocol/FirmwareManagement.h>
/**
Save dependency to Fmp device.
@param[in] Depex Fmp dependency.
@param[in] DepexSize Size, in bytes, of the Fmp dependency.
@retval EFI_SUCCESS Save Fmp dependency succeeds.
@retval EFI_UNSUPPORTED Save Fmp dependency is not supported.
@retval Others Save Fmp dependency fails.
**/
EFI_STATUS
EFIAPI
SaveFmpDependency (
IN EFI_FIRMWARE_IMAGE_DEP *Depex,
IN UINT32 DepexSize
);
/**
Get dependency from the Fmp device.
This caller is responsible for freeing the dependency buffer.
@param[out] DepexSize Size, in bytes, of the dependency.
@retval The pointer to dependency.
@retval NULL
**/
EFI_FIRMWARE_IMAGE_DEP*
EFIAPI
GetFmpDependency (
OUT UINT32 *DepexSize
);
#endif

View File

@ -0,0 +1,50 @@
/** @file
Null instance of FmpDependencyDeviceLib.
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <PiDxe.h>
#include <Library/FmpDependencyDeviceLib.h>
/**
Save dependency to Fmp device.
@param[in] Depex Fmp dependency.
@param[in] DepexSize Size, in bytes, of the Fmp dependency.
@retval EFI_SUCCESS Save Fmp dependency succeeds.
@retval EFI_UNSUPPORTED Save Fmp dependency is not supported.
@retval Others Save Fmp dependency fails.
**/
EFI_STATUS
EFIAPI
SaveFmpDependency (
IN EFI_FIRMWARE_IMAGE_DEP *Depex,
IN UINT32 DepexSize
)
{
return EFI_UNSUPPORTED;
}
/**
Get dependency from the Fmp device.
This caller is responsible for freeing the dependency buffer.
@param[out] DepexSize Size, in bytes, of the dependency.
@retval The pointer to dependency.
@retval NULL
**/
EFI_FIRMWARE_IMAGE_DEP*
EFIAPI
GetFmpDependency (
OUT UINT32 *DepexSize
)
{
return NULL;
}

View File

@ -0,0 +1,29 @@
## @file
# Fmp Dependency Device Library Null instance.
#
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = FmpDependencyDeviceLibNull
MODULE_UNI_FILE = FmpDependencyDeviceLibNull.uni
FILE_GUID = 05BE67B1-0748-4022-97E6-7C0D2F992AA6
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
LIBRARY_CLASS = FmpDependencyDeviceLib|DXE_DRIVER UEFI_DRIVER
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
#
[Sources]
FmpDependencyDeviceLib.c
[Packages]
MdePkg/MdePkg.dec
FmpDevicePkg/FmpDevicePkg.dec

View File

@ -0,0 +1,12 @@
// /** @file
// Fmp Dependency Device Library Null instance.
//
// Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/
#string STR_MODULE_ABSTRACT #language en-US "Fmp Dependency Device Library Null instance."
#string STR_MODULE_DESCRIPTION #language en-US "Null instance that does not support saving and getting dependency for Fmp device."