* fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Fix floppy
drive handling broken with 1.7.19.
This commit is contained in:
parent
51a895f86d
commit
3da259f729
@ -1,3 +1,8 @@
|
|||||||
|
2014-05-20 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Fix floppy
|
||||||
|
drive handling broken with 1.7.19.
|
||||||
|
|
||||||
2014-05-20 Corinna Vinschen <corinna@vinschen.de>
|
2014-05-20 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* scandir.cc (scandir): Assume namelist is always valid, per POSIX.
|
* scandir.cc (scandir): Assume namelist is always valid, per POSIX.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
fhandler classes.
|
fhandler classes.
|
||||||
|
|
||||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||||
2011, 2012, 2013 Red Hat, Inc.
|
2011, 2012, 2013, 2014 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
@ -63,12 +63,6 @@ fhandler_dev_floppy::get_drive_info (struct hd_geometry *geo)
|
|||||||
{
|
{
|
||||||
dix = (DISK_GEOMETRY_EX *) dbuf;
|
dix = (DISK_GEOMETRY_EX *) dbuf;
|
||||||
di = &dix->Geometry;
|
di = &dix->Geometry;
|
||||||
if (!DeviceIoControl (get_handle (),
|
|
||||||
IOCTL_DISK_GET_PARTITION_INFO_EX, NULL, 0,
|
|
||||||
pbuf, 256, &bytes_read, NULL))
|
|
||||||
__seterrno ();
|
|
||||||
else
|
|
||||||
pix = (PARTITION_INFORMATION_EX *) pbuf;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!di)
|
if (!di)
|
||||||
@ -81,6 +75,23 @@ fhandler_dev_floppy::get_drive_info (struct hd_geometry *geo)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
di = (DISK_GEOMETRY *) dbuf;
|
di = (DISK_GEOMETRY *) dbuf;
|
||||||
|
}
|
||||||
|
if (dix) /* Don't try IOCTL_DISK_GET_PARTITION_INFO_EX if
|
||||||
|
IOCTL_DISK_GET_DRIVE_GEOMETRY_EX didn't work.
|
||||||
|
Probably a floppy.*/
|
||||||
|
{
|
||||||
|
if (!DeviceIoControl (get_handle (),
|
||||||
|
IOCTL_DISK_GET_PARTITION_INFO_EX, NULL, 0,
|
||||||
|
pbuf, 256, &bytes_read, NULL))
|
||||||
|
__seterrno ();
|
||||||
|
else
|
||||||
|
pix = (PARTITION_INFORMATION_EX *) pbuf;
|
||||||
|
}
|
||||||
|
if (!pix && get_major () != DEV_FLOPPY_MAJOR)
|
||||||
|
{
|
||||||
|
/* It's unlikely that this code path will be used at all. Either the
|
||||||
|
_EX call already worked, or it's a floppy. But it doesn't hurt to
|
||||||
|
keep the code in. */
|
||||||
if (!DeviceIoControl (get_handle (),
|
if (!DeviceIoControl (get_handle (),
|
||||||
IOCTL_DISK_GET_PARTITION_INFO, NULL, 0,
|
IOCTL_DISK_GET_PARTITION_INFO, NULL, 0,
|
||||||
pbuf, 256, &bytes_read, NULL))
|
pbuf, 256, &bytes_read, NULL))
|
||||||
@ -101,13 +112,16 @@ fhandler_dev_floppy::get_drive_info (struct hd_geometry *geo)
|
|||||||
pix->PartitionLength.QuadPart);
|
pix->PartitionLength.QuadPart);
|
||||||
drive_size = pix->PartitionLength.QuadPart;
|
drive_size = pix->PartitionLength.QuadPart;
|
||||||
}
|
}
|
||||||
else
|
else if (pi)
|
||||||
{
|
{
|
||||||
debug_printf ("partition info: offset %D length %D",
|
debug_printf ("partition info: offset %D length %D",
|
||||||
pi->StartingOffset.QuadPart,
|
pi->StartingOffset.QuadPart,
|
||||||
pi->PartitionLength.QuadPart);
|
pi->PartitionLength.QuadPart);
|
||||||
drive_size = pi->PartitionLength.QuadPart;
|
drive_size = pi->PartitionLength.QuadPart;
|
||||||
}
|
}
|
||||||
|
else /* Floppy drive. */
|
||||||
|
drive_size = di->Cylinders.QuadPart * di->TracksPerCylinder
|
||||||
|
* di->SectorsPerTrack * di->BytesPerSector;
|
||||||
if (geo)
|
if (geo)
|
||||||
{
|
{
|
||||||
geo->heads = di->TracksPerCylinder;
|
geo->heads = di->TracksPerCylinder;
|
||||||
|
@ -36,3 +36,6 @@ Bug Fixes
|
|||||||
|
|
||||||
- Ignore trailing whitespace on #! scripts.
|
- Ignore trailing whitespace on #! scripts.
|
||||||
Addresses: https://cygwin.com/ml/cygwin/2014-05/msg00022.html
|
Addresses: https://cygwin.com/ml/cygwin/2014-05/msg00022.html
|
||||||
|
|
||||||
|
- Fix raw floppy drive handling broken since 1.7.19.
|
||||||
|
Addresses: https://cygwin.com/ml/cygwin/2014-05/msg00401.html
|
||||||
|
Loading…
x
Reference in New Issue
Block a user