File System Access for NvVarsFileLib\r
\r
Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
- This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this 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,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include <Library/DebugLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
\r
-\r
/**\r
Open the NvVars file for reading or writing\r
\r
**/\r
EFI_STATUS\r
GetNvVarsFile (\r
- IN EFI_HANDLE FsHandle,\r
- IN BOOLEAN ReadingFile,\r
- OUT EFI_FILE_HANDLE *NvVarsFile\r
+ IN EFI_HANDLE FsHandle,\r
+ IN BOOLEAN ReadingFile,\r
+ OUT EFI_FILE_HANDLE *NvVarsFile\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Fs;\r
- EFI_FILE_HANDLE Root;\r
+ EFI_STATUS Status;\r
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Fs;\r
+ EFI_FILE_HANDLE Root;\r
\r
//\r
// Get the FileSystem protocol on that handle\r
NvVarsFile,\r
L"NvVars",\r
ReadingFile ?\r
- EFI_FILE_MODE_READ :\r
- (\r
- EFI_FILE_MODE_CREATE |\r
- EFI_FILE_MODE_READ |\r
- EFI_FILE_MODE_WRITE\r
- ),\r
+ EFI_FILE_MODE_READ :\r
+ (\r
+ EFI_FILE_MODE_CREATE |\r
+ EFI_FILE_MODE_READ |\r
+ EFI_FILE_MODE_WRITE\r
+ ),\r
0\r
);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Open the NvVars file for reading or writing\r
\r
**/\r
VOID\r
NvVarsFileReadCheckup (\r
- IN EFI_FILE_HANDLE File,\r
- OUT BOOLEAN *Exists,\r
- OUT UINTN *Size\r
+ IN EFI_FILE_HANDLE File,\r
+ OUT BOOLEAN *Exists,\r
+ OUT UINTN *Size\r
)\r
{\r
- EFI_FILE_INFO *FileInfo;\r
+ EFI_FILE_INFO *FileInfo;\r
\r
*Exists = FALSE;\r
- *Size = 0;\r
+ *Size = 0;\r
\r
FileInfo = FileHandleGetInfo (File);\r
if (FileInfo == NULL) {\r
}\r
\r
*Exists = TRUE;\r
- *Size = (UINTN) FileInfo->FileSize;\r
+ *Size = (UINTN)FileInfo->FileSize;\r
\r
FreePool (FileInfo);\r
}\r
\r
-\r
/**\r
Open the NvVars file for reading or writing\r
\r
**/\r
EFI_STATUS\r
FileHandleEmpty (\r
- IN EFI_FILE_HANDLE File\r
+ IN EFI_FILE_HANDLE File\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FILE_INFO *FileInfo;\r
+ EFI_STATUS Status;\r
+ EFI_FILE_INFO *FileInfo;\r
\r
//\r
// Retrieve the FileInfo structure\r
// Set the file size to 0.\r
//\r
FileInfo->FileSize = 0;\r
- Status = FileHandleSetInfo (File, FileInfo);\r
+ Status = FileHandleSetInfo (File, FileInfo);\r
\r
FreePool (FileInfo);\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Reads a file to a newly allocated buffer\r
\r
contents. NULL if an error occurred.\r
\r
**/\r
-VOID*\r
+VOID *\r
FileHandleReadToNewBuffer (\r
- IN EFI_FILE_HANDLE FileHandle,\r
- IN UINTN ReadSize\r
+ IN EFI_FILE_HANDLE FileHandle,\r
+ IN UINTN ReadSize\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN ActualReadSize;\r
- VOID *FileContents;\r
+ EFI_STATUS Status;\r
+ UINTN ActualReadSize;\r
+ VOID *FileContents;\r
\r
ActualReadSize = ReadSize;\r
- FileContents = AllocatePool (ReadSize);\r
+ FileContents = AllocatePool (ReadSize);\r
if (FileContents != NULL) {\r
Status = FileHandleRead (\r
FileHandle,\r
return FileContents;\r
}\r
\r
-\r
/**\r
Reads the contents of the NvVars file on the file system\r
\r
**/\r
EFI_STATUS\r
ReadNvVarsFile (\r
- IN EFI_HANDLE FsHandle\r
+ IN EFI_HANDLE FsHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FILE_HANDLE File;\r
- UINTN FileSize;\r
- BOOLEAN FileExists;\r
- VOID *FileContents;\r
- EFI_HANDLE SerializedVariables;\r
+ EFI_STATUS Status;\r
+ EFI_FILE_HANDLE File;\r
+ UINTN FileSize;\r
+ BOOLEAN FileExists;\r
+ VOID *FileContents;\r
+ EFI_HANDLE SerializedVariables;\r
\r
Status = GetNvVarsFile (FsHandle, TRUE, &File);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((EFI_D_INFO, "FsAccess.c: Could not open NV Variables file on this file system\n"));\r
+ DEBUG ((DEBUG_INFO, "FsAccess.c: Could not open NV Variables file on this file system\n"));\r
return Status;\r
}\r
\r
}\r
\r
DEBUG ((\r
- EFI_D_INFO,\r
+ DEBUG_INFO,\r
"FsAccess.c: Read %Lu bytes from NV Variables file\n",\r
(UINT64)FileSize\r
));\r
return Status;\r
}\r
\r
-\r
/**\r
Writes a variable to indicate that the NV variables\r
have been loaded from the file system.\r
VOID\r
)\r
{\r
- BOOLEAN VarData;\r
- UINTN Size;\r
+ BOOLEAN VarData;\r
+ UINTN Size;\r
\r
//\r
// Write a variable to indicate we've already loaded the\r
// variable data. If it is found, we skip the loading on\r
// subsequent attempts.\r
//\r
- Size = sizeof (VarData);\r
+ Size = sizeof (VarData);\r
VarData = TRUE;\r
gRT->SetVariable (\r
L"NvVars",\r
&gEfiSimpleFileSystemProtocolGuid,\r
EFI_VARIABLE_NON_VOLATILE |\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS |\r
- EFI_VARIABLE_RUNTIME_ACCESS,\r
+ EFI_VARIABLE_BOOTSERVICE_ACCESS |\r
+ EFI_VARIABLE_RUNTIME_ACCESS,\r
Size,\r
- (VOID*) &VarData\r
+ (VOID *)&VarData\r
);\r
}\r
\r
-\r
/**\r
Loads the non-volatile variables from the NvVars file on the\r
given file system.\r
**/\r
EFI_STATUS\r
LoadNvVarsFromFs (\r
- EFI_HANDLE FsHandle\r
+ EFI_HANDLE FsHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN VarData;\r
- UINTN Size;\r
+ EFI_STATUS Status;\r
+ BOOLEAN VarData;\r
+ UINTN Size;\r
\r
- DEBUG ((EFI_D_INFO, "FsAccess.c: LoadNvVarsFromFs\n"));\r
+ DEBUG ((DEBUG_INFO, "FsAccess.c: LoadNvVarsFromFs\n"));\r
\r
//\r
// We write a variable to indicate we've already loaded the\r
// want to re-load the file as it would overwrite newer changes\r
// made to the variables.\r
//\r
- Size = sizeof (VarData);\r
+ Size = sizeof (VarData);\r
VarData = TRUE;\r
- Status = gRT->GetVariable (\r
- L"NvVars",\r
- &gEfiSimpleFileSystemProtocolGuid,\r
- NULL,\r
- &Size,\r
- (VOID*) &VarData\r
- );\r
+ Status = gRT->GetVariable (\r
+ L"NvVars",\r
+ &gEfiSimpleFileSystemProtocolGuid,\r
+ NULL,\r
+ &Size,\r
+ (VOID *)&VarData\r
+ );\r
if (Status == EFI_SUCCESS) {\r
- DEBUG ((EFI_D_INFO, "NV Variables were already loaded\n"));\r
+ DEBUG ((DEBUG_INFO, "NV Variables were already loaded\n"));\r
return EFI_ALREADY_STARTED;\r
}\r
\r
//\r
Status = ReadNvVarsFile (FsHandle);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((EFI_D_INFO, "Error while restoring NV variable data\n"));\r
+ DEBUG ((DEBUG_INFO, "Error while restoring NV variable data\n"));\r
return Status;\r
}\r
\r
// variable data. If it is found, we skip the loading on\r
// subsequent attempts.\r
//\r
- SetNvVarsVariable();\r
+ SetNvVarsVariable ();\r
\r
DEBUG ((\r
- EFI_D_INFO,\r
+ DEBUG_INFO,\r
"FsAccess.c: Read NV Variables file (size=%Lu)\n",\r
(UINT64)Size\r
));\r
return Status;\r
}\r
\r
-\r
STATIC\r
RETURN_STATUS\r
EFIAPI\r
IterateVariablesCallbackAddAllNvVariables (\r
- IN VOID *Context,\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- IN UINT32 Attributes,\r
- IN UINTN DataSize,\r
- IN VOID *Data\r
+ IN VOID *Context,\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid,\r
+ IN UINT32 Attributes,\r
+ IN UINTN DataSize,\r
+ IN VOID *Data\r
)\r
{\r
EFI_HANDLE Instance;\r
\r
- Instance = (EFI_HANDLE) Context;\r
+ Instance = (EFI_HANDLE)Context;\r
\r
//\r
// Only save non-volatile variables\r
);\r
}\r
\r
-\r
/**\r
Saves the non-volatile variables into the NvVars file on the\r
given file system.\r
**/\r
EFI_STATUS\r
SaveNvVarsToFs (\r
- EFI_HANDLE FsHandle\r
+ EFI_HANDLE FsHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FILE_HANDLE File;\r
- UINTN WriteSize;\r
- UINTN VariableDataSize;\r
- VOID *VariableData;\r
- EFI_HANDLE SerializedVariables;\r
+ EFI_STATUS Status;\r
+ EFI_FILE_HANDLE File;\r
+ UINTN WriteSize;\r
+ UINTN VariableDataSize;\r
+ VOID *VariableData;\r
+ EFI_HANDLE SerializedVariables;\r
\r
SerializedVariables = NULL;\r
\r
\r
Status = SerializeVariablesIterateSystemVariables (\r
IterateVariablesCallbackAddAllNvVariables,\r
- (VOID*) SerializedVariables\r
+ (VOID *)SerializedVariables\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
- VariableData = NULL;\r
+ VariableData = NULL;\r
VariableDataSize = 0;\r
- Status = SerializeVariablesToBuffer (\r
- SerializedVariables,\r
- NULL,\r
- &VariableDataSize\r
- );\r
+ Status = SerializeVariablesToBuffer (\r
+ SerializedVariables,\r
+ NULL,\r
+ &VariableDataSize\r
+ );\r
if (Status == RETURN_BUFFER_TOO_SMALL) {\r
VariableData = AllocatePool (VariableDataSize);\r
if (VariableData == NULL) {\r
//\r
Status = GetNvVarsFile (FsHandle, FALSE, &File);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((EFI_D_INFO, "FsAccess.c: Unable to open file to saved NV Variables\n"));\r
+ DEBUG ((DEBUG_INFO, "FsAccess.c: Unable to open file to saved NV Variables\n"));\r
return Status;\r
}\r
\r
}\r
\r
WriteSize = VariableDataSize;\r
- Status = FileHandleWrite (File, &WriteSize, VariableData);\r
+ Status = FileHandleWrite (File, &WriteSize, VariableData);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
// variable data. If it is found, we skip the loading on\r
// subsequent attempts.\r
//\r
- SetNvVarsVariable();\r
+ SetNvVarsVariable ();\r
\r
- DEBUG ((EFI_D_INFO, "Saved NV Variables to NvVars file\n"));\r
+ DEBUG ((DEBUG_INFO, "Saved NV Variables to NvVars file\n"));\r
}\r
\r
return Status;\r
-\r
}\r
-\r
-\r