From f49c14a197251128fa882d7daaef0d5d95891fdc Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 23 Oct 2003 08:54:00 +0000 Subject: [PATCH] * fhandler_proc.cc (format_proc_partitions): Use new device code to get major and minor device numbers. Fix size evaluation. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/fhandler_proc.cc | 30 +++++++++++++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 4dd246e1d..a0db4f494 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-10-23 Corinna Vinschen + + * fhandler_proc.cc (format_proc_partitions): Use new device code + to get major and minor device numbers. Fix size evaluation. + 2003-10-22 Corinna Vinschen * external.cc (cygwin_internal): Add CW_GET_ERRNO_FROM_WINERROR 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); } } -- 2.43.5