\r
#include "FatLitePeim.h"\r
\r
-\r
#define CHAR_FAT_VALID 0x01\r
\r
-\r
/**\r
Converts a union code character to upper case.\r
This functions converts a unicode character to upper case.\r
**/\r
CHAR16\r
ToUpper (\r
- IN CHAR16 Letter\r
+ IN CHAR16 Letter\r
)\r
{\r
- if ('a' <= Letter && Letter <= 'z') {\r
- Letter = (CHAR16) (Letter - 0x20);\r
+ if (('a' <= Letter) && (Letter <= 'z')) {\r
+ Letter = (CHAR16)(Letter - 0x20);\r
}\r
\r
return Letter;\r
}\r
\r
-\r
/**\r
Reads a block of data from the block device by calling\r
underlying Block I/O service.\r
**/\r
EFI_STATUS\r
FatReadBlock (\r
- IN PEI_FAT_PRIVATE_DATA *PrivateData,\r
- IN UINTN BlockDeviceNo,\r
- IN EFI_PEI_LBA Lba,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
+ IN PEI_FAT_PRIVATE_DATA *PrivateData,\r
+ IN UINTN BlockDeviceNo,\r
+ IN EFI_PEI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ OUT VOID *Buffer\r
)\r
{\r
EFI_STATUS Status;\r
return EFI_DEVICE_ERROR;\r
}\r
\r
- Status = EFI_SUCCESS;\r
- BlockDev = &(PrivateData->BlockDevice[BlockDeviceNo]);\r
+ Status = EFI_SUCCESS;\r
+ BlockDev = &(PrivateData->BlockDevice[BlockDeviceNo]);\r
\r
if (BufferSize > MultU64x32 (BlockDev->LastBlock - Lba + 1, BlockDev->BlockSize)) {\r
return EFI_DEVICE_ERROR;\r
//\r
if (BlockDev->BlockIo2 != NULL) {\r
Status = BlockDev->BlockIo2->ReadBlocks (\r
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),\r
- BlockDev->BlockIo2,\r
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),\r
+ BlockDev->BlockIo2,\r
+ BlockDev->PhysicalDevNo,\r
+ Lba,\r
+ BufferSize,\r
+ Buffer\r
+ );\r
+ } else {\r
+ Status = BlockDev->BlockIo->ReadBlocks (\r
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),\r
+ BlockDev->BlockIo,\r
BlockDev->PhysicalDevNo,\r
Lba,\r
BufferSize,\r
Buffer\r
);\r
- } else {\r
- Status = BlockDev->BlockIo->ReadBlocks (\r
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),\r
- BlockDev->BlockIo,\r
- BlockDev->PhysicalDevNo,\r
- Lba,\r
- BufferSize,\r
- Buffer\r
- );\r
}\r
-\r
} else {\r
Status = FatReadDisk (\r
- PrivateData,\r
- BlockDev->ParentDevNo,\r
- BlockDev->StartingPos + MultU64x32 (Lba, BlockDev->BlockSize),\r
- BufferSize,\r
- Buffer\r
- );\r
+ PrivateData,\r
+ BlockDev->ParentDevNo,\r
+ BlockDev->StartingPos + MultU64x32 (Lba, BlockDev->BlockSize),\r
+ BufferSize,\r
+ Buffer\r
+ );\r
}\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Find a cache block designated to specific Block device and Lba.\r
If not found, invalidate an oldest one and use it. (LRU cache)\r
//\r
for (Index = 0; Index < PEI_FAT_CACHE_SIZE; Index++) {\r
CacheBuffer = &(PrivateData->CacheBuffer[Index]);\r
- if (CacheBuffer->Valid && CacheBuffer->BlockDeviceNo == BlockDeviceNo && CacheBuffer->Lba == Lba) {\r
+ if (CacheBuffer->Valid && (CacheBuffer->BlockDeviceNo == BlockDeviceNo) && (CacheBuffer->Lba == Lba)) {\r
break;\r
}\r
}\r
\r
if (Index < PEI_FAT_CACHE_SIZE) {\r
- *CachePtr = (CHAR8 *) CacheBuffer->Buffer;\r
+ *CachePtr = (CHAR8 *)CacheBuffer->Buffer;\r
return EFI_SUCCESS;\r
}\r
+\r
//\r
// We have to find an invalid cache buffer\r
//\r
break;\r
}\r
}\r
+\r
//\r
// Use the cache buffer\r
//\r
return EFI_DEVICE_ERROR;\r
}\r
\r
- CacheBuffer = &(PrivateData->CacheBuffer[Index]);\r
+ CacheBuffer = &(PrivateData->CacheBuffer[Index]);\r
\r
- CacheBuffer->BlockDeviceNo = BlockDeviceNo;\r
- CacheBuffer->Lba = Lba;\r
- CacheBuffer->Size = PrivateData->BlockDevice[BlockDeviceNo].BlockSize;\r
+ CacheBuffer->BlockDeviceNo = BlockDeviceNo;\r
+ CacheBuffer->Lba = Lba;\r
+ CacheBuffer->Size = PrivateData->BlockDevice[BlockDeviceNo].BlockSize;\r
\r
//\r
// Read in the data\r
//\r
Status = FatReadBlock (\r
- PrivateData,\r
- BlockDeviceNo,\r
- Lba,\r
- CacheBuffer->Size,\r
- CacheBuffer->Buffer\r
- );\r
+ PrivateData,\r
+ BlockDeviceNo,\r
+ Lba,\r
+ CacheBuffer->Size,\r
+ CacheBuffer->Buffer\r
+ );\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
}\r
\r
- CacheBuffer->Valid = TRUE;\r
- *CachePtr = (CHAR8 *) CacheBuffer->Buffer;\r
+ CacheBuffer->Valid = TRUE;\r
+ *CachePtr = (CHAR8 *)CacheBuffer->Buffer;\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Disk reading.\r
\r
//\r
// Read underrun\r
//\r
- Lba = DivU64x32Remainder (StartingAddress, BlockSize, &Offset);\r
- Status = FatGetCacheBlock (PrivateData, BlockDeviceNo, Lba, &CachePtr);\r
+ Lba = DivU64x32Remainder (StartingAddress, BlockSize, &Offset);\r
+ Status = FatGetCacheBlock (PrivateData, BlockDeviceNo, Lba, &CachePtr);\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
}\r
return EFI_SUCCESS;\r
}\r
\r
- Size -= Amount;\r
- BufferPtr += Amount;\r
+ Size -= Amount;\r
+ BufferPtr += Amount;\r
StartingAddress += Amount;\r
- Lba += 1;\r
+ Lba += 1;\r
\r
//\r
// Read aligned parts\r
//\r
OverRunLba = Lba + DivU64x32Remainder (Size, BlockSize, &Offset);\r
\r
- Size -= Offset;\r
+ Size -= Offset;\r
Status = FatReadBlock (PrivateData, BlockDeviceNo, Lba, Size, BufferPtr);\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
return Status;\r
}\r
\r
-\r
/**\r
This version is different from the version in Unicode collation\r
protocol in that this version strips off trailing blanks.\r
**/\r
VOID\r
EngFatToStr (\r
- IN UINTN FatSize,\r
- IN CHAR8 *Fat,\r
- OUT CHAR16 *Str\r
+ IN UINTN FatSize,\r
+ IN CHAR8 *Fat,\r
+ OUT CHAR16 *Str\r
)\r
{\r
CHAR16 *String;\r
if (*Fat == ' ') {\r
break;\r
}\r
- *String = *Fat;\r
- String += 1;\r
- Fat += 1;\r
+\r
+ *String = *Fat;\r
+ String += 1;\r
+ Fat += 1;\r
FatSize -= 1;\r
}\r
\r
*String = 0;\r
}\r
\r
-\r
/**\r
Performs a case-insensitive comparison of two Null-terminated Unicode strings.\r
\r
UpperS2 = ToUpper (*Str2);\r
}\r
\r
- return (BOOLEAN) ((*Str2 != 0) ? FALSE : TRUE);\r
+ return (BOOLEAN)((*Str2 != 0) ? FALSE : TRUE);\r
}\r