]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c
EmbeddedPkg: introduce NvVarStoreFormattedLib
[mirror_edk2.git] / EmbeddedPkg / Library / NvVarStoreFormattedLib / NvVarStoreFormattedLib.c
diff --git a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c
new file mode 100644 (file)
index 0000000..001e47c
--- /dev/null
@@ -0,0 +1,41 @@
+/** @file\r
+  A hook-in library for:\r
+  - MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
+  - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf\r
+  - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf\r
+\r
+  Plugging this library instance into one of the above modules makes that\r
+  variable service backend wait for another platform module to dynamically\r
+  initialize or verify EFI_FIRMWARE_VOLUME_HEADER and VARIABLE_STORE_HEADER in\r
+  the non-volatile variable store FVB device. The initialization / verification\r
+  is signaled by installing gEdkiiNvVarStoreFormattedGuid into the\r
+  phase-matching PPI or protocol database, with a NULL interface. (Note that\r
+  installing gEdkiiNvVarStoreFormattedGuid into either the DXE or the MM\r
+  protocol database will unblock VariableSmm -- refer to EFI_SECTION_MM_DEPEX\r
+  in the PI spec.)\r
+\r
+  Copyright (C) 2018, Red Hat, Inc.\r
+\r
+  This program and the accompanying materials are licensed and made available\r
+  under the terms and conditions of the BSD License which accompanies this\r
+  distribution. The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT\r
+  WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+**/\r
+\r
+#include <Base.h>\r
+\r
+RETURN_STATUS\r
+EFIAPI\r
+NvVarStoreFormattedInitialize (\r
+  VOID\r
+  )\r
+{\r
+  //\r
+  // Do nothing, just imbue VariablePei / VariableRuntimeDxe / VariableSmm with\r
+  // a PPI or protocol dependency on EDKII_NV_VAR_STORE_FORMATTED_GUID.\r
+  //\r
+  return RETURN_SUCCESS;\r
+}\r