[2453] 2009-07-29 Felix Zielcke <[email protected]>

Felix Zielcke <[email protected]> Wed, 29 Jul 2009 14:11:50 +0000
Newsgroups gmane.comp.boot-loaders.grub.cvs
Message-ID <[email protected]>
Revision: 2453
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2453
Author:   fzielcke
Date:     2009-07-29 14:11:50 +0000 (Wed, 29 Jul 2009)
Log Message:
-----------
2009-07-29  Felix Zielcke  <[email protected]>

	* util/deviceiter.c (get_acceleraid_disk_name): New static
	function.
	(grub_util_iterate_devices): Handle Accelraid devices.
	* util/hostdisk.c (convert_system_partition_to_system_disk): Likewise.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/util/deviceiter.c
    trunk/grub2/util/hostdisk.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog	2009-07-28 21:40:34 UTC (rev 2452)
+++ trunk/grub2/ChangeLog	2009-07-29 14:11:50 UTC (rev 2453)
@@ -1,3 +1,10 @@
+2009-07-29  Felix Zielcke  <[email protected]>
+
+	* util/deviceiter.c (get_acceleraid_disk_name): New static
+	function.
+	(grub_util_iterate_devices): Handle Accelraid devices.
+	* util/hostdisk.c (convert_system_partition_to_system_disk): Likewise.
+
 2009-07-28  Robert Millan  <[email protected]>
 
 	* loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as

Modified: trunk/grub2/util/deviceiter.c
===================================================================
--- trunk/grub2/util/deviceiter.c	2009-07-28 21:40:34 UTC (rev 2452)
+++ trunk/grub2/util/deviceiter.c	2009-07-29 14:11:50 UTC (rev 2453)
@@ -289,6 +289,12 @@
 }
 
 static void
+get_acceleraid_disk_name (char *name, int controller, int drive)
+{
+  sprintf (name, "/dev/rs/c%dd%d", controller, drive);
+}
+
+static void
 get_ataraid_disk_name (char *name, int unit)
 {
   sprintf (name, "/dev/ataraid/d%c", unit + '0');
@@ -545,6 +551,27 @@
       }
   }
 
+  /* This is for Mylex Acceleraid - we have
+     /dev/rd/c<controller>d<logical drive>p<partition>.  */
+  {
+    int controller, drive;
+
+    for (controller = 0; controller < 8; controller++)
+      {
+	for (drive = 0; drive < 15; drive++)
+	  {
+	    char name[24];
+
+	    get_acceleraid_disk_name (name, controller, drive);
+	    if (check_device (name))
+	      {
+		if (hook (name, 0))
+		  return;
+	      }
+	  }
+      }
+  }
+
   /* This is for CCISS - we have
      /dev/cciss/c<controller>d<logical drive>p<partition>.  */
   {

Modified: trunk/grub2/util/hostdisk.c
===================================================================
--- trunk/grub2/util/hostdisk.c	2009-07-28 21:40:34 UTC (rev 2452)
+++ trunk/grub2/util/hostdisk.c	2009-07-29 14:11:50 UTC (rev 2453)
@@ -743,6 +743,16 @@
 	  return path;
 	}
 
+      /* If this is a Mylex AcceleRAID Array.  */
+      if (strncmp ("rs/c", p, 4) == 0)
+	{
+	  /* /dev/rd/c[0-9]+d[0-9]+(p[0-9]+)? */
+	  p = strchr (p, 'p');
+	  if (p)
+	    *p = '\0';
+
+	  return path;
+	}
       /* If this is a CCISS disk.  */
       if (strncmp ("cciss/c", p, sizeof ("cciss/c") - 1) == 0)
 	{