Author: cgutman Date: Fri Jun 4 22:36:48 2010 New Revision: 47577
URL: http://svn.reactos.org/svn/reactos?rev=47577&view=rev Log: [FREELOADER] - Use the old method for identifying the drive type (based on partition number) which actually works for floppies now because I changed the DrivePartition value returned (floppy = 0, cdrom = 0xFF) in a previous commit - Fixes bug 5233
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c [iso-8859-1] Fri Jun 4 22:36:48 2010 @@ -433,41 +433,22 @@ ULONGLONG SectorOffset = 0; ULONGLONG SectorCount = 0; PARTITION_TABLE_ENTRY PartitionTableEntry; - GEOMETRY Geometry; - EXTENDED_GEOMETRY ExtGeometry; CHAR FileName[1];
if (!DissectArcPath(Path, FileName, &DriveNumber, &DrivePartition)) return EINVAL;
- ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY); - if (DiskGetExtendedDriveParameters(DriveNumber, &ExtGeometry, ExtGeometry.Size)) - { - SectorSize = ExtGeometry.BytesPerSector; - SectorCount = ExtGeometry.Sectors; - } - else if (MachDiskGetDriveGeometry(DriveNumber, &Geometry)) - { - SectorSize = Geometry.BytesPerSector; - SectorCount = Geometry.Sectors; + if (DrivePartition == 0xff) + { + /* This is a CD-ROM device */ + SectorSize = 2048; } else { - DPRINTM(DPRINT_HWDETECT, "Using legacy sector size detection\n"); - - /* Fall back to legacy detection */ - if (DrivePartition == 0xff) - { - /* This is a CD-ROM device */ - SectorSize = 2048; - } - else - { - /* This is either a floppy disk device (DrivePartition == 0) or - * a hard disk device (DrivePartition != 0 && DrivePartition != 0xFF) but - * it doesn't matter which one because they both have 512 bytes per sector */ - SectorSize = 512; - } + /* This is either a floppy disk device (DrivePartition == 0) or + * a hard disk device (DrivePartition != 0 && DrivePartition != 0xFF) but + * it doesn't matter which one because they both have 512 bytes per sector */ + SectorSize = 512; }
if (DrivePartition != 0xff && DrivePartition != 0)