summaryrefslogtreecommitdiffstats
path: root/FatPkg/FatPei/FatLiteLib.c
diff options
context:
space:
mode:
Diffstat (limited to 'FatPkg/FatPei/FatLiteLib.c')
-rw-r--r--FatPkg/FatPei/FatLiteLib.c119
1 files changed, 57 insertions, 62 deletions
diff --git a/FatPkg/FatPei/FatLiteLib.c b/FatPkg/FatPei/FatLiteLib.c
index 3d43e0b877..ef71fe907e 100644
--- a/FatPkg/FatPei/FatLiteLib.c
+++ b/FatPkg/FatPei/FatLiteLib.c
@@ -9,10 +9,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "FatLitePeim.h"
-
#define CHAR_FAT_VALID 0x01
-
/**
Converts a union code character to upper case.
This functions converts a unicode character to upper case.
@@ -26,17 +24,16 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
CHAR16
ToUpper (
- IN CHAR16 Letter
+ IN CHAR16 Letter
)
{
- if ('a' <= Letter && Letter <= 'z') {
- Letter = (CHAR16) (Letter - 0x20);
+ if (('a' <= Letter) && (Letter <= 'z')) {
+ Letter = (CHAR16)(Letter - 0x20);
}
return Letter;
}
-
/**
Reads a block of data from the block device by calling
underlying Block I/O service.
@@ -55,11 +52,11 @@ ToUpper (
**/
EFI_STATUS
FatReadBlock (
- IN PEI_FAT_PRIVATE_DATA *PrivateData,
- IN UINTN BlockDeviceNo,
- IN EFI_PEI_LBA Lba,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN PEI_FAT_PRIVATE_DATA *PrivateData,
+ IN UINTN BlockDeviceNo,
+ IN EFI_PEI_LBA Lba,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
)
{
EFI_STATUS Status;
@@ -69,8 +66,8 @@ FatReadBlock (
return EFI_DEVICE_ERROR;
}
- Status = EFI_SUCCESS;
- BlockDev = &(PrivateData->BlockDevice[BlockDeviceNo]);
+ Status = EFI_SUCCESS;
+ BlockDev = &(PrivateData->BlockDevice[BlockDeviceNo]);
if (BufferSize > MultU64x32 (BlockDev->LastBlock - Lba + 1, BlockDev->BlockSize)) {
return EFI_DEVICE_ERROR;
@@ -83,38 +80,36 @@ FatReadBlock (
//
if (BlockDev->BlockIo2 != NULL) {
Status = BlockDev->BlockIo2->ReadBlocks (
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
- BlockDev->BlockIo2,
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),
+ BlockDev->BlockIo2,
+ BlockDev->PhysicalDevNo,
+ Lba,
+ BufferSize,
+ Buffer
+ );
+ } else {
+ Status = BlockDev->BlockIo->ReadBlocks (
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),
+ BlockDev->BlockIo,
BlockDev->PhysicalDevNo,
Lba,
BufferSize,
Buffer
);
- } else {
- Status = BlockDev->BlockIo->ReadBlocks (
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
- BlockDev->BlockIo,
- BlockDev->PhysicalDevNo,
- Lba,
- BufferSize,
- Buffer
- );
}
-
} else {
Status = FatReadDisk (
- PrivateData,
- BlockDev->ParentDevNo,
- BlockDev->StartingPos + MultU64x32 (Lba, BlockDev->BlockSize),
- BufferSize,
- Buffer
- );
+ PrivateData,
+ BlockDev->ParentDevNo,
+ BlockDev->StartingPos + MultU64x32 (Lba, BlockDev->BlockSize),
+ BufferSize,
+ Buffer
+ );
}
return Status;
}
-
/**
Find a cache block designated to specific Block device and Lba.
If not found, invalidate an oldest one and use it. (LRU cache)
@@ -150,15 +145,16 @@ FatGetCacheBlock (
//
for (Index = 0; Index < PEI_FAT_CACHE_SIZE; Index++) {
CacheBuffer = &(PrivateData->CacheBuffer[Index]);
- if (CacheBuffer->Valid && CacheBuffer->BlockDeviceNo == BlockDeviceNo && CacheBuffer->Lba == Lba) {
+ if (CacheBuffer->Valid && (CacheBuffer->BlockDeviceNo == BlockDeviceNo) && (CacheBuffer->Lba == Lba)) {
break;
}
}
if (Index < PEI_FAT_CACHE_SIZE) {
- *CachePtr = (CHAR8 *) CacheBuffer->Buffer;
+ *CachePtr = (CHAR8 *)CacheBuffer->Buffer;
return EFI_SUCCESS;
}
+
//
// We have to find an invalid cache buffer
//
@@ -167,6 +163,7 @@ FatGetCacheBlock (
break;
}
}
+
//
// Use the cache buffer
//
@@ -181,33 +178,32 @@ FatGetCacheBlock (
return EFI_DEVICE_ERROR;
}
- CacheBuffer = &(PrivateData->CacheBuffer[Index]);
+ CacheBuffer = &(PrivateData->CacheBuffer[Index]);
- CacheBuffer->BlockDeviceNo = BlockDeviceNo;
- CacheBuffer->Lba = Lba;
- CacheBuffer->Size = PrivateData->BlockDevice[BlockDeviceNo].BlockSize;
+ CacheBuffer->BlockDeviceNo = BlockDeviceNo;
+ CacheBuffer->Lba = Lba;
+ CacheBuffer->Size = PrivateData->BlockDevice[BlockDeviceNo].BlockSize;
//
// Read in the data
//
Status = FatReadBlock (
- PrivateData,
- BlockDeviceNo,
- Lba,
- CacheBuffer->Size,
- CacheBuffer->Buffer
- );
+ PrivateData,
+ BlockDeviceNo,
+ Lba,
+ CacheBuffer->Size,
+ CacheBuffer->Buffer
+ );
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
- CacheBuffer->Valid = TRUE;
- *CachePtr = (CHAR8 *) CacheBuffer->Buffer;
+ CacheBuffer->Valid = TRUE;
+ *CachePtr = (CHAR8 *)CacheBuffer->Buffer;
return Status;
}
-
/**
Disk reading.
@@ -246,8 +242,8 @@ FatReadDisk (
//
// Read underrun
//
- Lba = DivU64x32Remainder (StartingAddress, BlockSize, &Offset);
- Status = FatGetCacheBlock (PrivateData, BlockDeviceNo, Lba, &CachePtr);
+ Lba = DivU64x32Remainder (StartingAddress, BlockSize, &Offset);
+ Status = FatGetCacheBlock (PrivateData, BlockDeviceNo, Lba, &CachePtr);
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
@@ -259,17 +255,17 @@ FatReadDisk (
return EFI_SUCCESS;
}
- Size -= Amount;
- BufferPtr += Amount;
+ Size -= Amount;
+ BufferPtr += Amount;
StartingAddress += Amount;
- Lba += 1;
+ Lba += 1;
//
// Read aligned parts
//
OverRunLba = Lba + DivU64x32Remainder (Size, BlockSize, &Offset);
- Size -= Offset;
+ Size -= Offset;
Status = FatReadBlock (PrivateData, BlockDeviceNo, Lba, Size, BufferPtr);
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
@@ -292,7 +288,6 @@ FatReadDisk (
return Status;
}
-
/**
This version is different from the version in Unicode collation
protocol in that this version strips off trailing blanks.
@@ -310,9 +305,9 @@ FatReadDisk (
**/
VOID
EngFatToStr (
- IN UINTN FatSize,
- IN CHAR8 *Fat,
- OUT CHAR16 *Str
+ IN UINTN FatSize,
+ IN CHAR8 *Fat,
+ OUT CHAR16 *Str
)
{
CHAR16 *String;
@@ -325,16 +320,16 @@ EngFatToStr (
if (*Fat == ' ') {
break;
}
- *String = *Fat;
- String += 1;
- Fat += 1;
+
+ *String = *Fat;
+ String += 1;
+ Fat += 1;
FatSize -= 1;
}
*String = 0;
}
-
/**
Performs a case-insensitive comparison of two Null-terminated Unicode strings.
@@ -366,5 +361,5 @@ EngStriColl (
UpperS2 = ToUpper (*Str2);
}
- return (BOOLEAN) ((*Str2 != 0) ? FALSE : TRUE);
+ return (BOOLEAN)((*Str2 != 0) ? FALSE : TRUE);
}