Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-10-23 12:54:00 +0400
committerCorinna Vinschen <corinna@vinschen.de>2003-10-23 12:54:00 +0400
commitf49c14a197251128fa882d7daaef0d5d95891fdc (patch)
treed002861f48bfe55b4686fccc30e080940e121d5e /winsup/cygwin/fhandler_proc.cc
parenta3f95116e3ef9677e8e8db7112f6b28827a15b1f (diff)
* fhandler_proc.cc (format_proc_partitions): Use new device code
to get major and minor device numbers. Fix size evaluation.
Diffstat (limited to 'winsup/cygwin/fhandler_proc.cc')
-rw-r--r--winsup/cygwin/fhandler_proc.cc30
1 files changed, 19 insertions, 11 deletions
diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc
index 42bd8e16e..d1fc273e7 100644
--- a/winsup/cygwin/fhandler_proc.cc
+++ b/winsup/cygwin/fhandler_proc.cc
@@ -898,12 +898,16 @@ format_proc_partitions (char *destbuf, size_t maxsize)
debug_printf ("DeviceIoControl %E");
else
{
- bufptr += __small_sprintf (bufptr, "%5d %5d %9U sd%c\n",
- FH_FLOPPY,
- drive_number * 16 + 32,
+ char devname[16];
+ __small_sprintf (devname, "/dev/sd%c", drive_number + 'a');
+ device dev;
+ dev.parse (devname);
+ bufptr += __small_sprintf (bufptr, "%5d %5d %9U %s\n",
+ dev.major,
+ dev.minor,
(long long)((dg.Cylinders.QuadPart * dg.TracksPerCylinder *
- dg.SectorsPerTrack * dg.BytesPerSector) >> 6),
- drive_number + 'a');
+ dg.SectorsPerTrack * dg.BytesPerSector) >> 10),
+ devname + 5);
}
while (dwRetCode = DeviceIoControl (hDevice,
IOCTL_DISK_GET_DRIVE_LAYOUT,
@@ -924,12 +928,16 @@ format_proc_partitions (char *destbuf, size_t maxsize)
{
if (dli->PartitionEntry[partition].PartitionLength.QuadPart == 0)
continue;
- bufptr += __small_sprintf (bufptr, "%5d %5d %9U sd%c%d\n",
- FH_FLOPPY,
- drive_number * 16 + partition + 33,
- (long long)(dli->PartitionEntry[partition].PartitionLength.QuadPart >> 6),
- drive_number + 'a',
- partition + 1);
+ char devname[16];
+ __small_sprintf (devname, "/dev/sd%c%d",
+ drive_number + 'a',
+ partition + 1);
+ device dev;
+ dev.parse (devname);
+ bufptr += __small_sprintf (bufptr, "%5d %5d %9U %s\n",
+ dev.major, dev.minor,
+ (long long)(dli->PartitionEntry[partition].PartitionLength.QuadPart >> 10),
+ devname + 5);
}
}