diff options
author | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-09-16 16:28:55 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-09-16 16:28:55 +0000 |
commit | 50944545795641de735586d4803f8fc38b43874e (patch) | |
tree | 03b1dff60958770ac8f3227f488f71c0fd637354 /OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.h | |
parent | af2cfce391f3869c53c044dbaf2ce85aa3f5ebc8 (diff) | |
download | edk2-platforms-50944545795641de735586d4803f8fc38b43874e.tar.xz |
Implement NvVarsFileLib to save and restore non-volatile variables using a file.
This library provides an interface where variables can be saved and restored
using a file in a file system accessible to the firmware. It is expected
that a platform BDS library will use this library. The platform BDS
implementation can decide which devices to connect and then to attempt to use
for saving and restoring NV variables.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9272 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.h')
-rw-r--r-- | OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.h b/OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.h new file mode 100644 index 0000000000..6241dc8842 --- /dev/null +++ b/OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.h @@ -0,0 +1,103 @@ +/** @file + Save Non-Volatile Variables to a file system. + + Copyright (c) 2009, Intel Corporation + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __NV_VARS_FILE_LIB_INSTANCE__ +#define __NV_VARS_FILE_LIB_INSTANCE__ + +#include <Uefi.h> + +#include <Guid/FileInfo.h> + +#include <Protocol/SimpleFileSystem.h> + +#include <Library/BaseLib.h> +#include <Library/FileHandleLib.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/UefiRuntimeServicesTableLib.h> +#include <Library/UefiLib.h> + +/** + Loads the non-volatile variables from the NvVars file on the + given file system. + + @param[in] FsHandle - Handle for a gEfiSimpleFileSystemProtocolGuid instance + + @return EFI_STATUS based on the success or failure of load operation + +**/ +EFI_STATUS +LoadNvVarsFromFs ( + EFI_HANDLE FsHandle + ); + + +/** + Saves the non-volatile variables into the NvVars file on the + given file system. + + @param[in] FsHandle - Handle for a gEfiSimpleFileSystemProtocolGuid instance + + @return EFI_STATUS based on the success or failure of load operation + +**/ +EFI_STATUS +SaveNvVarsToFs ( + EFI_HANDLE FsHandle + ); + + +/** + Examines the NvVars file contents, and updates variables based on it. + + @param[in] VarsBuffer - Buffer with NvVars data + @param[in] VarsBufferSize - Size of VarsBuffer in bytes + + @return EFI_STATUS based on the success or failure of the operation + +**/ +EFI_STATUS +SetVariablesFromBuffer ( + IN VOID *VarsBuffer, + IN UINTN VarsBufferSize + ); + + +/** + Writes the variable into the file so it can be restored from + the file on future boots of the system. + + @param[in] File - The file to write to + @param[in] Name - Variable name string + @param[in] NameSize - Size of Name in bytes + @param[in] Guid - GUID of variable + @param[in] Attributes - Attributes of variable + @param[in] Data - Buffer containing Data for variable + @param[in] DataSize - Size of Data in bytes + + @return EFI_STATUS based on the success or failure of the operation + +**/ +EFI_STATUS +PackVariableIntoFile ( + IN EFI_FILE_HANDLE File, + IN CHAR16 *Name, + IN UINT32 NameSize, + IN EFI_GUID *Guid, + IN UINT32 Attributes, + IN VOID *Data, + IN UINT32 DataSize + ); + +#endif + |