diff -Nur grub2/conf/i386-efi.rmk grub2.new/conf/i386-efi.rmk
--- grub2/conf/i386-efi.rmk 2007-07-22 11:32:51.000000000 +0200
+++ grub2.new/conf/i386-efi.rmk 2007-07-22 11:32:57.000000000 +0200
@@ -24,7 +24,8 @@
# kern/fs.c kern/env.c fs/fshelp.c
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
+ util/i386/get_disk_name.c
# For grub-probe.
grub_probe_SOURCES = util/grub-probe.c \
diff -Nur grub2/conf/i386-pc.rmk grub2.new/conf/i386-pc.rmk
--- grub2/conf/i386-pc.rmk 2007-07-22 11:32:51.000000000 +0200
+++ grub2.new/conf/i386-pc.rmk 2007-07-22 11:32:57.000000000 +0200
@@ -71,7 +71,8 @@
util/raid.c util/lvm.c
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
+ util/i386/get_disk_name.c
# For grub-probe.
grub_probe_SOURCES = util/grub-probe.c \
diff -Nur grub2/conf/powerpc-ieee1275.rmk grub2.new/conf/powerpc-ieee1275.rmk
--- grub2/conf/powerpc-ieee1275.rmk 2007-07-02 21:50:41.000000000 +0200
+++ grub2.new/conf/powerpc-ieee1275.rmk 2007-07-22 11:20:37.000000000 +0200
@@ -36,7 +36,8 @@
util/resolve.c
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
+ util/ieee1275/get_disk_name.c
# For grub-probe.
grub_probe_SOURCES = util/grub-probe.c \
diff -Nur grub2/include/grub/util/misc.h grub2.new/include/grub/util/misc.h
--- grub2/include/grub/util/misc.h 2007-07-22 06:50:10.000000000 +0200
+++ grub2.new/include/grub/util/misc.h 2007-07-22 11:20:37.000000000 +0200
@@ -53,5 +53,6 @@
void grub_util_write_image (const char *img, size_t size, FILE *out);
void grub_util_write_image_at (const void *img, size_t size, off_t offset,
FILE *out);
+char *grub_util_get_disk_name (int disk);
#endif /* ! GRUB_UTIL_MISC_HEADER */
diff -Nur grub2/util/grub-mkdevicemap.c grub2.new/util/grub-mkdevicemap.c
--- grub2/util/grub-mkdevicemap.c 2007-07-22 06:50:10.000000000 +0200
+++ grub2.new/util/grub-mkdevicemap.c 2007-07-22 11:20:37.000000000 +0200
@@ -402,8 +402,11 @@
if (realpath (discn, name))
{
+ char *p;
strcat (name, "/disc");
- fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
+ p = grub_util_get_disk_name (num_hd);
+ fprintf (fp, "(%s)\t%s\n", p, name);
+ free (p);
}
num_hd++;
@@ -421,7 +424,10 @@
get_ide_disk_name (name, i);
if (check_device (name))
{
- fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
+ char *p;
+ p = grub_util_get_disk_name (num_hd);
+ fprintf (fp, "(%s)\t%s\n", p, name);
+ free (p);
num_hd++;
}
}
@@ -435,7 +441,10 @@
get_ataraid_disk_name (name, i);
if (check_device (name))
{
- fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
+ char *p;
+ p = grub_util_get_disk_name (num_hd);
+ fprintf (fp, "(%s)\t%s\n", p, name);
+ free (p);
num_hd++;
}
}
@@ -449,7 +458,10 @@
get_scsi_disk_name (name, i);
if (check_device (name))
{
- fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
+ char *p;
+ p = grub_util_get_disk_name (num_hd);
+ fprintf (fp, "(%s)\t%s\n", p, name);
+ free (p);
num_hd++;
}
}
@@ -472,7 +484,10 @@
get_dac960_disk_name (name, controller, drive);
if (check_device (name))
{
- fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
+ char *p;
+ p = grub_util_get_disk_name (num_hd);
+ fprintf (fp, "(%s)\t%s\n", p, name);
+ free (p);
num_hd++;
}
}
@@ -490,7 +505,10 @@
get_i2o_disk_name (name, unit);
if (check_device (name))
{
- fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
+ char *p;
+ p = grub_util_get_disk_name (num_hd);
+ fprintf (fp, "(%s)\t%s\n", p, name);
+ free (p);
num_hd++;
}
}
diff -Nur grub2/util/i386/get_disk_name.c grub2.new/util/i386/get_disk_name.c
--- grub2/util/i386/get_disk_name.c 1970-01-01 01:00:00.000000000 +0100
+++ grub2.new/util/i386/get_disk_name.c 2007-07-22 11:29:07.000000000 +0200
@@ -0,0 +1,31 @@
+/* get_disk_name.c */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2007 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
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see .
+ */
+
+#include
+
+char *
+grub_util_get_disk_name (int disk)
+{
+ char *p;
+
+ p = xmalloc (16);
+ sprintf (p, "hd%d", disk);
+
+ return p;
+}
diff -Nur grub2/util/ieee1275/get_disk_name.c grub2.new/util/ieee1275/get_disk_name.c
--- grub2/util/ieee1275/get_disk_name.c 1970-01-01 01:00:00.000000000 +0100
+++ grub2.new/util/ieee1275/get_disk_name.c 2007-07-22 11:26:45.000000000 +0200
@@ -0,0 +1,36 @@
+/* get_disk_name.c */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2007 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
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see .
+ */
+
+#include
+
+#include
+
+char *
+grub_util_get_disk_name (int disk)
+{
+ char *p;
+
+ p = xmalloc (16);
+ sprintf (p, "hd");
+
+ if (disk > 0)
+ sprintf (p + strlen (p), "%d", disk);
+
+ return p;
+}