All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mkdevicemap for Cygwin
@ 2007-11-13 20:42 Christian Franke
  2007-11-18  6:24 ` Robert Millan
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Christian Franke @ 2007-11-13 20:42 UTC (permalink / raw)
  To: grub-devel

[-- Attachment #1: Type: text/plain, Size: 481 bytes --]

Some changes for grub-mkdevicemap on Cygwin.

Christian

2007-11-13  Christian Franke  <franke@computer.org>

	* util/grub-mkdevicemap.c (get_floppy_disk_name): Add Cygwin
	device names.
	(get_ide_disk_name): Disable on __CYGWIN__.
	(get_scsi_disk_name): Add Cygwin device names.
	(check_device): Add static.
	Return error instead of success on empty string.
	(make_device_map): Disable IDE loop on __CYGWIN__.
	Move label inside linux specific code to prevent compiler warning.



[-- Attachment #2: grub2-mkdevicemap-Cygwin.patch --]
[-- Type: text/x-patch, Size: 2243 bytes --]

--- grub2.orig/util/grub-mkdevicemap.c	2007-08-28 12:18:10.000000000 +0200
+++ grub2/util/grub-mkdevicemap.c	2007-11-13 21:27:18.265625000 +0100
@@ -166,6 +166,9 @@ get_floppy_disk_name (char *name, int un
 #elif defined(__QNXNTO__)
   /* QNX RTP */
   sprintf (name, "/dev/fd%d", unit);
+#elif defined(__CYGWIN__)
+  /* Cygwin */
+  sprintf (name, "/dev/fd%d", unit);
 #else
 # warning "BIOS floppy drives cannot be guessed in your operating system."
   /* Set NAME to a bogus string.  */
@@ -173,6 +176,7 @@ get_floppy_disk_name (char *name, int un
 #endif
 }
 
+#ifndef __CYGWIN__
 static void
 get_ide_disk_name (char *name, int unit)
 {
@@ -213,6 +217,7 @@ get_ide_disk_name (char *name, int unit)
   *name = 0;
 #endif
 }
+#endif /* __CYGWIN__ */
 
 static void
 get_scsi_disk_name (char *name, int unit)
@@ -248,6 +253,9 @@ get_scsi_disk_name (char *name, int unit
   /* QNX RTP doesn't distinguish SCSI from IDE, so it is better to
      disable the detection of SCSI disks here.  */
   *name = 0;
+#elif defined(__CYGWIN__)
+  /* Cygwin emulates all disks as /dev/sdX.  */
+  sprintf (name, "/dev/sd%c", unit + 'a');
 #else
 # warning "BIOS SCSI drives cannot be guessed in your operating system."
   /* Set NAME to a bogus string.  */
@@ -277,16 +285,16 @@ get_i2o_disk_name (char *name, char unit
 
 /* Check if DEVICE can be read. If an error occurs, return zero,
    otherwise return non-zero.  */
-int
+static int
 check_device (const char *device)
 {
   char buf[512];
   FILE *fp;
 
-  /* If DEVICE is empty, just return 1.  */
+  /* If DEVICE is empty, just return error.  */
   if (*device == 0)
-    return 1;
-  
+    return 0;
+ 
   fp = fopen (device, "r");
   if (! fp)
     {
@@ -415,7 +423,8 @@ make_device_map (const char *device_map,
       goto finish;
     }
 #endif /* __linux__ */
-    
+
+#ifndef __CYGWIN__    
   /* IDE disks.  */
   for (i = 0; i < 8; i++)
     {
@@ -431,6 +440,7 @@ make_device_map (const char *device_map,
 	  num_hd++;
 	}
     }
+#endif /* __CYGWIN__ */
   
 #ifdef __linux__
   /* ATARAID disks.  */
@@ -513,9 +523,10 @@ make_device_map (const char *device_map,
 	  }
       }
   }
-#endif /* __linux__ */
 
  finish:
+#endif /* __linux__ */
+
   if (fp != stdout)
     fclose (fp);
 }

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-05-05 21:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-13 20:42 [PATCH] mkdevicemap for Cygwin Christian Franke
2007-11-18  6:24 ` Robert Millan
2007-11-18 18:40   ` Christian Franke
2007-11-18 11:30 ` Marco Gerards
2007-11-18 18:46   ` Christian Franke
2007-12-06 12:15 ` Robert Millan
2007-12-06 13:08   ` Christian Franke
2007-12-28 15:43   ` Christian Franke
2008-01-23 11:40     ` Marco Gerards
2008-01-23 11:45       ` Robert Millan
2008-01-23 12:22         ` Marco Gerards
2008-01-23 20:40           ` Christian Franke
2008-04-24 20:06             ` Marco Gerards
2008-05-05 21:26               ` Christian Franke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.