# check during update of firmware image.\r
FmpDependencyCheckLib|Include/Library/FmpDependencyCheckLib.h\r
\r
+ ## @libraryclass Provides firmware device specific services to support\r
+ # saving dependency to firmware device and getting dependency\r
+ # from firmware device.\r
+ FmpDependencyDeviceLib|Include/Library/FmpDependencyDeviceLib.h\r
+\r
[LibraryClasses.Common.Private]\r
## @libraryclass Provides services to retrieve values from a capsule's FMP\r
# Payload Header. The structure is not included in the\r
FmpDeviceLib|FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLibNull.inf\r
FmpDependencyLib|FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.inf\r
FmpDependencyCheckLib|FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.inf\r
+ FmpDependencyDeviceLib|FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf\r
TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf\r
\r
[LibraryClasses.ARM, LibraryClasses.AARCH64]\r
FmpDevicePkg/Library/FmpDependencyLib/FmpDependencyLib.inf\r
FmpDevicePkg/Library/FmpDependencyCheckLib/FmpDependencyCheckLib.inf\r
FmpDevicePkg/Library/FmpDependencyCheckLibNull/FmpDependencyCheckLibNull.inf\r
+ FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf\r
FmpDevicePkg/FmpDxe/FmpDxeLib.inf\r
\r
#\r
--- /dev/null
+/** @file\r
+ Provides firmware device specific services to support saving dependency to\r
+ firmware device and getting dependency from firmware device.\r
+\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef __FMP_DEPENDENCY_DEVICE_LIB__\r
+#define __FMP_DEPENDENCY_DEVICE_LIB__\r
+\r
+#include <PiDxe.h>\r
+#include <Protocol/FirmwareManagement.h>\r
+\r
+/**\r
+ Save dependency to Fmp device.\r
+\r
+ @param[in] Depex Fmp dependency.\r
+ @param[in] DepexSize Size, in bytes, of the Fmp dependency.\r
+\r
+ @retval EFI_SUCCESS Save Fmp dependency succeeds.\r
+ @retval EFI_UNSUPPORTED Save Fmp dependency is not supported.\r
+ @retval Others Save Fmp dependency fails.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+SaveFmpDependency (\r
+ IN EFI_FIRMWARE_IMAGE_DEP *Depex,\r
+ IN UINT32 DepexSize\r
+ );\r
+\r
+/**\r
+ Get dependency from the Fmp device.\r
+ This caller is responsible for freeing the dependency buffer.\r
+\r
+ @param[out] DepexSize Size, in bytes, of the dependency.\r
+\r
+ @retval The pointer to dependency.\r
+ @retval NULL\r
+\r
+**/\r
+EFI_FIRMWARE_IMAGE_DEP*\r
+EFIAPI\r
+GetFmpDependency (\r
+ OUT UINT32 *DepexSize\r
+ );\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ Null instance of FmpDependencyDeviceLib.\r
+\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+#include <PiDxe.h>\r
+#include <Library/FmpDependencyDeviceLib.h>\r
+\r
+/**\r
+ Save dependency to Fmp device.\r
+\r
+ @param[in] Depex Fmp dependency.\r
+ @param[in] DepexSize Size, in bytes, of the Fmp dependency.\r
+\r
+ @retval EFI_SUCCESS Save Fmp dependency succeeds.\r
+ @retval EFI_UNSUPPORTED Save Fmp dependency is not supported.\r
+ @retval Others Save Fmp dependency fails.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+SaveFmpDependency (\r
+ IN EFI_FIRMWARE_IMAGE_DEP *Depex,\r
+ IN UINT32 DepexSize\r
+ )\r
+{\r
+ return EFI_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+ Get dependency from the Fmp device.\r
+ This caller is responsible for freeing the dependency buffer.\r
+\r
+ @param[out] DepexSize Size, in bytes, of the dependency.\r
+\r
+ @retval The pointer to dependency.\r
+ @retval NULL\r
+\r
+**/\r
+EFI_FIRMWARE_IMAGE_DEP*\r
+EFIAPI\r
+GetFmpDependency (\r
+ OUT UINT32 *DepexSize\r
+ )\r
+{\r
+ return NULL;\r
+}\r
--- /dev/null
+## @file\r
+# Fmp Dependency Device Library Null instance.\r
+#\r
+# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+#\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = FmpDependencyDeviceLibNull\r
+ MODULE_UNI_FILE = FmpDependencyDeviceLibNull.uni\r
+ FILE_GUID = 05BE67B1-0748-4022-97E6-7C0D2F992AA6\r
+ MODULE_TYPE = DXE_DRIVER\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = FmpDependencyDeviceLib|DXE_DRIVER UEFI_DRIVER\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64\r
+#\r
+\r
+[Sources]\r
+ FmpDependencyDeviceLib.c\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ FmpDevicePkg/FmpDevicePkg.dec\r
--- /dev/null
+// /** @file\r
+// Fmp Dependency Device Library Null instance.\r
+//\r
+// Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+//\r
+// SPDX-License-Identifier: BSD-2-Clause-Patent\r
+//\r
+// **/\r
+\r
+#string STR_MODULE_ABSTRACT #language en-US "Fmp Dependency Device Library Null instance."\r
+\r
+#string STR_MODULE_DESCRIPTION #language en-US "Null instance that does not support saving and getting dependency for Fmp device."\r