)
{
if( MBR->Parts[i].SystemID == 0xF || MBR->Parts[i].SystemID == 5 ) {
- LOG("Extended Partition");
+ LOG("Extended Partition at 0x%llx", MBR->Parts[i].LBAStart);
if(extendedLBA != 0) {
Warning("Disk %i has multiple extended partitions, ignoring rest", Disk);
continue;
extendedLBA = MBR->Parts[i].LBAStart;
continue;
}
- LOG("Primary Partition");
+ LOG("Primary Partition at 0x%llx", MBR->Parts[i].LBAStart);
gATA_Disks[Disk].NumPartitions ++;
continue;
while(extendedLBA != 0)
{
extendedLBA = ATA_MBR_int_ReadExt(Disk, extendedLBA, &base, &len);
- if( extendedLBA == -1 ) return ;
+ if( extendedLBA == -1 ) break;
gATA_Disks[Disk].NumPartitions ++;
}
LOG("gATA_Disks[Disk].NumPartitions = %i", gATA_Disks[Disk].NumPartitions);
while(extendedLBA != 0)
{
extendedLBA = ATA_MBR_int_ReadExt(Disk, extendedLBA, &base, &len);
+ if(extendedLBA == -1) break;
ATA_int_MakePartition(
&gATA_Disks[Disk].Partitions[j], Disk, k, base, len
);
if( ATA_ReadDMA( Disk, Addr, 1, &mbr ) != 0 )
return -1; // Stop on Errors
-
for( i = 0; i < 4; i ++ )
{
if( mbr.Parts[i].SystemID == 0 ) continue;
len = (mbr.Parts[i].LengthHi << 16) | mbr.Parts[i].LBALength;
}
else {
- Warning("Unknown partition type, Disk %i 0x%llx Part %i",
- Disk, Addr, i);
+ Log_Warning("ATA MBR",
+ "Unknown partition type 0x%x, Disk %i Ext 0x%llx Part %i",
+ mbr.Parts[i].Boot, Disk, Addr, i
+ );
return -1;
}
case 0xF:
case 0x5:
if(link != 0) {
- Warning("Disk %i has two forward links in the extended partition",
- Disk);
+ Log_Warning("ATA MBR",
+ "Disk %i has two forward links in the extended partition",
+ Disk
+ );
return -1;
}
link = base;
break;
default:
if(bFoundPart) {
- Warning("Disk %i has more than one partition in the extended partition at 0x%llx",
- Disk, Addr);
+ Warning("ATA MBR",
+ "Disk %i has more than one partition in the extended partition at 0x%llx",
+ Disk, Addr
+ );
return -1;
}
bFoundPart = 1;
}
if(!bFoundPart) {
- Warning("No partition in extended partiton, Disk %i 0x%llx",
+ Log_Warning("ATA MBR",
+ "No partition in extended partiton, Disk %i 0x%llx",
Disk, Addr);
return -1;
}