]> sourceware.org Git - newlib-cygwin.git/commitdiff
* fhandler_proc.cc (format_proc_partitions): Use new device code
authorCorinna Vinschen <corinna@vinschen.de>
Thu, 23 Oct 2003 08:54:00 +0000 (08:54 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Thu, 23 Oct 2003 08:54:00 +0000 (08:54 +0000)
to get major and minor device numbers.  Fix size evaluation.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_proc.cc

index 4dd246e1d5a346c42ae91f66b23e0f8b9edc4b1d..a0db4f4941571b460f7400a93adf8fccaf213adc 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-23  Corinna Vinschen  <corinna@vinschen.de>
+
+       * 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  <corinna@vinschen.de>
 
        * external.cc (cygwin_internal): Add CW_GET_ERRNO_FROM_WINERROR
index 42bd8e16ebd0acbba2703e245e6e52b11b1f8c64..d1fc273e7a6506a55d2ac67ee76636ba33637dce 100644 (file)
@@ -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);
                    }
                }
 
This page took 0.039717 seconds and 5 git commands to generate.