]> git.proxmox.com Git - mirror_edk2.git/commitdiff
FmpDevicePkg: Add FmpDependencyDevice library class and NULL instance
authorWei6 Xu <wei6.xu@intel.com>
Tue, 12 May 2020 08:12:37 +0000 (16:12 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 15 May 2020 06:11:44 +0000 (06:11 +0000)
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>
FmpDevicePkg/FmpDevicePkg.dec
FmpDevicePkg/FmpDevicePkg.dsc
FmpDevicePkg/Include/Library/FmpDependencyDeviceLib.h [new file with mode: 0644]
FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLib.c [new file with mode: 0644]
FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf [new file with mode: 0644]
FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.uni [new file with mode: 0644]

index 871d5ce89004b13f70130f214cdbb73a015ce748..cab63f5a47a3a42d11168c944cf2773240d3bb47 100644 (file)
   #                  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
index 7e8080617120d85ff9c37c81106fbfafede883af..bdb73f28288f6cf27425d78d71c41bf2f70a487c 100644 (file)
@@ -64,6 +64,7 @@
   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
@@ -95,6 +96,7 @@
   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
diff --git a/FmpDevicePkg/Include/Library/FmpDependencyDeviceLib.h b/FmpDevicePkg/Include/Library/FmpDependencyDeviceLib.h
new file mode 100644 (file)
index 0000000..4351173
--- /dev/null
@@ -0,0 +1,51 @@
+/** @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
diff --git a/FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLib.c b/FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLib.c
new file mode 100644 (file)
index 0000000..0839681
--- /dev/null
@@ -0,0 +1,50 @@
+/** @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
diff --git a/FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf b/FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.inf
new file mode 100644 (file)
index 0000000..d318cc9
--- /dev/null
@@ -0,0 +1,29 @@
+## @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
diff --git a/FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.uni b/FmpDevicePkg/Library/FmpDependencyDeviceLibNull/FmpDependencyDeviceLibNull.uni
new file mode 100644 (file)
index 0000000..730ff65
--- /dev/null
@@ -0,0 +1,12 @@
+// /** @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