- // Create patition array
- gATA_Disks[Disk].Partitions = malloc( gATA_Disks[Disk].NumPartitions * sizeof(tATA_Partition) );
+ // Handle extended partions
+ while(extendedLBA != 0)
+ {
+ extendedLBA = LVM_MBR_int_ReadExt(Volume, extendedLBA, &base, &len);
+ if( extendedLBA == (Uint64)-1 )
+ break;
+ numPartitions ++;
+ }
+ LOG("numPartitions = %i", numPartitions);
+
+ LEAVE('i', numPartitions);
+ return numPartitions;
+}
+
+void LVM_MBR_PopulateSubvolumes(tLVM_Vol *Volume, void *FirstSector)
+{
+ Uint64 extendedLBA;
+ Uint64 base, len;
+ int i, j;
+ tMBR *MBR = FirstSector;
+
+ ENTER("pVolume pFirstSector", Volume, FirstSector);