* [PATCH] probe command
@ 2009-06-09 18:23 Vladimir 'phcoder' Serbinenko
2009-06-09 19:23 ` Pavel Roskin
0 siblings, 1 reply; 6+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2009-06-09 18:23 UTC (permalink / raw)
To: The development of GRUB 2
[-- Attachment #1: Type: text/plain, Size: 143 bytes --]
Following Pavel's suggestion to make uuid command I implemented probe
command similar to grub-probe
--
Regards
Vladimir 'phcoder' Serbinenko
[-- Attachment #2: probe.diff --]
[-- Type: text/x-patch, Size: 9298 bytes --]
diff --git a/ChangeLog b/ChangeLog
index 34c5bc1..f22780f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
+
+ probe command
+
+ * commands/probe.c: new file
+ * conf/common.rmk (pkglib_MODULES): add probe.mod
+ (probe_mod_SOURCES): new variable
+ (probe_mod_CFLAGS): likewise
+ (probe_mod_LDFLAGS): likewise
+ * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
+ * conf/i386-ieee1275.rmk: likewise
+ * conf/i386-pc.rmk: likewise
+ * conf/powerpc-ieee1275.rmk: likewise
+ * conf/sparc64-ieee1275.rmk: likewise
+
2009-06-09 Oliver Henshaw <oliver.henshaw@gmail.com>
* bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
diff --git a/commands/probe.c b/commands/probe.c
new file mode 100644
index 0000000..788755d
--- /dev/null
+++ b/commands/probe.c
@@ -0,0 +1,160 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 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
+ * 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/types.h>
+#include <grub/misc.h>
+#include <grub/mm.h>
+#include <grub/err.h>
+#include <grub/dl.h>
+#include <grub/device.h>
+#include <grub/disk.h>
+#include <grub/partition.h>
+#include <grub/net.h>
+#include <grub/fs.h>
+#include <grub/file.h>
+#include <grub/misc.h>
+#include <grub/env.h>
+#include <grub/extcmd.h>
+
+static const struct grub_arg_option options[] =
+ {
+ {"target", 't', 0,
+ "print filesystem module, partition map module, "
+ "disk provider, UUID or label [default=fs]\n",
+ "(fs|fs_label|fs_uuid|partmap|provider)", ARG_TYPE_STRING},
+ {"set", 's', GRUB_ARG_OPTION_OPTIONAL,
+ "set a variable to return value", "VAR", ARG_TYPE_STRING},
+ {0, 0, 0, 0, 0, 0}
+ };
+
+static grub_err_t
+grub_cmd_probe (grub_extcmd_t cmd,
+ int argc, char **args)
+{
+ struct grub_arg_list *state = cmd->state;
+ grub_device_t dev;
+ grub_fs_t fs;
+ char *ptr;
+ grub_err_t err;
+
+ if (argc < 1)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "device name required");
+
+ ptr = args[0] + grub_strlen (args[0]) - 1;
+ if (args[0][0] == '(' && *ptr == ')')
+ {
+ *ptr = 0;
+ dev = grub_device_open (args[0] + 1);
+ *ptr =')';
+ }
+ else
+ dev = grub_device_open (args[0]);
+ if (! dev)
+ return grub_error (GRUB_ERR_BAD_DEVICE, "couldn't open device");
+
+ if (grub_strcmp (state[0].arg, "provider") == 0)
+ {
+ const char *val = "none";
+ if (dev->net)
+ val = dev->net->dev->name;
+ if (dev->disk)
+ val = dev->disk->dev->name;
+ if (state[1].set)
+ grub_env_set (state[1].arg, val);
+ else
+ grub_printf ("%s", val);
+ return GRUB_ERR_NONE;
+ }
+ if (grub_strcmp (state[0].arg, "partmap") == 0)
+ {
+ const char *val = "none";
+ if (dev->disk && dev->disk->partition)
+ val = dev->disk->partition->partmap->name;
+ if (state[1].set)
+ grub_env_set (state[1].arg, val);
+ else
+ grub_printf ("%s", val);
+ return GRUB_ERR_NONE;
+ }
+ fs = grub_fs_probe (dev);
+ if (! fs)
+ return grub_error (GRUB_ERR_UNKNOWN_FS, "unrecognised fs");
+ if (grub_strcmp (state[0].arg, "fs") == 0)
+ {
+ if (state[1].set)
+ grub_env_set (state[1].arg, fs->name);
+ else
+ grub_printf ("%s", fs->name);
+ return GRUB_ERR_NONE;
+ }
+ if (grub_strcmp (state[0].arg, "fs_uuid") == 0)
+ {
+ char *uuid;
+ if (! fs->uuid)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "uuid for this FS isn't supported yet");
+ err = fs->uuid (dev, &uuid);
+ if (err)
+ return err;
+ if (! uuid)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "uuid for this FS isn't supported yet");
+
+ if (state[1].set)
+ grub_env_set (state[1].arg, uuid);
+ else
+ grub_printf ("%s", uuid);
+ grub_free (uuid);
+ return GRUB_ERR_NONE;
+ }
+ if (grub_strcmp (state[0].arg, "fs_label") == 0)
+ {
+ char *label;
+ if (! fs->label)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "label for this FS isn't supported yet");
+ err = fs->label (dev, &label);
+ if (err)
+ return err;
+ if (! label)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "uuid for this FS isn't supported yet");
+
+ if (state[1].set)
+ grub_env_set (state[1].arg, label);
+ else
+ grub_printf ("%s", label);
+ grub_free (label);
+ return GRUB_ERR_NONE;
+ }
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "unrecognised target");
+}
+
+static grub_extcmd_t cmd;
+
+GRUB_MOD_INIT(probe)
+{
+ cmd = grub_register_extcmd ("probe", grub_cmd_probe, GRUB_COMMAND_FLAG_BOTH,
+ "probe [--target=target] [DEVICE]",
+ "Retrieve device info.", options);
+}
+
+GRUB_MOD_FINI(probe)
+{
+ grub_unregister_extcmd (cmd);
+}
diff --git a/conf/common.rmk b/conf/common.rmk
index 9780341..b75f50e 100644
--- a/conf/common.rmk
+++ b/conf/common.rmk
@@ -354,7 +354,7 @@ pkglib_MODULES += minicmd.mod extcmd.mod hello.mod handler.mod \
terminfo.mod test.mod blocklist.mod hexdump.mod \
read.mod sleep.mod loadenv.mod crc.mod parttool.mod \
pcpart.mod memrw.mod boot.mod normal.mod sh.mod lua.mod \
- gptsync.mod true.mod
+ gptsync.mod true.mod probe.mod
# For gptsync.mod.
gptsync_mod_SOURCES = commands/gptsync.c
@@ -491,6 +491,11 @@ true_mod_SOURCES = commands/true.c
true_mod_CFLAGS = $(COMMON_CFLAGS)
true_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# For probe.mod.
+probe_mod_SOURCES = commands/probe.c
+probe_mod_CFLAGS = $(COMMON_CFLAGS)
+probe_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
# For normal.mod.
normal_mod_SOURCES = normal/main.c normal/cmdline.c normal/dyncmd.c \
normal/autofs.c normal/handler.c \
@@ -585,3 +590,4 @@ gzio_mod_LDFLAGS = $(COMMON_LDFLAGS)
bufio_mod_SOURCES = io/bufio.c
bufio_mod_CFLAGS = $(COMMON_CFLAGS)
bufio_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk
index 2f768c0..f2e0dc6 100644
--- a/conf/i386-coreboot.rmk
+++ b/conf/i386-coreboot.rmk
@@ -61,7 +61,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/echo.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
commands/search.c commands/blocklist.c commands/hexdump.c \
- commands/gptsync.c \
+ commands/gptsync.c commands/probe.c \
lib/hexdump.c commands/i386/cpuid.c \
disk/host.c disk/loopback.c \
\
diff --git a/conf/i386-ieee1275.rmk b/conf/i386-ieee1275.rmk
index 961e616..817a266 100644
--- a/conf/i386-ieee1275.rmk
+++ b/conf/i386-ieee1275.rmk
@@ -61,7 +61,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/handler.c commands/ls.c commands/test.c \
commands/search.c commands/blocklist.c commands/hexdump.c \
lib/hexdump.c commands/halt.c commands/reboot.c \
- commands/gptsync.c commands/i386/cpuid.c \
+ commands/gptsync.c commands/probe.c commands/i386/cpuid.c \
disk/host.c disk/loopback.c \
\
fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \
diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk
index 0af07f9..e9496f6 100644
--- a/conf/i386-pc.rmk
+++ b/conf/i386-pc.rmk
@@ -127,7 +127,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/handler.c commands/ls.c commands/test.c \
commands/search.c commands/blocklist.c commands/hexdump.c \
lib/hexdump.c commands/i386/pc/halt.c commands/reboot.c \
- commands/gptsync.c commands/i386/cpuid.c \
+ commands/gptsync.c commands/probe.c commands/i386/cpuid.c \
disk/host.c disk/loopback.c disk/scsi.c \
fs/fshelp.c \
\
diff --git a/conf/powerpc-ieee1275.rmk b/conf/powerpc-ieee1275.rmk
index 8b5be2b..b8a0309 100644
--- a/conf/powerpc-ieee1275.rmk
+++ b/conf/powerpc-ieee1275.rmk
@@ -45,7 +45,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/search.c commands/handler.c commands/test.c \
commands/ls.c commands/blocklist.c commands/hexdump.c \
lib/hexdump.c commands/halt.c commands/reboot.c \
- commands/gptsync.c \
+ commands/gptsync.c commands/probe.c \
disk/loopback.c \
\
fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \
diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk
index d16501b..5700937 100644
--- a/conf/sparc64-ieee1275.rmk
+++ b/conf/sparc64-ieee1275.rmk
@@ -101,6 +101,7 @@ grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/help.c \
commands/search.c commands/handler.c commands/test.c \
commands/ls.c commands/blocklist.c commands/hexdump.c \
+ commands/probe.c \
lib/hexdump.c commands/halt.c commands/reboot.c \
disk/loopback.c \
\
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] probe command
2009-06-09 18:23 [PATCH] probe command Vladimir 'phcoder' Serbinenko
@ 2009-06-09 19:23 ` Pavel Roskin
2009-06-09 20:55 ` Vladimir 'phcoder' Serbinenko
0 siblings, 1 reply; 6+ messages in thread
From: Pavel Roskin @ 2009-06-09 19:23 UTC (permalink / raw)
To: The development of GRUB 2
On Tue, 2009-06-09 at 20:23 +0200, Vladimir 'phcoder' Serbinenko wrote:
> Following Pavel's suggestion to make uuid command I implemented probe
> command similar to grub-probe
Great! Please remove trailing whitespace. Please add missing space
after "=" on line 64 in probe.c.
The help doesn't look right (no space before "print filesystem module").
I can have a look how to fix it if you don't find a way. Actually, I
would prefer separate options for targets, as in "search". That would
be:
-l --label
-u --fs_uuid
-p --partmap
-d --driver (instead of "provider")
--target=partmap doesn't work on whole disks.
--
Regards,
Pavel Roskin
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] probe command
2009-06-09 19:23 ` Pavel Roskin
@ 2009-06-09 20:55 ` Vladimir 'phcoder' Serbinenko
2009-06-09 21:48 ` Pavel Roskin
0 siblings, 1 reply; 6+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2009-06-09 20:55 UTC (permalink / raw)
To: The development of GRUB 2
[-- Attachment #1: Type: text/plain, Size: 1196 bytes --]
> I can have a look how to fix it if you don't find a way. Actually, I
> would prefer separate options for targets, as in "search". That would
> be:
>
> -l --label
> -u --fs_uuid
> -p --partmap
> -d --driver (instead of "provider")
I was inspired by grub-probe but this way it's ok too
>
> --target=partmap doesn't work on whole disks.
It was the intent. I'm norking on nested partitions and consider the
following situation:
hd0 is subdivided by pc partmap into
hd0,1 - linux
hd0,2 - solaris which is subdivided by sun partmap into
hd0,2,1 - root
hd0,2,2 - swap
Then
probe -p hd0 gives "none"
probe -p hd0,2 gives "pc"
probe -p hd0,2,2 gives "sun"
another possibility would be
probe -p hd0 gives "pc"
probe -p hd0,2 gives "sun"
probe -p hd0,2,2 gives "none"
I don't have strong preference for one or other option but it can't
say "pc" on both hd0 and hd0,1
P.S. could you improve & commit your target libc patch?
>
> --
> Regards,
> Pavel Roskin
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>
--
Regards
Vladimir 'phcoder' Serbinenko
[-- Attachment #2: probe.diff --]
[-- Type: text/x-patch, Size: 9239 bytes --]
diff --git a/ChangeLog b/ChangeLog
index 3eb4bfd..556b17d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
+
+ probe command
+
+ * commands/probe.c: new file
+ * conf/common.rmk (pkglib_MODULES): add probe.mod
+ (probe_mod_SOURCES): new variable
+ (probe_mod_CFLAGS): likewise
+ (probe_mod_LDFLAGS): likewise
+ * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
+ * conf/i386-ieee1275.rmk: likewise
+ * conf/i386-pc.rmk: likewise
+ * conf/powerpc-ieee1275.rmk: likewise
+ * conf/sparc64-ieee1275.rmk: likewise
+
2009-06-09 Michel Hermier <michel.hermier@gmail.com>
* fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.
diff --git a/commands/probe.c b/commands/probe.c
new file mode 100644
index 0000000..4631907
--- /dev/null
+++ b/commands/probe.c
@@ -0,0 +1,160 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 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
+ * 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/types.h>
+#include <grub/misc.h>
+#include <grub/mm.h>
+#include <grub/err.h>
+#include <grub/dl.h>
+#include <grub/device.h>
+#include <grub/disk.h>
+#include <grub/partition.h>
+#include <grub/net.h>
+#include <grub/fs.h>
+#include <grub/file.h>
+#include <grub/misc.h>
+#include <grub/env.h>
+#include <grub/extcmd.h>
+
+static const struct grub_arg_option options[] =
+ {
+ {"set", 's', GRUB_ARG_OPTION_OPTIONAL,
+ "set a variable to return value", "VAR", ARG_TYPE_STRING},
+ {"driver", 'd', 0, "determine driver", 0, 0},
+ {"partmap", 'p', 0, "determine partion map type", 0, 0},
+ {"fs", 'f', 0, "determine filesystem type", 0, 0},
+ {"fs-uuid", 'u', 0, "determine filesystem UUID", 0, 0},
+ {"label", 'l', 0, "determine filesystem label", 0, 0},
+ {0, 0, 0, 0, 0, 0}
+ };
+
+static grub_err_t
+grub_cmd_probe (grub_extcmd_t cmd, int argc, char **args)
+{
+ struct grub_arg_list *state = cmd->state;
+ grub_device_t dev;
+ grub_fs_t fs;
+ char *ptr;
+ grub_err_t err;
+
+ if (argc < 1)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "device name required");
+
+ ptr = args[0] + grub_strlen (args[0]) - 1;
+ if (args[0][0] == '(' && *ptr == ')')
+ {
+ *ptr = 0;
+ dev = grub_device_open (args[0] + 1);
+ *ptr = ')';
+ }
+ else
+ dev = grub_device_open (args[0]);
+ if (! dev)
+ return grub_error (GRUB_ERR_BAD_DEVICE, "couldn't open device");
+
+ if (state[1].set)
+ {
+ const char *val = "none";
+ if (dev->net)
+ val = dev->net->dev->name;
+ if (dev->disk)
+ val = dev->disk->dev->name;
+ if (state[0].set)
+ grub_env_set (state[0].arg, val);
+ else
+ grub_printf ("%s", val);
+ return GRUB_ERR_NONE;
+ }
+ if (state[2].set)
+ {
+ const char *val = "none";
+ if (dev->disk && dev->disk->partition)
+ val = dev->disk->partition->partmap->name;
+ if (state[0].set)
+ grub_env_set (state[0].arg, val);
+ else
+ grub_printf ("%s", val);
+ return GRUB_ERR_NONE;
+ }
+ fs = grub_fs_probe (dev);
+ if (! fs)
+ return grub_error (GRUB_ERR_UNKNOWN_FS, "unrecognised fs");
+ if (state[3].set)
+ {
+ if (state[0].set)
+ grub_env_set (state[0].arg, fs->name);
+ else
+ grub_printf ("%s", fs->name);
+ return GRUB_ERR_NONE;
+ }
+ if (state[4].set)
+ {
+ char *uuid;
+ if (! fs->uuid)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "uuid for this FS isn't supported yet");
+ err = fs->uuid (dev, &uuid);
+ if (err)
+ return err;
+ if (! uuid)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "uuid for this FS isn't supported yet");
+
+ if (state[0].set)
+ grub_env_set (state[0].arg, uuid);
+ else
+ grub_printf ("%s", uuid);
+ grub_free (uuid);
+ return GRUB_ERR_NONE;
+ }
+ if (state[5].set)
+ {
+ char *label;
+ if (! fs->label)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "label for this FS isn't supported yet");
+ err = fs->label (dev, &label);
+ if (err)
+ return err;
+ if (! label)
+ return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+ "uuid for this FS isn't supported yet");
+
+ if (state[0].set)
+ grub_env_set (state[0].arg, label);
+ else
+ grub_printf ("%s", label);
+ grub_free (label);
+ return GRUB_ERR_NONE;
+ }
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "unrecognised target");
+}
+
+static grub_extcmd_t cmd;
+
+GRUB_MOD_INIT (probe)
+{
+ cmd = grub_register_extcmd ("probe", grub_cmd_probe, GRUB_COMMAND_FLAG_BOTH,
+ "probe [--target=target] [DEVICE]",
+ "Retrieve device info.", options);
+}
+
+GRUB_MOD_FINI (probe)
+{
+ grub_unregister_extcmd (cmd);
+}
diff --git a/conf/common.rmk b/conf/common.rmk
index 9780341..b75f50e 100644
--- a/conf/common.rmk
+++ b/conf/common.rmk
@@ -354,7 +354,7 @@ pkglib_MODULES += minicmd.mod extcmd.mod hello.mod handler.mod \
terminfo.mod test.mod blocklist.mod hexdump.mod \
read.mod sleep.mod loadenv.mod crc.mod parttool.mod \
pcpart.mod memrw.mod boot.mod normal.mod sh.mod lua.mod \
- gptsync.mod true.mod
+ gptsync.mod true.mod probe.mod
# For gptsync.mod.
gptsync_mod_SOURCES = commands/gptsync.c
@@ -491,6 +491,11 @@ true_mod_SOURCES = commands/true.c
true_mod_CFLAGS = $(COMMON_CFLAGS)
true_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# For probe.mod.
+probe_mod_SOURCES = commands/probe.c
+probe_mod_CFLAGS = $(COMMON_CFLAGS)
+probe_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
# For normal.mod.
normal_mod_SOURCES = normal/main.c normal/cmdline.c normal/dyncmd.c \
normal/autofs.c normal/handler.c \
@@ -585,3 +590,4 @@ gzio_mod_LDFLAGS = $(COMMON_LDFLAGS)
bufio_mod_SOURCES = io/bufio.c
bufio_mod_CFLAGS = $(COMMON_CFLAGS)
bufio_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk
index 2f768c0..f2e0dc6 100644
--- a/conf/i386-coreboot.rmk
+++ b/conf/i386-coreboot.rmk
@@ -61,7 +61,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/echo.c commands/help.c \
commands/handler.c commands/ls.c commands/test.c \
commands/search.c commands/blocklist.c commands/hexdump.c \
- commands/gptsync.c \
+ commands/gptsync.c commands/probe.c \
lib/hexdump.c commands/i386/cpuid.c \
disk/host.c disk/loopback.c \
\
diff --git a/conf/i386-ieee1275.rmk b/conf/i386-ieee1275.rmk
index 961e616..817a266 100644
--- a/conf/i386-ieee1275.rmk
+++ b/conf/i386-ieee1275.rmk
@@ -61,7 +61,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/handler.c commands/ls.c commands/test.c \
commands/search.c commands/blocklist.c commands/hexdump.c \
lib/hexdump.c commands/halt.c commands/reboot.c \
- commands/gptsync.c commands/i386/cpuid.c \
+ commands/gptsync.c commands/probe.c commands/i386/cpuid.c \
disk/host.c disk/loopback.c \
\
fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \
diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk
index 0af07f9..e9496f6 100644
--- a/conf/i386-pc.rmk
+++ b/conf/i386-pc.rmk
@@ -127,7 +127,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/handler.c commands/ls.c commands/test.c \
commands/search.c commands/blocklist.c commands/hexdump.c \
lib/hexdump.c commands/i386/pc/halt.c commands/reboot.c \
- commands/gptsync.c commands/i386/cpuid.c \
+ commands/gptsync.c commands/probe.c commands/i386/cpuid.c \
disk/host.c disk/loopback.c disk/scsi.c \
fs/fshelp.c \
\
diff --git a/conf/powerpc-ieee1275.rmk b/conf/powerpc-ieee1275.rmk
index 8b5be2b..b8a0309 100644
--- a/conf/powerpc-ieee1275.rmk
+++ b/conf/powerpc-ieee1275.rmk
@@ -45,7 +45,7 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \
commands/search.c commands/handler.c commands/test.c \
commands/ls.c commands/blocklist.c commands/hexdump.c \
lib/hexdump.c commands/halt.c commands/reboot.c \
- commands/gptsync.c \
+ commands/gptsync.c commands/probe.c \
disk/loopback.c \
\
fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \
diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk
index d16501b..5700937 100644
--- a/conf/sparc64-ieee1275.rmk
+++ b/conf/sparc64-ieee1275.rmk
@@ -101,6 +101,7 @@ grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
commands/configfile.c commands/help.c \
commands/search.c commands/handler.c commands/test.c \
commands/ls.c commands/blocklist.c commands/hexdump.c \
+ commands/probe.c \
lib/hexdump.c commands/halt.c commands/reboot.c \
disk/loopback.c \
\
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] probe command
2009-06-09 20:55 ` Vladimir 'phcoder' Serbinenko
@ 2009-06-09 21:48 ` Pavel Roskin
2009-06-10 8:11 ` Vladimir 'phcoder' Serbinenko
0 siblings, 1 reply; 6+ messages in thread
From: Pavel Roskin @ 2009-06-09 21:48 UTC (permalink / raw)
To: The development of GRUB 2
On Tue, 2009-06-09 at 22:55 +0200, Vladimir 'phcoder' Serbinenko wrote:
> > --target=partmap doesn't work on whole disks.
> It was the intent. I'm norking on nested partitions and consider the
> following situation:
> hd0 is subdivided by pc partmap into
> hd0,1 - linux
> hd0,2 - solaris which is subdivided by sun partmap into
> hd0,2,1 - root
> hd0,2,2 - swap
> Then
> probe -p hd0 gives "none"
> probe -p hd0,2 gives "pc"
> probe -p hd0,2,2 gives "sun"
> another possibility would be
> probe -p hd0 gives "pc"
> probe -p hd0,2 gives "sun"
> probe -p hd0,2,2 gives "none"
> I don't have strong preference for one or other option but it can't
> say "pc" on both hd0 and hd0,1
I think it the concept is not obvious to the user, maybe we could omit
that functionality? Are you going to use it anywhere?
> P.S. could you improve & commit your target libc patch?
I'm looking at it now, but it will take some time. I've just noticed
that I didn't post another patch that is required for correct
implementation (AC_CHECK_FUNCS doesn't work if the target headers are
missing). Also, I want to eliminate GRUB_SOURCE, at least from the
configuration scripts.
--
Regards,
Pavel Roskin
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] probe command
2009-06-09 21:48 ` Pavel Roskin
@ 2009-06-10 8:11 ` Vladimir 'phcoder' Serbinenko
2009-06-15 23:26 ` Vladimir 'phcoder' Serbinenko
0 siblings, 1 reply; 6+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2009-06-10 8:11 UTC (permalink / raw)
To: The development of GRUB 2
On Tue, Jun 9, 2009 at 11:48 PM, Pavel Roskin<proski@gnu.org> wrote:
> On Tue, 2009-06-09 at 22:55 +0200, Vladimir 'phcoder' Serbinenko wrote:
>
>> > --target=partmap doesn't work on whole disks.
>> It was the intent. I'm norking on nested partitions and consider the
>> following situation:
>> hd0 is subdivided by pc partmap into
>> hd0,1 - linux
>> hd0,2 - solaris which is subdivided by sun partmap into
>> hd0,2,1 - root
>> hd0,2,2 - swap
>> Then
>> probe -p hd0 gives "none"
>> probe -p hd0,2 gives "pc"
>> probe -p hd0,2,2 gives "sun"
>> another possibility would be
>> probe -p hd0 gives "pc"
>> probe -p hd0,2 gives "sun"
>> probe -p hd0,2,2 gives "none"
>> I don't have strong preference for one or other option but it can't
>> say "pc" on both hd0 and hd0,1
>
> I think it the concept is not obvious to the user, maybe we could omit
> that functionality? Are you going to use it anywhere?
The idea was to give the scriptwriters more possibilities for
autoconfig. There is normally no reason for an end user to use this
functionality at all but it may be useful in writing automated scripts
for usage on e.g. rescue CD
>
>> P.S. could you improve & commit your target libc patch?
>
> I'm looking at it now, but it will take some time. I've just noticed
> that I didn't post another patch that is required for correct
> implementation (AC_CHECK_FUNCS doesn't work if the target headers are
> missing). Also, I want to eliminate GRUB_SOURCE, at least from the
> configuration scripts.
>
> --
> Regards,
> Pavel Roskin
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>
--
Regards
Vladimir 'phcoder' Serbinenko
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] probe command
2009-06-10 8:11 ` Vladimir 'phcoder' Serbinenko
@ 2009-06-15 23:26 ` Vladimir 'phcoder' Serbinenko
0 siblings, 0 replies; 6+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2009-06-15 23:26 UTC (permalink / raw)
To: The development of GRUB 2
Comitted
On Wed, Jun 10, 2009 at 10:11 AM, Vladimir 'phcoder'
Serbinenko<phcoder@gmail.com> wrote:
> On Tue, Jun 9, 2009 at 11:48 PM, Pavel Roskin<proski@gnu.org> wrote:
>> On Tue, 2009-06-09 at 22:55 +0200, Vladimir 'phcoder' Serbinenko wrote:
>>
>>> > --target=partmap doesn't work on whole disks.
>>> It was the intent. I'm norking on nested partitions and consider the
>>> following situation:
>>> hd0 is subdivided by pc partmap into
>>> hd0,1 - linux
>>> hd0,2 - solaris which is subdivided by sun partmap into
>>> hd0,2,1 - root
>>> hd0,2,2 - swap
>>> Then
>>> probe -p hd0 gives "none"
>>> probe -p hd0,2 gives "pc"
>>> probe -p hd0,2,2 gives "sun"
>>> another possibility would be
>>> probe -p hd0 gives "pc"
>>> probe -p hd0,2 gives "sun"
>>> probe -p hd0,2,2 gives "none"
>>> I don't have strong preference for one or other option but it can't
>>> say "pc" on both hd0 and hd0,1
>>
>> I think it the concept is not obvious to the user, maybe we could omit
>> that functionality? Are you going to use it anywhere?
> The idea was to give the scriptwriters more possibilities for
> autoconfig. There is normally no reason for an end user to use this
> functionality at all but it may be useful in writing automated scripts
> for usage on e.g. rescue CD
>>
>>> P.S. could you improve & commit your target libc patch?
>>
>> I'm looking at it now, but it will take some time. I've just noticed
>> that I didn't post another patch that is required for correct
>> implementation (AC_CHECK_FUNCS doesn't work if the target headers are
>> missing). Also, I want to eliminate GRUB_SOURCE, at least from the
>> configuration scripts.
>>
>> --
>> Regards,
>> Pavel Roskin
>>
>>
>> _______________________________________________
>> Grub-devel mailing list
>> Grub-devel@gnu.org
>> http://lists.gnu.org/mailman/listinfo/grub-devel
>>
>
>
>
> --
> Regards
> Vladimir 'phcoder' Serbinenko
>
--
Regards
Vladimir 'phcoder' Serbinenko
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-06-15 23:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-09 18:23 [PATCH] probe command Vladimir 'phcoder' Serbinenko
2009-06-09 19:23 ` Pavel Roskin
2009-06-09 20:55 ` Vladimir 'phcoder' Serbinenko
2009-06-09 21:48 ` Pavel Roskin
2009-06-10 8:11 ` Vladimir 'phcoder' Serbinenko
2009-06-15 23:26 ` Vladimir 'phcoder' Serbinenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.