diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2003-10-23 08:54:00 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2003-10-23 08:54:00 +0000 |
commit | f49c14a197251128fa882d7daaef0d5d95891fdc (patch) | |
tree | d002861f48bfe55b4686fccc30e080940e121d5e /winsup/cygwin/fhandler_proc.cc | |
parent | a3f95116e3ef9677e8e8db7112f6b28827a15b1f (diff) | |
download | cygnal-f49c14a197251128fa882d7daaef0d5d95891fdc.tar.gz cygnal-f49c14a197251128fa882d7daaef0d5d95891fdc.tar.bz2 cygnal-f49c14a197251128fa882d7daaef0d5d95891fdc.zip |
* 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.cc | 30 |
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); } } |