Some changes for grub-mkdevicemap on Cygwin. Christian
2007-11-13 Christian Franke <[EMAIL PROTECTED]> * 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.
--- 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); }
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel