diff --git a/ChangeLog b/ChangeLog index ec4e1d67f..fe5ad4021 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-09-24 Vladimir Serbinenko + + * include/grub/emu/hostdisk.h (GRUB_FD_STAT_IS_FUNTIONAL): New define. + Migrate all explicit defines to this new one. + 2013-09-24 Vladimir Serbinenko * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_open): Use diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c index c1bd25619..a29eb5f3a 100644 --- a/grub-core/kern/emu/hostdisk.c +++ b/grub-core/kern/emu/hostdisk.c @@ -161,7 +161,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk) &disk->log_sector_size); disk->total_sectors >>= disk->log_sector_size; -#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined (__AROS__) +#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL { struct stat st; # if GRUB_DISK_DEVS_ARE_CHAR diff --git a/include/grub/emu/hostdisk.h b/include/grub/emu/hostdisk.h index ab438667a..4d6b63421 100644 --- a/include/grub/emu/hostdisk.h +++ b/include/grub/emu/hostdisk.h @@ -29,10 +29,12 @@ typedef HANDLE grub_util_fd_t; #define GRUB_UTIL_FD_INVALID INVALID_HANDLE_VALUE #define GRUB_UTIL_FD_IS_VALID(x) ((x) != GRUB_UTIL_FD_INVALID) +#define GRUB_UTIL_FD_STAT_IS_FUNCTIONAL 0 #else typedef int grub_util_fd_t; #define GRUB_UTIL_FD_INVALID -1 #define GRUB_UTIL_FD_IS_VALID(x) ((x) >= 0) +#define GRUB_UTIL_FD_STAT_IS_FUNCTIONAL 1 #endif grub_util_fd_t diff --git a/util/getroot.c b/util/getroot.c index a165fdc0b..9e852a681 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -215,7 +215,7 @@ grub_util_get_os_disk (const char *os_dev) grub_util_info ("Looking for %s", os_dev); -#if !defined (__MINGW32__) && !defined (__CYGWIN__) +#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL struct stat st; if (stat (os_dev, &st) < 0) @@ -266,7 +266,7 @@ find_partition (grub_disk_t dsk __attribute__ ((unused)), char * grub_util_biosdisk_get_grub_dev (const char *os_dev) { -#if !defined (__MINGW32__) && !defined (__CYGWIN__) +#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL struct stat st; #endif const char *drive; @@ -275,7 +275,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev) grub_util_info ("Looking for %s", os_dev); -#if !defined (__MINGW32__) && !defined (__CYGWIN__) +#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL if (stat (os_dev, &st) < 0) { const char *errstr = strerror (errno); @@ -415,7 +415,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev) grub_errno = GRUB_ERR_NONE; canon = canonicalize_file_name (os_dev); -#if !defined (__MINGW32__) && !defined (__CYGWIN__) +#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL drive = find_system_device (canon ? : os_dev, &st, 0, 1); #else drive = find_system_device (canon ? : os_dev, NULL, 0, 1); @@ -462,7 +462,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev) int grub_util_biosdisk_is_present (const char *os_dev) { -#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__AROS__) +#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL struct stat st; if (stat (os_dev, &st) < 0)