MdeModulePkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
committed by
mergify[bot]
parent
7c7184e201
commit
1436aea4d5
@ -22,9 +22,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gFvSimpleFileSystemCo
|
||||
//
|
||||
// EFI Component Name 2 Protocol
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gFvSimpleFileSystemComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) FvSimpleFileSystemComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) FvSimpleFileSystemComponentNameGetControllerName,
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gFvSimpleFileSystemComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)FvSimpleFileSystemComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)FvSimpleFileSystemComponentNameGetControllerName,
|
||||
"en"
|
||||
};
|
||||
|
||||
@ -32,7 +32,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gFvSimpleFileSystemCo
|
||||
// Driver name table for FvSimpleFileSystem module.
|
||||
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mFvSimpleFileSystemDriverNameTable[] = {
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mFvSimpleFileSystemDriverNameTable[] = {
|
||||
{
|
||||
"eng;en",
|
||||
(CHAR16 *)L"Fv Simple File System Driver"
|
||||
@ -170,11 +170,11 @@ FvSimpleFileSystemComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
|
@ -23,7 +23,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
//
|
||||
// Template for EFI_FILE_SYSTEM_INFO data structure.
|
||||
//
|
||||
EFI_FILE_SYSTEM_INFO mFsInfoTemplate = {
|
||||
EFI_FILE_SYSTEM_INFO mFsInfoTemplate = {
|
||||
0, // Populate at runtime
|
||||
TRUE, // Read-only
|
||||
0, // Don't know volume size
|
||||
@ -35,7 +35,7 @@ EFI_FILE_SYSTEM_INFO mFsInfoTemplate = {
|
||||
//
|
||||
// Template for EFI_FILE_PROTOCOL data structure.
|
||||
//
|
||||
EFI_FILE_PROTOCOL mFileSystemTemplate = {
|
||||
EFI_FILE_PROTOCOL mFileSystemTemplate = {
|
||||
EFI_FILE_PROTOCOL_REVISION,
|
||||
FvSimpleFileSystemOpen,
|
||||
FvSimpleFileSystemClose,
|
||||
@ -68,15 +68,15 @@ EFI_FILE_PROTOCOL mFileSystemTemplate = {
|
||||
**/
|
||||
EFI_STATUS
|
||||
FvFsFindExecutableSection (
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN OUT VOID **Buffer
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN OUT VOID **Buffer
|
||||
)
|
||||
{
|
||||
EFI_SECTION_TYPE SectionType;
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_STATUS Status;
|
||||
EFI_SECTION_TYPE SectionType;
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_STATUS Status;
|
||||
|
||||
for (SectionType = EFI_SECTION_PE32; SectionType <= EFI_SECTION_TE; SectionType++) {
|
||||
Status = FvProtocol->ReadSection (
|
||||
@ -109,16 +109,16 @@ FvFsFindExecutableSection (
|
||||
**/
|
||||
EFI_STATUS
|
||||
FvFsGetFileSize (
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
|
||||
)
|
||||
{
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_FV_FILETYPE FoundType;
|
||||
EFI_FV_FILE_ATTRIBUTES Attributes;
|
||||
EFI_STATUS Status;
|
||||
UINT8 IgnoredByte;
|
||||
VOID *IgnoredPtr;
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_FV_FILETYPE FoundType;
|
||||
EFI_FV_FILE_ATTRIBUTES Attributes;
|
||||
EFI_STATUS Status;
|
||||
UINT8 IgnoredByte;
|
||||
VOID *IgnoredPtr;
|
||||
|
||||
//
|
||||
// To get the size of a section, we pass 0 for BufferSize. But we can't pass
|
||||
@ -126,14 +126,14 @@ FvFsGetFileSize (
|
||||
// can't pass NULL for *Buffer, as that will cause the callee to allocate
|
||||
// a buffer of the sections size.
|
||||
//
|
||||
IgnoredPtr = &IgnoredByte;
|
||||
IgnoredPtr = &IgnoredByte;
|
||||
FvFileInfo->FileInfo.FileSize = 0;
|
||||
|
||||
if (FV_FILETYPE_IS_EXECUTABLE (FvFileInfo->Type)) {
|
||||
//
|
||||
// Get the size of the first executable section out of the file.
|
||||
//
|
||||
Status = FvFsFindExecutableSection (FvProtocol, FvFileInfo, (UINTN*)&FvFileInfo->FileInfo.FileSize, &IgnoredPtr);
|
||||
Status = FvFsFindExecutableSection (FvProtocol, FvFileInfo, (UINTN *)&FvFileInfo->FileInfo.FileSize, &IgnoredPtr);
|
||||
if (Status == EFI_WARN_BUFFER_TOO_SMALL) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
@ -147,12 +147,13 @@ FvFsGetFileSize (
|
||||
EFI_SECTION_RAW,
|
||||
0,
|
||||
&IgnoredPtr,
|
||||
(UINTN*)&FvFileInfo->FileInfo.FileSize,
|
||||
(UINTN *)&FvFileInfo->FileInfo.FileSize,
|
||||
&AuthenticationStatus
|
||||
);
|
||||
if (Status == EFI_WARN_BUFFER_TOO_SMALL) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// Didn't find a raw section, just return the whole file's size.
|
||||
@ -161,7 +162,7 @@ FvFsGetFileSize (
|
||||
FvProtocol,
|
||||
&FvFileInfo->NameGuid,
|
||||
NULL,
|
||||
(UINTN*)&FvFileInfo->FileInfo.FileSize,
|
||||
(UINTN *)&FvFileInfo->FileInfo.FileSize,
|
||||
&FoundType,
|
||||
&Attributes,
|
||||
&AuthenticationStatus
|
||||
@ -175,7 +176,7 @@ FvFsGetFileSize (
|
||||
FvProtocol,
|
||||
&FvFileInfo->NameGuid,
|
||||
NULL,
|
||||
(UINTN*)&FvFileInfo->FileInfo.FileSize,
|
||||
(UINTN *)&FvFileInfo->FileInfo.FileSize,
|
||||
&FoundType,
|
||||
&Attributes,
|
||||
&AuthenticationStatus
|
||||
@ -211,16 +212,16 @@ FvFsGetFileSize (
|
||||
**/
|
||||
EFI_STATUS
|
||||
FvFsReadFile (
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN OUT VOID **Buffer
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN OUT VOID **Buffer
|
||||
)
|
||||
{
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_FV_FILETYPE FoundType;
|
||||
EFI_FV_FILE_ATTRIBUTES Attributes;
|
||||
EFI_STATUS Status;
|
||||
UINT32 AuthenticationStatus;
|
||||
EFI_FV_FILETYPE FoundType;
|
||||
EFI_FV_FILE_ATTRIBUTES Attributes;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if (FV_FILETYPE_IS_EXECUTABLE (FvFileInfo->Type)) {
|
||||
//
|
||||
@ -290,12 +291,12 @@ FvFsReadFile (
|
||||
**/
|
||||
EFI_STATUS
|
||||
FvFsGetFileInfo (
|
||||
IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT EFI_FILE_INFO *FileInfo
|
||||
IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT EFI_FILE_INFO *FileInfo
|
||||
)
|
||||
{
|
||||
UINTN InfoSize;
|
||||
UINTN InfoSize;
|
||||
|
||||
InfoSize = (UINTN)FvFileInfo->FileInfo.Size;
|
||||
if (*BufferSize < InfoSize) {
|
||||
@ -325,19 +326,21 @@ FvFsGetFileInfo (
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
RemoveLastItemFromPath (
|
||||
IN OUT CHAR16 *Path
|
||||
IN OUT CHAR16 *Path
|
||||
)
|
||||
{
|
||||
CHAR16 *Walker;
|
||||
CHAR16 *LastSlash;
|
||||
CHAR16 *Walker;
|
||||
CHAR16 *LastSlash;
|
||||
|
||||
//
|
||||
// get directory name from path... ('chop' off extra)
|
||||
//
|
||||
for ( Walker = Path, LastSlash = NULL
|
||||
; Walker != NULL && *Walker != CHAR_NULL
|
||||
; Walker++
|
||||
){
|
||||
if (*Walker == L'\\' && *(Walker + 1) != CHAR_NULL) {
|
||||
; Walker != NULL && *Walker != CHAR_NULL
|
||||
; Walker++
|
||||
)
|
||||
{
|
||||
if ((*Walker == L'\\') && (*(Walker + 1) != CHAR_NULL)) {
|
||||
LastSlash = Walker + 1;
|
||||
}
|
||||
}
|
||||
@ -366,10 +369,10 @@ RemoveLastItemFromPath (
|
||||
@return Path in all other instances.
|
||||
|
||||
**/
|
||||
CHAR16*
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
TrimFilePathToAbsolutePath (
|
||||
IN CHAR16 *Path
|
||||
IN CHAR16 *Path
|
||||
)
|
||||
{
|
||||
CHAR16 *TempString;
|
||||
@ -382,7 +385,7 @@ TrimFilePathToAbsolutePath (
|
||||
//
|
||||
// Fix up the '/' vs '\'
|
||||
//
|
||||
for (TempString = Path ; (TempString != NULL) && (*TempString != CHAR_NULL); TempString++) {
|
||||
for (TempString = Path; (TempString != NULL) && (*TempString != CHAR_NULL); TempString++) {
|
||||
if (*TempString == L'/') {
|
||||
*TempString = L'\\';
|
||||
}
|
||||
@ -392,15 +395,15 @@ TrimFilePathToAbsolutePath (
|
||||
// Fix up the ..
|
||||
//
|
||||
while ((TempString = StrStr (Path, L"\\..\\")) != NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 4;
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 4;
|
||||
RemoveLastItemFromPath (Path);
|
||||
TempSize = StrSize (TempString);
|
||||
TempSize = StrSize (TempString);
|
||||
CopyMem (Path + StrLen (Path), TempString, TempSize);
|
||||
}
|
||||
|
||||
if (((TempString = StrStr (Path, L"\\..")) != NULL) && (*(TempString + 3) == CHAR_NULL)) {
|
||||
*TempString = CHAR_NULL;
|
||||
*TempString = CHAR_NULL;
|
||||
RemoveLastItemFromPath (Path);
|
||||
}
|
||||
|
||||
@ -408,10 +411,10 @@ TrimFilePathToAbsolutePath (
|
||||
// Fix up the .
|
||||
//
|
||||
while ((TempString = StrStr (Path, L"\\.\\")) != NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 2;
|
||||
TempSize = StrSize (TempString);
|
||||
CopyMem(Path + StrLen (Path), TempString, TempSize);
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 2;
|
||||
TempSize = StrSize (TempString);
|
||||
CopyMem (Path + StrLen (Path), TempString, TempSize);
|
||||
}
|
||||
|
||||
if (((TempString = StrStr (Path, L"\\.")) != NULL) && (*(TempString + 2) == CHAR_NULL)) {
|
||||
@ -419,13 +422,13 @@ TrimFilePathToAbsolutePath (
|
||||
}
|
||||
|
||||
while ((TempString = StrStr (Path, L"\\\\")) != NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 1;
|
||||
TempSize = StrSize(TempString);
|
||||
CopyMem(Path + StrLen(Path), TempString, TempSize);
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 1;
|
||||
TempSize = StrSize (TempString);
|
||||
CopyMem (Path + StrLen (Path), TempString, TempSize);
|
||||
}
|
||||
|
||||
if (((TempString = StrStr(Path, L"\\\\")) != NULL) && (*(TempString + 1) == CHAR_NULL)) {
|
||||
if (((TempString = StrStr (Path, L"\\\\")) != NULL) && (*(TempString + 1) == CHAR_NULL)) {
|
||||
*(TempString) = CHAR_NULL;
|
||||
}
|
||||
|
||||
@ -465,35 +468,35 @@ TrimFilePathToAbsolutePath (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemOpen (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||
IN CHAR16 *FileName,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||
IN CHAR16 *FileName,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
FV_FILESYSTEM_FILE *NewFile;
|
||||
FV_FILESYSTEM_FILE_INFO *FvFileInfo;
|
||||
LIST_ENTRY *FvFileInfoLink;
|
||||
EFI_STATUS Status;
|
||||
UINTN FileNameLength;
|
||||
UINTN NewFileNameLength;
|
||||
CHAR16 *FileNameWithExtension;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
FV_FILESYSTEM_FILE *NewFile;
|
||||
FV_FILESYSTEM_FILE_INFO *FvFileInfo;
|
||||
LIST_ENTRY *FvFileInfoLink;
|
||||
EFI_STATUS Status;
|
||||
UINTN FileNameLength;
|
||||
UINTN NewFileNameLength;
|
||||
CHAR16 *FileNameWithExtension;
|
||||
|
||||
//
|
||||
// Check for a valid mode
|
||||
//
|
||||
switch (OpenMode) {
|
||||
case EFI_FILE_MODE_READ:
|
||||
break;
|
||||
case EFI_FILE_MODE_READ:
|
||||
break;
|
||||
|
||||
default:
|
||||
return EFI_WRITE_PROTECTED;
|
||||
default:
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
Instance = File->Instance;
|
||||
|
||||
FileName = TrimFilePathToAbsolutePath (FileName);
|
||||
@ -508,13 +511,14 @@ FvSimpleFileSystemOpen (
|
||||
//
|
||||
// Check for opening root
|
||||
//
|
||||
if (StrCmp (FileName, L".") == 0 || StrCmp (FileName, L"") == 0) {
|
||||
if ((StrCmp (FileName, L".") == 0) || (StrCmp (FileName, L"") == 0)) {
|
||||
NewFile = AllocateZeroPool (sizeof (FV_FILESYSTEM_FILE));
|
||||
if (NewFile == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
NewFile->Signature = FVFS_FILE_SIGNATURE;
|
||||
NewFile->Instance = Instance;
|
||||
|
||||
NewFile->Signature = FVFS_FILE_SIGNATURE;
|
||||
NewFile->Instance = Instance;
|
||||
NewFile->FvFileInfo = File->FvFileInfo;
|
||||
CopyMem (&NewFile->FileProtocol, &mFileSystemTemplate, sizeof (mFileSystemTemplate));
|
||||
InitializeListHead (&NewFile->Link);
|
||||
@ -535,8 +539,9 @@ FvSimpleFileSystemOpen (
|
||||
Status = EFI_NOT_FOUND;
|
||||
FvFileInfo = NULL;
|
||||
for (FvFileInfoLink = GetFirstNode (&Instance->FileInfoHead);
|
||||
!IsNull (&Instance->FileInfoHead, FvFileInfoLink);
|
||||
FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink)) {
|
||||
!IsNull (&Instance->FileInfoHead, FvFileInfoLink);
|
||||
FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink))
|
||||
{
|
||||
FvFileInfo = FVFS_FILE_INFO_FROM_LINK (FvFileInfoLink);
|
||||
if (mUnicodeCollation->StriColl (mUnicodeCollation, &FvFileInfo->FileInfo.FileName[0], FileName) == 0) {
|
||||
Status = EFI_SUCCESS;
|
||||
@ -555,14 +560,15 @@ FvSimpleFileSystemOpen (
|
||||
if (mUnicodeCollation->StriColl (mUnicodeCollation, FileName + FileNameLength - 4, L".efi") != 0) {
|
||||
// No, there was no extension. So add one and search again for the file
|
||||
// NewFileNameLength = FileNameLength + 1 + 4 = (Number of non-null character) + (file extension) + (a null character)
|
||||
NewFileNameLength = FileNameLength + 1 + 4;
|
||||
NewFileNameLength = FileNameLength + 1 + 4;
|
||||
FileNameWithExtension = AllocatePool (NewFileNameLength * 2);
|
||||
StrCpyS (FileNameWithExtension, NewFileNameLength, FileName);
|
||||
StrCatS (FileNameWithExtension, NewFileNameLength, L".EFI");
|
||||
|
||||
for (FvFileInfoLink = GetFirstNode (&Instance->FileInfoHead);
|
||||
!IsNull (&Instance->FileInfoHead, FvFileInfoLink);
|
||||
FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink)) {
|
||||
!IsNull (&Instance->FileInfoHead, FvFileInfoLink);
|
||||
FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink))
|
||||
{
|
||||
FvFileInfo = FVFS_FILE_INFO_FROM_LINK (FvFileInfoLink);
|
||||
if (mUnicodeCollation->StriColl (mUnicodeCollation, &FvFileInfo->FileInfo.FileName[0], FileNameWithExtension) == 0) {
|
||||
Status = EFI_SUCCESS;
|
||||
@ -578,8 +584,8 @@ FvSimpleFileSystemOpen (
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
NewFile->Signature = FVFS_FILE_SIGNATURE;
|
||||
NewFile->Instance = Instance;
|
||||
NewFile->Signature = FVFS_FILE_SIGNATURE;
|
||||
NewFile->Instance = Instance;
|
||||
NewFile->FvFileInfo = FvFileInfo;
|
||||
CopyMem (&NewFile->FileProtocol, &mFileSystemTemplate, sizeof (mFileSystemTemplate));
|
||||
InitializeListHead (&NewFile->Link);
|
||||
@ -607,16 +613,17 @@ FvSimpleFileSystemClose (
|
||||
IN EFI_FILE_PROTOCOL *This
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
Instance = File->Instance;
|
||||
|
||||
if (File != Instance->Root) {
|
||||
RemoveEntryList (&File->Link);
|
||||
FreePool (File);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
@ -643,19 +650,19 @@ FvSimpleFileSystemClose (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemRead (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *FvFileInfoLink;
|
||||
VOID *FileBuffer;
|
||||
UINTN FileSize;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *FvFileInfoLink;
|
||||
VOID *FileBuffer;
|
||||
UINTN FileSize;
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
Instance = File->Instance;
|
||||
|
||||
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
|
||||
@ -679,6 +686,7 @@ FvSimpleFileSystemRead (
|
||||
File->DirReadNext = FVFS_FILE_INFO_FROM_LINK (FvFileInfoLink);
|
||||
}
|
||||
}
|
||||
|
||||
return Status;
|
||||
} else {
|
||||
//
|
||||
@ -706,7 +714,7 @@ FvSimpleFileSystemRead (
|
||||
*BufferSize = (UINTN)(FileSize - File->Position);
|
||||
}
|
||||
|
||||
CopyMem (Buffer, (UINT8*)FileBuffer + File->Position, *BufferSize);
|
||||
CopyMem (Buffer, (UINT8 *)FileBuffer + File->Position, *BufferSize);
|
||||
File->Position += *BufferSize;
|
||||
|
||||
FreePool (FileBuffer);
|
||||
@ -738,15 +746,15 @@ FvSimpleFileSystemRead (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemWrite (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN VOID *Buffer
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
Instance = File->Instance;
|
||||
|
||||
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
|
||||
@ -771,14 +779,14 @@ FvSimpleFileSystemWrite (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemGetPosition (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT UINT64 *Position
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT UINT64 *Position
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
Instance = File->Instance;
|
||||
|
||||
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
|
||||
@ -805,20 +813,21 @@ FvSimpleFileSystemGetPosition (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemSetPosition (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN UINT64 Position
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN UINT64 Position
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
Instance = File->Instance;
|
||||
|
||||
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
|
||||
if (Position != 0) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
//
|
||||
// Reset directory position to first entry
|
||||
//
|
||||
@ -871,10 +880,10 @@ FvSimpleFileSystemFlush (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemDelete (
|
||||
IN EFI_FILE_PROTOCOL *This
|
||||
IN EFI_FILE_PROTOCOL *This
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = FvSimpleFileSystemClose (This);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
@ -905,18 +914,18 @@ FvSimpleFileSystemDelete (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemGetInfo (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
)
|
||||
{
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
EFI_FILE_SYSTEM_INFO *FsInfoOut;
|
||||
EFI_FILE_SYSTEM_VOLUME_LABEL *FsVolumeLabel;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
UINTN Size;
|
||||
EFI_STATUS Status;
|
||||
FV_FILESYSTEM_FILE *File;
|
||||
EFI_FILE_SYSTEM_INFO *FsInfoOut;
|
||||
EFI_FILE_SYSTEM_VOLUME_LABEL *FsVolumeLabel;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
UINTN Size;
|
||||
EFI_STATUS Status;
|
||||
|
||||
File = FVFS_FILE_FROM_FILE_THIS (This);
|
||||
|
||||
@ -936,14 +945,15 @@ FvSimpleFileSystemGetInfo (
|
||||
//
|
||||
// Cast output buffer for convenience
|
||||
//
|
||||
FsInfoOut = (EFI_FILE_SYSTEM_INFO *) Buffer;
|
||||
FsInfoOut = (EFI_FILE_SYSTEM_INFO *)Buffer;
|
||||
|
||||
CopyMem (FsInfoOut, &mFsInfoTemplate, sizeof (EFI_FILE_SYSTEM_INFO));
|
||||
Status = StrnCpyS ( FsInfoOut->VolumeLabel,
|
||||
(*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)) / sizeof (CHAR16),
|
||||
Instance->VolumeLabel,
|
||||
StrLen (Instance->VolumeLabel)
|
||||
);
|
||||
Status = StrnCpyS (
|
||||
FsInfoOut->VolumeLabel,
|
||||
(*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)) / sizeof (CHAR16),
|
||||
Instance->VolumeLabel,
|
||||
StrLen (Instance->VolumeLabel)
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FsInfoOut->Size = Size;
|
||||
return Status;
|
||||
@ -951,24 +961,25 @@ FvSimpleFileSystemGetInfo (
|
||||
//
|
||||
// Return file info
|
||||
//
|
||||
return FvFsGetFileInfo (File->FvFileInfo, BufferSize, (EFI_FILE_INFO *) Buffer);
|
||||
return FvFsGetFileInfo (File->FvFileInfo, BufferSize, (EFI_FILE_INFO *)Buffer);
|
||||
} else if (CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid)) {
|
||||
//
|
||||
// Return Volume Label
|
||||
//
|
||||
Instance = File->Instance;
|
||||
Size = sizeof (EFI_FILE_SYSTEM_VOLUME_LABEL) + StrSize (Instance->VolumeLabel) - sizeof (CHAR16);;
|
||||
Size = sizeof (EFI_FILE_SYSTEM_VOLUME_LABEL) + StrSize (Instance->VolumeLabel) - sizeof (CHAR16);
|
||||
if (*BufferSize < Size) {
|
||||
*BufferSize = Size;
|
||||
return EFI_BUFFER_TOO_SMALL;
|
||||
}
|
||||
|
||||
FsVolumeLabel = (EFI_FILE_SYSTEM_VOLUME_LABEL*) Buffer;
|
||||
Status = StrnCpyS (FsVolumeLabel->VolumeLabel,
|
||||
(*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel)) / sizeof (CHAR16),
|
||||
Instance->VolumeLabel,
|
||||
StrLen (Instance->VolumeLabel)
|
||||
);
|
||||
FsVolumeLabel = (EFI_FILE_SYSTEM_VOLUME_LABEL *)Buffer;
|
||||
Status = StrnCpyS (
|
||||
FsVolumeLabel->VolumeLabel,
|
||||
(*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel)) / sizeof (CHAR16),
|
||||
Instance->VolumeLabel,
|
||||
StrLen (Instance->VolumeLabel)
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
return Status;
|
||||
} else {
|
||||
@ -1013,18 +1024,18 @@ FvSimpleFileSystemGetInfo (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemSetInfo (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
)
|
||||
{
|
||||
if (CompareGuid (InformationType, &gEfiFileSystemInfoGuid) ||
|
||||
CompareGuid (InformationType, &gEfiFileInfoGuid) ||
|
||||
CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid)) {
|
||||
CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid))
|
||||
{
|
||||
return EFI_WRITE_PROTECTED;
|
||||
}
|
||||
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
@ -20,21 +20,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
#include "FvSimpleFileSystemInternal.h"
|
||||
|
||||
EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;
|
||||
EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;
|
||||
|
||||
//
|
||||
// A Guid string is 32 hex characters with 4 hyphens and a NULL-terminated char: 37 characters total
|
||||
//
|
||||
#define GUID_STRING_SIZE (37 * sizeof (CHAR16))
|
||||
#define GUID_STRING_SIZE (37 * sizeof (CHAR16))
|
||||
|
||||
#define FVFS_VOLUME_LABEL_PREFIX L"Firmware Volume: "
|
||||
#define FVFS_VOLUME_LABEL_SIZE (sizeof (FVFS_VOLUME_LABEL_PREFIX) + GUID_STRING_SIZE - sizeof (CHAR16))
|
||||
#define FVFS_FALLBACK_VOLUME_LABEL L"Firmware Volume"
|
||||
#define FVFS_VOLUME_LABEL_PREFIX L"Firmware Volume: "
|
||||
#define FVFS_VOLUME_LABEL_SIZE (sizeof (FVFS_VOLUME_LABEL_PREFIX) + GUID_STRING_SIZE - sizeof (CHAR16))
|
||||
#define FVFS_FALLBACK_VOLUME_LABEL L"Firmware Volume"
|
||||
|
||||
//
|
||||
// Template for EFI_SIMPLE_FILE_SYSTEM_PROTOCOL data structure.
|
||||
//
|
||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mSimpleFsTemplate = {
|
||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mSimpleFsTemplate = {
|
||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION,
|
||||
FvSimpleFileSystemOpenVolume
|
||||
};
|
||||
@ -42,7 +42,7 @@ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mSimpleFsTemplate = {
|
||||
//
|
||||
// Template for EFI_DRIVER_BINDING_PROTOCOL data structure.
|
||||
//
|
||||
EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
|
||||
EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
|
||||
FvSimpleFileSystemDriverSupported,
|
||||
FvSimpleFileSystemDriverStart,
|
||||
FvSimpleFileSystemDriverStop,
|
||||
@ -74,29 +74,29 @@ EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemOpenVolume (
|
||||
IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **RootFile
|
||||
IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **RootFile
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
FV_FILESYSTEM_FILE *Root;
|
||||
CHAR16 *UiSection;
|
||||
EFI_GUID NameGuid;
|
||||
EFI_FV_FILE_ATTRIBUTES Attributes;
|
||||
UINT32 Authentication;
|
||||
UINTN Key;
|
||||
EFI_FV_FILETYPE FileType;
|
||||
UINTN Size;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE_INFO *FvFileInfo;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
|
||||
CHAR16 *Name;
|
||||
UINTN NameLen;
|
||||
UINTN NumChars;
|
||||
UINTN DestMax;
|
||||
EFI_STATUS Status;
|
||||
FV_FILESYSTEM_FILE *Root;
|
||||
CHAR16 *UiSection;
|
||||
EFI_GUID NameGuid;
|
||||
EFI_FV_FILE_ATTRIBUTES Attributes;
|
||||
UINT32 Authentication;
|
||||
UINTN Key;
|
||||
EFI_FV_FILETYPE FileType;
|
||||
UINTN Size;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
FV_FILESYSTEM_FILE_INFO *FvFileInfo;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
|
||||
CHAR16 *Name;
|
||||
UINTN NameLen;
|
||||
UINTN NumChars;
|
||||
UINTN DestMax;
|
||||
|
||||
Instance = FVFS_INSTANCE_FROM_SIMPLE_FS_THIS (This);
|
||||
Status = EFI_SUCCESS;
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
if (Instance->Root == NULL) {
|
||||
//
|
||||
@ -113,8 +113,9 @@ FvSimpleFileSystemOpenVolume (
|
||||
CopyMem (&Root->FileProtocol, &mFileSystemTemplate, sizeof (mFileSystemTemplate));
|
||||
Root->FvFileInfo = AllocateZeroPool (sizeof (FV_FILESYSTEM_FILE_INFO));
|
||||
if (Root->FvFileInfo == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
Root->FvFileInfo->FileInfo.Size = sizeof (EFI_FILE_INFO);
|
||||
Root->FvFileInfo->FileInfo.Attribute = EFI_FILE_DIRECTORY | EFI_FILE_READ_ONLY;
|
||||
|
||||
@ -149,15 +150,15 @@ FvSimpleFileSystemOpenVolume (
|
||||
// its NameGuid.
|
||||
//
|
||||
UiSection = NULL;
|
||||
Status = FvProtocol->ReadSection (
|
||||
FvProtocol,
|
||||
&NameGuid,
|
||||
EFI_SECTION_USER_INTERFACE,
|
||||
0,
|
||||
(VOID **)&UiSection,
|
||||
&Size,
|
||||
&Authentication
|
||||
);
|
||||
Status = FvProtocol->ReadSection (
|
||||
FvProtocol,
|
||||
&NameGuid,
|
||||
EFI_SECTION_USER_INTERFACE,
|
||||
0,
|
||||
(VOID **)&UiSection,
|
||||
&Size,
|
||||
&Authentication
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
Name = UiSection;
|
||||
} else {
|
||||
@ -165,6 +166,7 @@ FvSimpleFileSystemOpenVolume (
|
||||
if (Name == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
NumChars = UnicodeSPrint (Name, GUID_STRING_SIZE, L"%g", &NameGuid);
|
||||
ASSERT ((NumChars + 1) * sizeof (CHAR16) == GUID_STRING_SIZE);
|
||||
}
|
||||
@ -196,12 +198,12 @@ FvSimpleFileSystemOpenVolume (
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
if (FV_FILETYPE_IS_EXECUTABLE (FileType)) {
|
||||
Status = StrnCatS (&FvFileInfo->FileInfo.FileName[0], DestMax, L".efi", StrLen (L".efi"));
|
||||
Status = StrnCatS (&FvFileInfo->FileInfo.FileName[0], DestMax, L".efi", StrLen (L".efi"));
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
|
||||
FvFileInfo->FileInfo.Size = sizeof (EFI_FILE_INFO) + NameLen - sizeof (CHAR16);
|
||||
Status = FvFsGetFileSize (FvProtocol, FvFileInfo);
|
||||
FvFileInfo->FileInfo.Size = sizeof (EFI_FILE_INFO) + NameLen - sizeof (CHAR16);
|
||||
Status = FvFsGetFileSize (FvProtocol, FvFileInfo);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FvFileInfo->FileInfo.PhysicalSize = FvFileInfo->FileInfo.FileSize;
|
||||
FvFileInfo->FileInfo.Attribute = EFI_FILE_READ_ONLY;
|
||||
@ -209,7 +211,6 @@ FvSimpleFileSystemOpenVolume (
|
||||
InsertHeadList (&Instance->FileInfoHead, &FvFileInfo->Link);
|
||||
|
||||
FreePool (Name);
|
||||
|
||||
} while (TRUE);
|
||||
|
||||
if (Status == EFI_NOT_FOUND) {
|
||||
@ -243,10 +244,10 @@ FvSimpleFileSystemOpenVolume (
|
||||
**/
|
||||
EFI_STATUS
|
||||
InitializeUnicodeCollationSupportWorker (
|
||||
IN EFI_HANDLE AgentHandle,
|
||||
IN EFI_GUID *ProtocolGuid,
|
||||
IN CONST CHAR16 *VariableName,
|
||||
IN CONST CHAR8 *DefaultLanguage
|
||||
IN EFI_HANDLE AgentHandle,
|
||||
IN EFI_GUID *ProtocolGuid,
|
||||
IN CONST CHAR16 *VariableName,
|
||||
IN CONST CHAR8 *DefaultLanguage
|
||||
)
|
||||
{
|
||||
EFI_STATUS ReturnStatus;
|
||||
@ -270,8 +271,8 @@ InitializeUnicodeCollationSupportWorker (
|
||||
return Status;
|
||||
}
|
||||
|
||||
Iso639Language = (BOOLEAN) (ProtocolGuid == &gEfiUnicodeCollationProtocolGuid);
|
||||
GetEfiGlobalVariable2 (VariableName, (VOID**) &Language, NULL);
|
||||
Iso639Language = (BOOLEAN)(ProtocolGuid == &gEfiUnicodeCollationProtocolGuid);
|
||||
GetEfiGlobalVariable2 (VariableName, (VOID **)&Language, NULL);
|
||||
|
||||
ReturnStatus = EFI_UNSUPPORTED;
|
||||
for (Index = 0; Index < NumHandles; Index++) {
|
||||
@ -281,7 +282,7 @@ InitializeUnicodeCollationSupportWorker (
|
||||
Status = gBS->OpenProtocol (
|
||||
Handles[Index],
|
||||
ProtocolGuid,
|
||||
(VOID **) &Uci,
|
||||
(VOID **)&Uci,
|
||||
AgentHandle,
|
||||
NULL,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@ -304,7 +305,7 @@ InitializeUnicodeCollationSupportWorker (
|
||||
if (BestLanguage != NULL) {
|
||||
FreePool (BestLanguage);
|
||||
mUnicodeCollation = Uci;
|
||||
ReturnStatus = EFI_SUCCESS;
|
||||
ReturnStatus = EFI_SUCCESS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -333,11 +334,10 @@ InitializeUnicodeCollationSupportWorker (
|
||||
**/
|
||||
EFI_STATUS
|
||||
InitializeUnicodeCollationSupport (
|
||||
IN EFI_HANDLE AgentHandle
|
||||
IN EFI_HANDLE AgentHandle
|
||||
)
|
||||
{
|
||||
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = EFI_UNSUPPORTED;
|
||||
|
||||
@ -348,7 +348,7 @@ InitializeUnicodeCollationSupport (
|
||||
AgentHandle,
|
||||
&gEfiUnicodeCollation2ProtocolGuid,
|
||||
L"PlatformLang",
|
||||
(CONST CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang)
|
||||
(CONST CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultPlatformLang)
|
||||
);
|
||||
//
|
||||
// If the attempt to use Unicode Collation 2 Protocol fails, then we fall back
|
||||
@ -359,7 +359,7 @@ InitializeUnicodeCollationSupport (
|
||||
AgentHandle,
|
||||
&gEfiUnicodeCollationProtocolGuid,
|
||||
L"Lang",
|
||||
(CONST CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultLang)
|
||||
(CONST CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultLang)
|
||||
);
|
||||
}
|
||||
|
||||
@ -419,12 +419,12 @@ FvSimpleFileSystemDriverStart (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FvDevicePath;
|
||||
EFI_GUID *FvGuid;
|
||||
UINTN NumChars;
|
||||
EFI_STATUS Status;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FvDevicePath;
|
||||
EFI_GUID *FvGuid;
|
||||
UINTN NumChars;
|
||||
|
||||
Status = InitializeUnicodeCollationSupport (DriverBinding->DriverBindingHandle);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@ -437,7 +437,7 @@ FvSimpleFileSystemDriverStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiFirmwareVolume2ProtocolGuid,
|
||||
(VOID **) &FvProtocol,
|
||||
(VOID **)&FvProtocol,
|
||||
gImageHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@ -452,14 +452,14 @@ FvSimpleFileSystemDriverStart (
|
||||
Instance = AllocateZeroPool (sizeof (FV_FILESYSTEM_INSTANCE));
|
||||
ASSERT (Instance != NULL);
|
||||
|
||||
Instance->Root = NULL;
|
||||
Instance->Root = NULL;
|
||||
Instance->FvProtocol = FvProtocol;
|
||||
Instance->Signature = FVFS_INSTANCE_SIGNATURE;
|
||||
Instance->Signature = FVFS_INSTANCE_SIGNATURE;
|
||||
InitializeListHead (&Instance->FileInfoHead);
|
||||
InitializeListHead (&Instance->FileHead);
|
||||
CopyMem (&Instance->SimpleFs, &mSimpleFsTemplate, sizeof (mSimpleFsTemplate));
|
||||
|
||||
Status = gBS->InstallProtocolInterface(
|
||||
Status = gBS->InstallProtocolInterface (
|
||||
&ControllerHandle,
|
||||
&gEfiSimpleFileSystemProtocolGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
@ -472,21 +472,22 @@ FvSimpleFileSystemDriverStart (
|
||||
// Get the device path to find the FV's GUID
|
||||
//
|
||||
Instance->VolumeLabel = NULL;
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &FvDevicePath,
|
||||
gImageHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **)&FvDevicePath,
|
||||
gImageHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Iterate over device path until we find a firmware volume node
|
||||
//
|
||||
while (!IsDevicePathEndType (FvDevicePath)) {
|
||||
if (DevicePathType (FvDevicePath) == MEDIA_DEVICE_PATH &&
|
||||
DevicePathSubType (FvDevicePath) == MEDIA_PIWG_FW_VOL_DP) {
|
||||
if ((DevicePathType (FvDevicePath) == MEDIA_DEVICE_PATH) &&
|
||||
(DevicePathSubType (FvDevicePath) == MEDIA_PIWG_FW_VOL_DP))
|
||||
{
|
||||
//
|
||||
// Allocate the volume label
|
||||
//
|
||||
@ -498,7 +499,7 @@ FvSimpleFileSystemDriverStart (
|
||||
//
|
||||
// Extract the FV's guid
|
||||
//
|
||||
FvGuid = &((MEDIA_FW_VOL_DEVICE_PATH *) FvDevicePath)->FvName;
|
||||
FvGuid = &((MEDIA_FW_VOL_DEVICE_PATH *)FvDevicePath)->FvName;
|
||||
//
|
||||
// Build the volume label string
|
||||
//
|
||||
@ -510,11 +511,14 @@ FvSimpleFileSystemDriverStart (
|
||||
);
|
||||
ASSERT ((NumChars + 1) * sizeof (CHAR16) == FVFS_VOLUME_LABEL_SIZE);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
FvDevicePath = NextDevicePathNode (FvDevicePath);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// If we didn't decide on a volume label, set a fallback one
|
||||
//
|
||||
@ -545,10 +549,10 @@ FvSimpleFileSystemDriverStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemDriverStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@ -561,7 +565,7 @@ FvSimpleFileSystemDriverStop (
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiSimpleFileSystemProtocolGuid,
|
||||
(VOID **) &SimpleFile,
|
||||
(VOID **)&SimpleFile,
|
||||
DriverBinding->DriverBindingHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@ -583,11 +587,11 @@ FvSimpleFileSystemDriverStop (
|
||||
// Close and uninstall protocols.
|
||||
//
|
||||
Status = gBS->CloseProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiFirmwareVolume2ProtocolGuid,
|
||||
gImageHandle,
|
||||
ControllerHandle
|
||||
);
|
||||
ControllerHandle,
|
||||
&gEfiFirmwareVolume2ProtocolGuid,
|
||||
gImageHandle,
|
||||
ControllerHandle
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
Status = gBS->UninstallProtocolInterface (
|
||||
@ -604,9 +608,10 @@ FvSimpleFileSystemDriverStop (
|
||||
//
|
||||
// Free the Subtask list.
|
||||
//
|
||||
for(Entry = Instance->FileInfoHead.ForwardLink;
|
||||
Entry != (&Instance->FileInfoHead);
|
||||
) {
|
||||
for (Entry = Instance->FileInfoHead.ForwardLink;
|
||||
Entry != (&Instance->FileInfoHead);
|
||||
)
|
||||
{
|
||||
DelEntry = Entry;
|
||||
Entry = Entry->ForwardLink;
|
||||
FvFileInfo = FVFS_FILE_INFO_FROM_LINK (DelEntry);
|
||||
@ -623,6 +628,7 @@ FvSimpleFileSystemDriverStop (
|
||||
if (Instance->Root->FvFileInfo != NULL) {
|
||||
FreePool (Instance->Root->FvFileInfo);
|
||||
}
|
||||
|
||||
FreePool (Instance->Root);
|
||||
}
|
||||
|
||||
@ -632,6 +638,7 @@ FvSimpleFileSystemDriverStop (
|
||||
if (Instance->VolumeLabel != NULL) {
|
||||
FreePool (Instance->VolumeLabel);
|
||||
}
|
||||
|
||||
FreePool (Instance);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
@ -650,11 +657,11 @@ FvSimpleFileSystemDriverStop (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemEntryPoint (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Install driver model protocol(s).
|
||||
|
@ -41,14 +41,14 @@ typedef struct _FV_FILESYSTEM_INSTANCE FV_FILESYSTEM_INSTANCE;
|
||||
// these structs per FV.
|
||||
//
|
||||
struct _FV_FILESYSTEM_INSTANCE {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY FileInfoHead;
|
||||
LIST_ENTRY FileHead;
|
||||
EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
|
||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFs;
|
||||
FV_FILESYSTEM_FILE *Root;
|
||||
CHAR16 *VolumeLabel;
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY FileInfoHead;
|
||||
LIST_ENTRY FileHead;
|
||||
EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
|
||||
EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
|
||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFs;
|
||||
FV_FILESYSTEM_FILE *Root;
|
||||
CHAR16 *VolumeLabel;
|
||||
};
|
||||
|
||||
//
|
||||
@ -57,59 +57,58 @@ struct _FV_FILESYSTEM_INSTANCE {
|
||||
// be created once for each FV.
|
||||
//
|
||||
struct _FV_FILESYSTEM_FILE {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
FV_FILESYSTEM_FILE_INFO *DirReadNext;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
EFI_FILE_PROTOCOL FileProtocol;
|
||||
FV_FILESYSTEM_FILE_INFO *FvFileInfo;
|
||||
UINT64 Position;
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
FV_FILESYSTEM_FILE_INFO *DirReadNext;
|
||||
FV_FILESYSTEM_INSTANCE *Instance;
|
||||
EFI_FILE_PROTOCOL FileProtocol;
|
||||
FV_FILESYSTEM_FILE_INFO *FvFileInfo;
|
||||
UINT64 Position;
|
||||
};
|
||||
|
||||
//
|
||||
// Struct representing the info of a file.
|
||||
//
|
||||
struct _FV_FILESYSTEM_FILE_INFO {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
EFI_GUID NameGuid;
|
||||
EFI_FV_FILETYPE Type;
|
||||
EFI_FILE_INFO FileInfo;
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
EFI_GUID NameGuid;
|
||||
EFI_FV_FILETYPE Type;
|
||||
EFI_FILE_INFO FileInfo;
|
||||
};
|
||||
|
||||
#define FVFS_FILE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 'i')
|
||||
#define FVFS_FILE_INFO_SIGNATURE SIGNATURE_32 ('f', 'v', 'i', 'n')
|
||||
#define FVFS_INSTANCE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 's')
|
||||
#define FVFS_FILE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 'i')
|
||||
#define FVFS_FILE_INFO_SIGNATURE SIGNATURE_32 ('f', 'v', 'i', 'n')
|
||||
#define FVFS_INSTANCE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 's')
|
||||
|
||||
#define FVFS_INSTANCE_FROM_SIMPLE_FS_THIS(This) CR ( \
|
||||
#define FVFS_INSTANCE_FROM_SIMPLE_FS_THIS(This) CR ( \
|
||||
This, \
|
||||
FV_FILESYSTEM_INSTANCE, \
|
||||
SimpleFs, \
|
||||
FVFS_INSTANCE_SIGNATURE \
|
||||
)
|
||||
|
||||
#define FVFS_FILE_FROM_FILE_THIS(This) CR ( \
|
||||
#define FVFS_FILE_FROM_FILE_THIS(This) CR ( \
|
||||
This, \
|
||||
FV_FILESYSTEM_FILE, \
|
||||
FileProtocol, \
|
||||
FVFS_FILE_SIGNATURE \
|
||||
)
|
||||
|
||||
#define FVFS_FILE_INFO_FROM_LINK(This) CR ( \
|
||||
#define FVFS_FILE_INFO_FROM_LINK(This) CR ( \
|
||||
This, \
|
||||
FV_FILESYSTEM_FILE_INFO, \
|
||||
Link, \
|
||||
FVFS_FILE_INFO_SIGNATURE \
|
||||
)
|
||||
|
||||
#define FVFS_FILE_FROM_LINK(FileLink) CR (FileLink, FV_FILESYSTEM_FILE, Link, FVFS_FILE_SIGNATURE)
|
||||
#define FVFS_FILE_FROM_LINK(FileLink) CR (FileLink, FV_FILESYSTEM_FILE, Link, FVFS_FILE_SIGNATURE)
|
||||
|
||||
#define FVFS_GET_FIRST_FILE(Instance) FVFS_FILE_FROM_LINK (GetFirstNode (&Instance->FileHead))
|
||||
#define FVFS_GET_FIRST_FILE(Instance) FVFS_FILE_FROM_LINK (GetFirstNode (&Instance->FileHead))
|
||||
|
||||
#define FVFS_GET_FIRST_FILE_INFO(Instance) FVFS_FILE_INFO_FROM_LINK (GetFirstNode (&Instance->FileInfoHead))
|
||||
#define FVFS_GET_FIRST_FILE_INFO(Instance) FVFS_FILE_INFO_FROM_LINK (GetFirstNode (&Instance->FileInfoHead))
|
||||
|
||||
|
||||
#define FV_FILETYPE_IS_EXECUTABLE(Type) ((Type) == EFI_FV_FILETYPE_PEIM || \
|
||||
#define FV_FILETYPE_IS_EXECUTABLE(Type) ((Type) == EFI_FV_FILETYPE_PEIM ||\
|
||||
(Type) == EFI_FV_FILETYPE_DRIVER || \
|
||||
(Type) == EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER || \
|
||||
(Type) == EFI_FV_FILETYPE_APPLICATION)
|
||||
@ -137,8 +136,8 @@ struct _FV_FILESYSTEM_FILE_INFO {
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemOpenVolume (
|
||||
IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **RootFile
|
||||
IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **RootFile
|
||||
);
|
||||
|
||||
/**
|
||||
@ -201,10 +200,10 @@ FvSimpleFileSystemDriverStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemDriverStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@ -240,11 +239,11 @@ FvSimpleFileSystemDriverStop (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemOpen (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||
IN CHAR16 *FileName,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||
IN CHAR16 *FileName,
|
||||
IN UINT64 OpenMode,
|
||||
IN UINT64 Attributes
|
||||
);
|
||||
|
||||
/**
|
||||
@ -285,9 +284,9 @@ FvSimpleFileSystemClose (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemRead (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@ -313,9 +312,9 @@ FvSimpleFileSystemRead (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemWrite (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN OUT UINTN *BufferSize,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@ -333,8 +332,8 @@ FvSimpleFileSystemWrite (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemGetPosition (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT UINT64 *Position
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
OUT UINT64 *Position
|
||||
);
|
||||
|
||||
/**
|
||||
@ -353,8 +352,8 @@ FvSimpleFileSystemGetPosition (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemSetPosition (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN UINT64 Position
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN UINT64 Position
|
||||
);
|
||||
|
||||
/**
|
||||
@ -391,7 +390,7 @@ FvSimpleFileSystemFlush (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemDelete (
|
||||
IN EFI_FILE_PROTOCOL *This
|
||||
IN EFI_FILE_PROTOCOL *This
|
||||
);
|
||||
|
||||
/**
|
||||
@ -417,10 +416,10 @@ FvSimpleFileSystemDelete (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemGetInfo (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN OUT UINTN *BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@ -460,10 +459,10 @@ FvSimpleFileSystemGetInfo (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemSetInfo (
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_FILE_PROTOCOL *This,
|
||||
IN EFI_GUID *InformationType,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@ -479,8 +478,8 @@ FvSimpleFileSystemSetInfo (
|
||||
**/
|
||||
EFI_STATUS
|
||||
FvFsGetFileSize (
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
|
||||
IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
|
||||
IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
|
||||
);
|
||||
|
||||
/**
|
||||
@ -601,11 +600,11 @@ FvSimpleFileSystemComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FvSimpleFileSystemComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
);
|
||||
|
||||
extern EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation;
|
||||
|
Reference in New Issue
Block a user