diff options
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 0000000..6241dc8 --- /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 + |