]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.c
OVMF: Add support for saving the NV variables to disk following each SetVariable...
[mirror_edk2.git] / OvmfPkg / Library / NvVarsFileLib / NvVarsFileLib.c
index 94e00e0bdb8eb5acdf485f300e60502b7a05a1ed..62fee6f03136eddf55135a359942311f6ca8ddc5 100644 (file)
@@ -16,6 +16,8 @@
 #include <Library/DebugLib.h>
 #include <Library/NvVarsFileLib.h>
 
+EFI_HANDLE    mNvVarsFileLibFsHandle = NULL;
+
 
 /**
   Attempts to connect the NvVarsFileLib to the specified file system.
@@ -46,8 +48,36 @@ ConnectNvVarsToFileSystem (
   // to have connected successfully.
   //
   Status = SaveNvVarsToFs (FsHandle);
+  if (!EFI_ERROR (Status)) {
+    mNvVarsFileLibFsHandle = FsHandle;
+  }
 
   return Status;
 }
 
 
+/**
+  Update non-volatile variables stored on the file system.
+
+  @return     The EFI_STATUS while attempting to update the variable on
+              the connected file system.
+  @retval     EFI_SUCCESS - The non-volatile variables were saved to the disk
+  @retval     EFI_NOT_STARTED - A file system has not been connected
+
+**/
+EFI_STATUS
+EFIAPI
+UpdateNvVarsOnFileSystem (
+  )
+{
+  if (mNvVarsFileLibFsHandle == NULL) {
+    //
+    // A file system had not been connected to the library.
+    //
+    return EFI_NOT_STARTED;
+  } else {
+    return SaveNvVarsToFs (mNvVarsFileLibFsHandle);
+  }
+}
+
+