2011-06-16 Robert Millan <rmh@gnu.org>
Detect `ataraid' devices on GNU/kFreeBSD. Fix for ATA devices using `ata' driver on kernel of FreeBSD 9. * util/deviceiter.c [__FreeBSD_kernel__] (get_ada_disk_name) (get_ataraid_disk_name): New functions. [__FreeBSD_kernel__] (grub_util_iterate_devices): Scan for ataraid (/dev/ar[0-9]+) and ada (/dev/ada[0-9]+) devices using get_ataraid_disk_name() and get_ada_disk_name().
This commit is contained in:
parent
1e9aef7d96
commit
881ac815d0
2 changed files with 55 additions and 1 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2011-06-16 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
|
Detect `ataraid' devices on GNU/kFreeBSD. Fix for ATA devices using
|
||||||
|
`ata' driver on kernel of FreeBSD 9.
|
||||||
|
|
||||||
|
* util/deviceiter.c [__FreeBSD_kernel__] (get_ada_disk_name)
|
||||||
|
(get_ataraid_disk_name): New functions.
|
||||||
|
[__FreeBSD_kernel__] (grub_util_iterate_devices): Scan for ataraid
|
||||||
|
(/dev/ar[0-9]+) and ada (/dev/ada[0-9]+) devices using
|
||||||
|
get_ataraid_disk_name() and get_ada_disk_name().
|
||||||
|
|
||||||
2011-06-13 Colin Watson <cjwatson@ubuntu.com>
|
2011-06-13 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
* docs/man/grub-mklayout.h2m (DESCRIPTION): Add a reference to the
|
* docs/man/grub-mklayout.h2m (DESCRIPTION): Add a reference to the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* deviceiter.c - iterate over system devices */
|
/* deviceiter.c - iterate over system devices */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* GRUB -- GRand Unified Bootloader
|
||||||
* Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008 Free Software Foundation, Inc.
|
* Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2011 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* GRUB is free software: you can redistribute it and/or modify
|
* GRUB is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -286,6 +286,20 @@ get_scsi_disk_name (char *name, int unit)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __FreeBSD_kernel__
|
||||||
|
static void
|
||||||
|
get_ada_disk_name (char *name, int unit)
|
||||||
|
{
|
||||||
|
sprintf (name, "/dev/ada%d", unit);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
get_ataraid_disk_name (char *name, int unit)
|
||||||
|
{
|
||||||
|
sprintf (name, "/dev/ar%d", unit);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
static void
|
static void
|
||||||
get_virtio_disk_name (char *name, int unit)
|
get_virtio_disk_name (char *name, int unit)
|
||||||
|
@ -620,6 +634,35 @@ grub_util_iterate_devices (int NESTED_FUNC_ATTR (*hook) (const char *, int),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __FreeBSD_kernel__
|
||||||
|
/* IDE disks using ATA Direct Access driver. */
|
||||||
|
if (get_kfreebsd_version () >= 800000)
|
||||||
|
for (i = 0; i < 96; i++)
|
||||||
|
{
|
||||||
|
char name[16];
|
||||||
|
|
||||||
|
get_ada_disk_name (name, i);
|
||||||
|
if (check_device_readable_unique (name))
|
||||||
|
{
|
||||||
|
if (hook (name, 0))
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ATARAID disks. */
|
||||||
|
for (i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
char name[20];
|
||||||
|
|
||||||
|
get_ataraid_disk_name (name, i);
|
||||||
|
if (check_device_readable_unique (name))
|
||||||
|
{
|
||||||
|
if (hook (name, 0))
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
/* Virtio disks. */
|
/* Virtio disks. */
|
||||||
for (i = 0; i < 26; i++)
|
for (i = 0; i < 26; i++)
|
||||||
|
|
Loading…
Reference in a new issue