**/\r
BOOLEAN\r
FatFindEltoritoPartitions (\r
- IN PEI_FAT_PRIVATE_DATA *PrivateData,\r
- IN UINTN ParentBlockDevNo\r
+ IN PEI_FAT_PRIVATE_DATA *PrivateData,\r
+ IN UINTN ParentBlockDevNo\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN Found;\r
- PEI_FAT_BLOCK_DEVICE *BlockDev;\r
- PEI_FAT_BLOCK_DEVICE *ParentBlockDev;\r
- UINT32 VolDescriptorLba;\r
- UINT32 Lba;\r
- CDROM_VOLUME_DESCRIPTOR *VolDescriptor;\r
- ELTORITO_CATALOG *Catalog;\r
- UINTN Check;\r
- UINTN Index;\r
- UINTN MaxIndex;\r
- UINT16 *CheckBuffer;\r
- UINT32 SubBlockSize;\r
- UINT32 SectorCount;\r
- UINT32 VolSpaceSize;\r
+ EFI_STATUS Status;\r
+ BOOLEAN Found;\r
+ PEI_FAT_BLOCK_DEVICE *BlockDev;\r
+ PEI_FAT_BLOCK_DEVICE *ParentBlockDev;\r
+ UINT32 VolDescriptorLba;\r
+ UINT32 Lba;\r
+ CDROM_VOLUME_DESCRIPTOR *VolDescriptor;\r
+ ELTORITO_CATALOG *Catalog;\r
+ UINTN Check;\r
+ UINTN Index;\r
+ UINTN MaxIndex;\r
+ UINT16 *CheckBuffer;\r
+ UINT32 SubBlockSize;\r
+ UINT32 SectorCount;\r
+ UINT32 VolSpaceSize;\r
\r
if (ParentBlockDevNo > PEI_FAT_MAX_BLOCK_DEVICE - 1) {\r
return FALSE;\r
}\r
\r
- Found = FALSE;\r
- ParentBlockDev = &(PrivateData->BlockDevice[ParentBlockDevNo]);\r
- VolSpaceSize = 0;\r
+ Found = FALSE;\r
+ ParentBlockDev = &(PrivateData->BlockDevice[ParentBlockDevNo]);\r
+ VolSpaceSize = 0;\r
\r
//\r
// CD_ROM has the fixed block size as 2048 bytes\r
return FALSE;\r
}\r
\r
- VolDescriptor = (CDROM_VOLUME_DESCRIPTOR *) PrivateData->BlockData;\r
- Catalog = (ELTORITO_CATALOG *) VolDescriptor;\r
+ VolDescriptor = (CDROM_VOLUME_DESCRIPTOR *)PrivateData->BlockData;\r
+ Catalog = (ELTORITO_CATALOG *)VolDescriptor;\r
\r
//\r
// the ISO-9660 volume descriptor starts at 32k on the media\r
// Loop: handle one volume descriptor per time\r
//\r
while (TRUE) {\r
-\r
VolDescriptorLba += 1;\r
if (VolDescriptorLba > ParentBlockDev->LastBlock) {\r
//\r
}\r
\r
Status = FatReadBlock (\r
- PrivateData,\r
- ParentBlockDevNo,\r
- VolDescriptorLba,\r
- ParentBlockDev->BlockSize,\r
- VolDescriptor\r
- );\r
+ PrivateData,\r
+ ParentBlockDevNo,\r
+ VolDescriptorLba,\r
+ ParentBlockDev->BlockSize,\r
+ VolDescriptor\r
+ );\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
+\r
//\r
// Check for valid volume descriptor signature\r
//\r
- if (VolDescriptor->Unknown.Type == CDVOL_TYPE_END ||\r
- CompareMem (VolDescriptor->Unknown.Id, CDVOL_ID, sizeof (VolDescriptor->Unknown.Id)) != 0\r
- ) {\r
+ if ((VolDescriptor->Unknown.Type == CDVOL_TYPE_END) ||\r
+ (CompareMem (VolDescriptor->Unknown.Id, CDVOL_ID, sizeof (VolDescriptor->Unknown.Id)) != 0)\r
+ )\r
+ {\r
//\r
// end of Volume descriptor list\r
//\r
break;\r
}\r
+\r
//\r
// Read the Volume Space Size from Primary Volume Descriptor 81-88 byte\r
//\r
if (VolDescriptor->Unknown.Type == CDVOL_TYPE_CODED) {\r
VolSpaceSize = VolDescriptor->PrimaryVolume.VolSpaceSize[1];\r
}\r
+\r
//\r
// Is it an El Torito volume descriptor?\r
//\r
VolDescriptor->BootRecordVolume.SystemId,\r
CDVOL_ELTORITO_ID,\r
sizeof (CDVOL_ELTORITO_ID) - 1\r
- ) != 0) {\r
+ ) != 0)\r
+ {\r
continue;\r
}\r
+\r
//\r
// Read in the boot El Torito boot catalog\r
//\r
}\r
\r
Status = FatReadBlock (\r
- PrivateData,\r
- ParentBlockDevNo,\r
- Lba,\r
- ParentBlockDev->BlockSize,\r
- Catalog\r
- );\r
+ PrivateData,\r
+ ParentBlockDevNo,\r
+ Lba,\r
+ ParentBlockDev->BlockSize,\r
+ Catalog\r
+ );\r
if (EFI_ERROR (Status)) {\r
continue;\r
}\r
+\r
//\r
// We don't care too much about the Catalog header's contents, but we do want\r
// to make sure it looks like a Catalog header\r
//\r
- if (Catalog->Catalog.Indicator != ELTORITO_ID_CATALOG || Catalog->Catalog.Id55AA != 0xAA55) {\r
+ if ((Catalog->Catalog.Indicator != ELTORITO_ID_CATALOG) || (Catalog->Catalog.Id55AA != 0xAA55)) {\r
continue;\r
}\r
\r
Check = 0;\r
- CheckBuffer = (UINT16 *) Catalog;\r
+ CheckBuffer = (UINT16 *)Catalog;\r
for (Index = 0; Index < sizeof (ELTORITO_CATALOG) / sizeof (UINT16); Index += 1) {\r
Check += CheckBuffer[Index];\r
}\r
//\r
// Check this entry\r
//\r
- if (Catalog->Boot.Indicator != ELTORITO_ID_SECTION_BOOTABLE || Catalog->Boot.Lba == 0) {\r
+ if ((Catalog->Boot.Indicator != ELTORITO_ID_SECTION_BOOTABLE) || (Catalog->Boot.Lba == 0)) {\r
continue;\r
}\r
\r
- SubBlockSize = 512;\r
- SectorCount = Catalog->Boot.SectorCount;\r
+ SubBlockSize = 512;\r
+ SectorCount = Catalog->Boot.SectorCount;\r
\r
switch (Catalog->Boot.MediaType) {\r
-\r
- case ELTORITO_NO_EMULATION:\r
- SubBlockSize = ParentBlockDev->BlockSize;\r
- SectorCount = Catalog->Boot.SectorCount;\r
- break;\r
-\r
- case ELTORITO_HARD_DISK:\r
- break;\r
-\r
- case ELTORITO_12_DISKETTE:\r
- SectorCount = 0x50 * 0x02 * 0x0F;\r
- break;\r
-\r
- case ELTORITO_14_DISKETTE:\r
- SectorCount = 0x50 * 0x02 * 0x12;\r
- break;\r
-\r
- case ELTORITO_28_DISKETTE:\r
- SectorCount = 0x50 * 0x02 * 0x24;\r
- break;\r
-\r
- default:\r
- SectorCount = 0;\r
- SubBlockSize = ParentBlockDev->BlockSize;\r
- break;\r
+ case ELTORITO_NO_EMULATION:\r
+ SubBlockSize = ParentBlockDev->BlockSize;\r
+ SectorCount = Catalog->Boot.SectorCount;\r
+ break;\r
+\r
+ case ELTORITO_HARD_DISK:\r
+ break;\r
+\r
+ case ELTORITO_12_DISKETTE:\r
+ SectorCount = 0x50 * 0x02 * 0x0F;\r
+ break;\r
+\r
+ case ELTORITO_14_DISKETTE:\r
+ SectorCount = 0x50 * 0x02 * 0x12;\r
+ break;\r
+\r
+ case ELTORITO_28_DISKETTE:\r
+ SectorCount = 0x50 * 0x02 * 0x24;\r
+ break;\r
+\r
+ default:\r
+ SectorCount = 0;\r
+ SubBlockSize = ParentBlockDev->BlockSize;\r
+ break;\r
}\r
\r
if (SectorCount < 2) {\r
- SectorCount = (VolSpaceSize > ParentBlockDev->LastBlock + 1) ? (UINT32) (ParentBlockDev->LastBlock - Catalog->Boot.Lba + 1) : (UINT32) (VolSpaceSize - Catalog->Boot.Lba);\r
+ SectorCount = (VolSpaceSize > ParentBlockDev->LastBlock + 1) ? (UINT32)(ParentBlockDev->LastBlock - Catalog->Boot.Lba + 1) : (UINT32)(VolSpaceSize - Catalog->Boot.Lba);\r
}\r
+\r
//\r
// Register this partition\r
//\r
if (PrivateData->BlockDeviceCount < PEI_FAT_MAX_BLOCK_DEVICE) {\r
+ Found = TRUE;\r
\r
- Found = TRUE;\r
-\r
- BlockDev = &(PrivateData->BlockDevice[PrivateData->BlockDeviceCount]);\r
+ BlockDev = &(PrivateData->BlockDevice[PrivateData->BlockDeviceCount]);\r
\r
- BlockDev->BlockSize = SubBlockSize;\r
- BlockDev->LastBlock = SectorCount - 1;\r
- BlockDev->IoAlign = ParentBlockDev->IoAlign;\r
- BlockDev->Logical = TRUE;\r
- BlockDev->PartitionChecked = FALSE;\r
- BlockDev->StartingPos = MultU64x32 (Catalog->Boot.Lba, ParentBlockDev->BlockSize);\r
- BlockDev->ParentDevNo = ParentBlockDevNo;\r
+ BlockDev->BlockSize = SubBlockSize;\r
+ BlockDev->LastBlock = SectorCount - 1;\r
+ BlockDev->IoAlign = ParentBlockDev->IoAlign;\r
+ BlockDev->Logical = TRUE;\r
+ BlockDev->PartitionChecked = FALSE;\r
+ BlockDev->StartingPos = MultU64x32 (Catalog->Boot.Lba, ParentBlockDev->BlockSize);\r
+ BlockDev->ParentDevNo = ParentBlockDevNo;\r
\r
PrivateData->BlockDeviceCount++;\r
}\r
ParentBlockDev->PartitionChecked = TRUE;\r
\r
return Found;\r
-\r
}\r