]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-04-11 Felix Zielcke <fzielcke@z-51.de>
authorfzielcke <fzielcke@localhost>
Sat, 11 Apr 2009 18:46:12 +0000 (18:46 +0000)
committerfzielcke <fzielcke@localhost>
Sat, 11 Apr 2009 18:46:12 +0000 (18:46 +0000)
* util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
(grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
GNU/kFreeBSD. Check if a device is a character device. Use
DIOCGMEDIASIZE to get the size.
(convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
support for GNU/kFreeBSD.
(grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
is a character device instead of a block device. Add support for
FreeBSD device names.

* util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
is a character device instead of a block device.

* util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
is a character device instead of a block device.

ChangeLog
util/getroot.c
util/grub-probe.c
util/hostdisk.c

index 6dd046f893b5f45cd6f336161097868d290d11df..384e2b0e54bae39d5c466331f22f65aabfb65676 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2009-04-11  Felix Zielcke  <fzielcke@z-51.de>
+
+       * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
+       (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
+       GNU/kFreeBSD. Check if a device is a character device. Use
+       DIOCGMEDIASIZE to get the size.
+       (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
+       support for GNU/kFreeBSD.
+       (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
+       is a character device instead of a block device. Add support for
+       FreeBSD device names.
+
+       * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
+       is a character device instead of a block device.
+
+       * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
+       is a character device instead of a block device.
+
 2009-04-11  Andrey Shuvikov  <mr_hyro@yahoo.com>
 
        * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
index daed9124a2666036c62c964a51aea165cd365c50..68e1fad581489ba8ccc466e54462e8a9414b298c 100644 (file)
@@ -238,7 +238,7 @@ find_root_device (const char *dir, dev_t dev)
            }
        }
 
-#ifdef __FreeBSD__ 
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
       if (S_ISCHR (st.st_mode) && st.st_rdev == dev)
 #else
       if (S_ISBLK (st.st_mode) && st.st_rdev == dev)
index 194c62bb766d02b61c16cd96820670071edffbbd..bdb9159641737fe16523d422fdc2fb617632409b 100644 (file)
@@ -112,7 +112,7 @@ probe (const char *path, char *device_name)
   
   if (path == NULL)
     {
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
       if (! grub_util_check_char_device (device_name))
         grub_util_error ("%s is not a character device.\n", device_name);
 #else
index 001777e8e4ad934e5f20430ef2ca73ce4582d636..2ef2057860e8b14ebd1b9b5c429d85b37ca55e62 100644 (file)
@@ -86,7 +86,7 @@ struct hd_geometry
 # define FLOPPY_MAJOR  2
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 # include <sys/disk.h> /* DIOCGMEDIASIZE */
 #endif
 
@@ -183,7 +183,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk)
 
     return GRUB_ERR_NONE;
   }
-#elif defined(__linux__) || defined(__CYGWIN__) || defined(__FreeBSD__)
+#elif defined(__linux__) || defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   {
     unsigned long long nr;
     int fd;
@@ -192,7 +192,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk)
     if (fd == -1)
       return grub_error (GRUB_ERR_BAD_DEVICE, "cannot open `%s' while attempting to get disk size", map[drive].device);
 
-# if defined(__FreeBSD__)
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
     if (fstat (fd, &st) < 0 || ! S_ISCHR (st.st_mode))
 # else
     if (fstat (fd, &st) < 0 || ! S_ISBLK (st.st_mode))
@@ -202,7 +202,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk)
        goto fail;
       }
     
-# if defined(__FreeBSD__)
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
     if (ioctl (fd, DIOCGMEDIASIZE, &nr))
 # else
     if (ioctl (fd, BLKGETSIZE64, &nr))
@@ -758,7 +758,7 @@ convert_system_partition_to_system_disk (const char *os_dev)
     path[8] = 0;
   return path;
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   char *path = xstrdup (os_dev);
   if (strncmp ("/dev/", path, 5) == 0)
     {
@@ -821,7 +821,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev)
       return 0;
     }
   
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   if (! S_ISCHR (st.st_mode))
 #else
   if (! S_ISBLK (st.st_mode))
@@ -970,7 +970,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev)
     return make_device_name (drive, dos_part, bsd_part);
   }
   
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   /* FreeBSD uses "/dev/[a-z]+[0-9]+(s[0-9]+[a-z]?)?".  */
   {
     int dos_part = -1;