2009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
* util/hostdisk.c [__FreeBSD__]: Include sys/disk.h. (grub_util_biosdisk_open) [__FreeBSD__]: Add support for FreeBSD. Check if a device is a character device. Use DIOCGMEDIASIZE to get the size. (convert_system_partition_to_system_disk) [__FreeBSD__]: Add support for FreeBSD. (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: 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__]: Check if ENT is a character device instead of a block device. (grub_util_check_char_device): New function. * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is a character device instead of a block device. * include/grub/util/getroot.h (grub_util_check_char_device): New prototype.
This commit is contained in:
parent
0f005da92a
commit
b1ac86445e
6 changed files with 163 additions and 12 deletions
|
@ -1,7 +1,7 @@
|
|||
/* grub-probe.c - probe device information for a given path */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2005,2006,2007,2008 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2005,2006,2007,2008,2009 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -112,8 +112,13 @@ probe (const char *path, char *device_name)
|
|||
|
||||
if (path == NULL)
|
||||
{
|
||||
#if defined(__FreeBSD__)
|
||||
if (! grub_util_check_char_device (device_name))
|
||||
grub_util_error ("%s is not a character device.\n", device_name);
|
||||
#else
|
||||
if (! grub_util_check_block_device (device_name))
|
||||
grub_util_error ("%s is not a block device.\n", device_name);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
device_name = grub_guess_root_device (path);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue