mirror of https://github.com/acidanthera/audk.git
104 lines
2.6 KiB
C
104 lines
2.6 KiB
C
|
/** @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
|
||
|
|