]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
... and add the missing files :-/
authorrobertmh <robertmh@localhost>
Tue, 28 Aug 2007 10:22:15 +0000 (10:22 +0000)
committerrobertmh <robertmh@localhost>
Tue, 28 Aug 2007 10:22:15 +0000 (10:22 +0000)
util/i386/get_disk_name.c [new file with mode: 0644]
util/ieee1275/get_disk_name.c [new file with mode: 0644]

diff --git a/util/i386/get_disk_name.c b/util/i386/get_disk_name.c
new file mode 100644 (file)
index 0000000..d06b337
--- /dev/null
@@ -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 <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/util/misc.h>
+
+char *
+grub_util_get_disk_name (int disk, char *name)
+{
+  char *p;
+
+  p = xmalloc (16);
+  sprintf (p, "hd%d", disk);
+  
+  return p;
+}
diff --git a/util/ieee1275/get_disk_name.c b/util/ieee1275/get_disk_name.c
new file mode 100644 (file)
index 0000000..6370fe6
--- /dev/null
@@ -0,0 +1,60 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdio.h>
+#include <grub/util/misc.h>
+
+char *
+grub_util_get_disk_name (int disk, char *name)
+{
+  int p[2];
+
+  char *line = NULL;
+  int zero = 0;
+  int len;
+
+  pipe (p);
+
+  switch (fork ())
+    {
+    case -1:
+      perror ("fork");
+      exit (1);
+    case 0:
+      close (1);
+      dup (p[1]);
+      close (p[0]);
+      close (p[1]);
+      execlp ("ofpathname", "ofpathname", "-a", name, NULL);
+      perror ("execlp");
+    default:
+      close (0);
+      dup (p[0]);
+      close (p[0]);
+      close (p[1]);
+    }
+
+  len = getline (&line, &zero, stdin);
+  if (len < 2)
+    grub_util_error ("ofpathname didn't print a meaningful alias name");
+
+  line[len - 1] = '\0';
+  
+  return line;
+}