--- /dev/null
+/** @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