]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.c
MdeModulePkg: Add Capsule On Disk APIs into CapsuleLib.
[mirror_edk2.git] / MdeModulePkg / Library / DxeCapsuleLibNull / DxeCapsuleLibNull.c
index 06a1abe16b0f0a17daf08c08f3b9c6e9b42843ec..55985abd78415a9431deee9812907911baf66104 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Null Dxe Capsule Library instance does nothing and returns unsupport status.\r
 \r
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -85,3 +85,86 @@ ProcessCapsules (
   return EFI_UNSUPPORTED;\r
 }\r
 \r
+\r
+/**\r
+  This routine is called to check if CapsuleOnDisk flag in OsIndications Variable\r
+  is enabled.\r
+\r
+  @retval TRUE     Flag is enabled\r
+  @retval FALSE    Flag is not enabled\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+CoDCheckCapsuleOnDiskFlag(\r
+  VOID\r
+  )\r
+{\r
+  return FALSE;\r
+}\r
+\r
+/**\r
+  This routine is called to clear CapsuleOnDisk flags including OsIndications and BootNext variable.\r
+\r
+  @retval EFI_SUCCESS   All Capsule On Disk flags are cleared\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+CoDClearCapsuleOnDiskFlag(\r
+  VOID\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  Relocate Capsule on Disk from EFI system partition.\r
+\r
+  Two solution to deliver Capsule On Disk:\r
+  Solution A: If PcdCapsuleInRamSupport is enabled, relocate Capsule On Disk to memory and call UpdateCapsule().\r
+  Solution B: If PcdCapsuleInRamSupport is disabled, relocate Capsule On Disk to a platform-specific NV storage\r
+  device with BlockIo protocol.\r
+\r
+  Device enumeration like USB costs time, user can input MaxRetry to tell function to retry.\r
+  Function will stall 100ms between each retry.\r
+\r
+  Side Effects:\r
+    Capsule Delivery Supported Flag in OsIndication variable and BootNext variable will be cleared.\r
+    Solution B: Content corruption. Block IO write directly touches low level write. Orignal partitions, file\r
+  systems of the relocation device will be corrupted.\r
+\r
+  @param[in]    MaxRetry             Max Connection Retry. Stall 100ms between each connection try to ensure\r
+                                     devices like USB can get enumerated. Input 0 means no retry.\r
+\r
+  @retval EFI_SUCCESS   Capsule on Disk images are successfully relocated.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+CoDRelocateCapsule(\r
+  UINTN     MaxRetry\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+  Remove the temp file from the root of EFI System Partition.\r
+  Device enumeration like USB costs time, user can input MaxRetry to tell function to retry.\r
+  Function will stall 100ms between each retry.\r
+\r
+  @param[in]    MaxRetry             Max Connection Retry. Stall 100ms between each connection try to ensure\r
+                                     devices like USB can get enumerated. Input 0 means no retry.\r
+\r
+  @retval EFI_SUCCESS   Remove the temp file successfully.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+CoDRemoveTempFile (\r
+  UINTN    MaxRetry\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r