commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[2009] 2009-03-01 Bean <address@hidden>


From: Bean
Subject: [2009] 2009-03-01 Bean <address@hidden>
Date: Sun, 01 Mar 2009 17:51:45 +0000

Revision: 2009
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2009
Author:   bean
Date:     2009-03-01 17:51:44 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
2009-03-01  Bean  <address@hidden>

        * commands/terminal.c: Removed.

        * commands/handler.c: New file.

        * include/grub/list.h: Likewise.

        * include/grub/handler.h: Likewise.

        * kern/list.c: Likewise.

        * kern/handler.c: Likewise.

        * kern/term.h: Include header file <grub/handler.h>.
        (grub_term_input): Move next field to the beginning.
        (grub_term_output): Likewise.
        (grub_term_input_class): New variable.
        (grub_term_output_class): Likewise.
        (grub_term_register_input): Changed to inline function.
        (grub_term_register_output): Likewise.
        (grub_term_unregister_input): Likewise.
        (grub_term_unregister_output): Likewise.
        (grub_term_set_current_input): Likewise.
        (grub_term_set_current_output): Likewise.
        (grub_term_get_current_input): Likewise.
        (grub_term_get_current_output): Likewise.
        (grub_term_iterate_input): Removed.
        (grub_term_iterate_output): Likewise.

        * kern/term.c (grub_term_list_input): Removed.
        (grub_term_list_output): Likewise.
        (grub_term_input_class): New variable.
        (grub_term_output_class): Likewise.
        (grub_cur_term_input): Change varaible as macro.
        (grub_cur_term_output): Likewise.
        (grub_term_register_input): Removed.
        (grub_term_register_output): Likewise.
        (grub_term_unregister_input): Likewise.
        (grub_term_unregister_output): Likewise.
        (grub_term_set_current_input): Likewise.
        (grub_term_set_current_output): Likewise.
        (grub_term_iterate_input): Likewise.
        (grub_term_iterate_output): Likewise.
        (grub_term_get_current_input): Likewise.
        (grub_term_get_current_output): Likewise.

        * util/grub-editenv.c: Include header file <grub/handler.h>.
        (grub_term_get_current_input): Removed.
        (grub_term_get_current_output): Likewise.
        (grub_term_input_class): New variable.
        (grub_term_outout_class): Likewise.

        * util/grub-fstest.c (grub_term_get_current_input): Removed.
        (grub_term_get_current_output): Likewise.
        (grub_term_input_class): New variable.
        (grub_term_outout_class): Likewise.

        * util/grub-probe.c (grub_term_get_current_input): Removed.
        (grub_term_get_current_output): Likewise.
        (grub_term_input_class): New variable.
        (grub_term_outout_class): Likewise.

        * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
        (grub_term_get_current_output): Likewise.
        (grub_term_input_class): New variable.
        (grub_term_outout_class): Likewise.

        * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
        (terminal_mod_SOURCES): Likewise.
        (terminal_mod_CFLAGS): Likewise.
        (terminal_mod_LDFLAGS): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
        handler.c.
        (kernel_img_SOURCES): Add list.c and handler.c.
        (kernel_img_HEADERS): Add list.h and handler.h.

        * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
        handler.c.
        (kernel_mod_SOURCES): Add list.c and handler.c.
        (kernel_mod_HEADERS): Add list.h and handler.h.

        * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
        handler.c.
        (kernel_elf_SOURCES): Add list.c and handler.c.
        (kernel_elf_HEADERS): Add list.h and handler.h.

        * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
        handler.c.
        (kernel_elf_SOURCES): Add list.c and handler.c.
        (kernel_elf_HEADERS): Add list.h and handler.h.

        * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
        handler.c.
        (kernel_mod_SOURCES): Add list.c and handler.c.
        (kernel_mod_HEADERS): Add list.h and handler.h.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
        handler.c.
        (kernel_elf_SOURCES): Add list.c and handler.c.
        (kernel_elf_HEADERS): Add list.h and handler.h.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/DISTLIST
    trunk/grub2/conf/common.mk
    trunk/grub2/conf/common.rmk
    trunk/grub2/conf/i386-coreboot.mk
    trunk/grub2/conf/i386-coreboot.rmk
    trunk/grub2/conf/i386-efi.mk
    trunk/grub2/conf/i386-efi.rmk
    trunk/grub2/conf/i386-ieee1275.mk
    trunk/grub2/conf/i386-ieee1275.rmk
    trunk/grub2/conf/i386-pc.mk
    trunk/grub2/conf/i386-pc.rmk
    trunk/grub2/conf/powerpc-ieee1275.mk
    trunk/grub2/conf/powerpc-ieee1275.rmk
    trunk/grub2/conf/x86_64-efi.mk
    trunk/grub2/conf/x86_64-efi.rmk
    trunk/grub2/include/grub/term.h
    trunk/grub2/kern/term.c
    trunk/grub2/util/grub-editenv.c
    trunk/grub2/util/grub-fstest.c
    trunk/grub2/util/grub-probe.c
    trunk/grub2/util/i386/pc/grub-setup.c

Added Paths:
-----------
    trunk/grub2/commands/handler.c
    trunk/grub2/include/grub/handler.h
    trunk/grub2/include/grub/list.h
    trunk/grub2/kern/handler.c
    trunk/grub2/kern/list.c

Removed Paths:
-------------
    trunk/grub2/commands/terminal.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/ChangeLog       2009-03-01 17:51:44 UTC (rev 2009)
@@ -1,3 +1,106 @@
+2009-03-01  Bean  <address@hidden>
+
+       * commands/terminal.c: Removed.
+
+       * commands/handler.c: New file.
+
+       * include/grub/list.h: Likewise.
+
+       * include/grub/handler.h: Likewise.
+
+       * kern/list.c: Likewise.
+
+       * kern/handler.c: Likewise.
+
+       * kern/term.h: Include header file <grub/handler.h>.
+       (grub_term_input): Move next field to the beginning.
+       (grub_term_output): Likewise.
+       (grub_term_input_class): New variable.
+       (grub_term_output_class): Likewise.
+       (grub_term_register_input): Changed to inline function.
+       (grub_term_register_output): Likewise.
+       (grub_term_unregister_input): Likewise.
+       (grub_term_unregister_output): Likewise.
+       (grub_term_set_current_input): Likewise.
+       (grub_term_set_current_output): Likewise.
+       (grub_term_get_current_input): Likewise.
+       (grub_term_get_current_output): Likewise.
+       (grub_term_iterate_input): Removed.
+       (grub_term_iterate_output): Likewise.
+
+       * kern/term.c (grub_term_list_input): Removed.
+       (grub_term_list_output): Likewise.
+       (grub_term_input_class): New variable.
+       (grub_term_output_class): Likewise.
+       (grub_cur_term_input): Change varaible as macro.
+       (grub_cur_term_output): Likewise.
+       (grub_term_register_input): Removed.
+       (grub_term_register_output): Likewise.
+       (grub_term_unregister_input): Likewise.
+       (grub_term_unregister_output): Likewise.
+       (grub_term_set_current_input): Likewise.
+       (grub_term_set_current_output): Likewise.
+       (grub_term_iterate_input): Likewise.
+       (grub_term_iterate_output): Likewise.
+       (grub_term_get_current_input): Likewise.
+       (grub_term_get_current_output): Likewise.
+
+       * util/grub-editenv.c: Include header file <grub/handler.h>.
+       (grub_term_get_current_input): Removed.
+       (grub_term_get_current_output): Likewise.
+       (grub_term_input_class): New variable.
+       (grub_term_outout_class): Likewise.
+
+       * util/grub-fstest.c (grub_term_get_current_input): Removed.
+       (grub_term_get_current_output): Likewise.
+       (grub_term_input_class): New variable.
+       (grub_term_outout_class): Likewise.
+
+       * util/grub-probe.c (grub_term_get_current_input): Removed.
+       (grub_term_get_current_output): Likewise.
+       (grub_term_input_class): New variable.
+       (grub_term_outout_class): Likewise.
+
+       * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
+       (grub_term_get_current_output): Likewise.
+       (grub_term_input_class): New variable.
+       (grub_term_outout_class): Likewise.
+
+       * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
+       (terminal_mod_SOURCES): Likewise.
+       (terminal_mod_CFLAGS): Likewise.
+       (terminal_mod_LDFLAGS): Likewise.
+
+       * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
+       handler.c.
+       (kernel_img_SOURCES): Add list.c and handler.c.
+       (kernel_img_HEADERS): Add list.h and handler.h.
+
+       * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
+       handler.c.
+       (kernel_mod_SOURCES): Add list.c and handler.c.
+       (kernel_mod_HEADERS): Add list.h and handler.h.
+
+       * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
+       handler.c.
+       (kernel_elf_SOURCES): Add list.c and handler.c.
+       (kernel_elf_HEADERS): Add list.h and handler.h.
+
+       * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
+       handler.c.
+       (kernel_elf_SOURCES): Add list.c and handler.c.
+       (kernel_elf_HEADERS): Add list.h and handler.h.
+
+       * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
+       handler.c.
+       (kernel_mod_SOURCES): Add list.c and handler.c.
+       (kernel_mod_HEADERS): Add list.h and handler.h.
+
+       * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
+       handler.c.
+       (kernel_elf_SOURCES): Add list.c and handler.c.
+       (kernel_elf_HEADERS): Add list.h and handler.h.
+
 2009-02-27  Robert Millan  <address@hidden>
 
        Factorize elf32 / elf64 code in Multiboot loader.  This will

Modified: trunk/grub2/DISTLIST
===================================================================
--- trunk/grub2/DISTLIST        2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/DISTLIST        2009-03-01 17:51:44 UTC (rev 2009)
@@ -49,6 +49,7 @@
 commands/date.c
 commands/echo.c
 commands/halt.c
+commands/handler.c
 commands/hdparm.c
 commands/help.c
 commands/hexdump.c
@@ -159,8 +160,10 @@
 include/grub/fshelp.h
 include/grub/gpt_partition.h
 include/grub/gzio.h
+include/grub/handler.h
 include/grub/hfs.h
 include/grub/kernel.h
+include/grub/list.h
 include/grub/loader.h
 include/grub/lvm.h
 include/grub/menu.h
@@ -316,6 +319,8 @@
 kern/err.c
 kern/file.c
 kern/fs.c
+kern/handler.c
+kern/list.c
 kern/loader.c
 kern/main.c
 kern/misc.c
@@ -386,14 +391,13 @@
 loader/i386/bsd_normal.c
 loader/i386/linux.c
 loader/i386/multiboot.c
+loader/i386/multiboot_elfxx.c
 loader/i386/efi/linux.c
 loader/i386/ieee1275/linux.c
 loader/i386/pc/chainloader.c
 loader/i386/pc/chainloader_normal.c
 loader/i386/pc/linux.c
 loader/i386/pc/multiboot2.c
-loader/i386/pc/multiboot_elf32.c
-loader/i386/pc/multiboot_elf64.c
 loader/i386/pc/multiboot_normal.c
 loader/ieee1275/multiboot2.c
 loader/powerpc/ieee1275/linux.c

Added: trunk/grub2/commands/handler.c
===================================================================
--- trunk/grub2/commands/handler.c                              (rev 0)
+++ trunk/grub2/commands/handler.c      2009-03-01 17:51:44 UTC (rev 2009)
@@ -0,0 +1,132 @@
+/* handler.c - test module for dynamic loading */
+/*
+ *  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/normal.h>
+#include <grub/dl.h>
+#include <grub/err.h>
+#include <grub/misc.h>
+#include <grub/term.h>
+#include <grub/handler.h>
+
+static grub_err_t
+grub_cmd_handler_generic (int argc, char **args, char *class_name)
+{
+  char *find_name;
+  void *find_result;
+  void *curr_item = 0;
+  grub_handler_class_t head;
+
+  auto int list_item (grub_named_list_t item);
+  int list_item (grub_named_list_t item)
+    {
+      if (item == curr_item)
+       grub_putchar ('*');
+
+      grub_printf ("%s\n", item->name);
+
+      return 0;
+    }
+
+  head = grub_handler_class_list;
+  if ((argc == 0) && (class_name == 0))
+    {
+      grub_list_iterate (head, (grub_list_hook_t) list_item);
+    }
+  else
+    {
+      grub_handler_class_t class;
+
+      if (class_name == 0)
+       {
+         class_name = args[0];
+         argc--;
+         args++;
+       }
+
+      class = grub_named_list_find (GRUB_AS_NAMED_LIST (head), class_name);
+      if (! class)
+       return grub_error (GRUB_ERR_FILE_NOT_FOUND, "class not found");
+
+      if (argc == 0)
+       {
+         curr_item = class->cur_handler;
+         grub_list_iterate (class->handler_list,
+                            (grub_list_hook_t) list_item);
+       }
+      else
+       {
+         grub_handler_t handler;
+
+         handler =
+           grub_named_list_find (GRUB_AS_NAMED_LIST (class->handler_list),
+                                 args[0]);
+
+         if (! handler)
+           return grub_error (GRUB_ERR_FILE_NOT_FOUND, "handler not found");
+
+         grub_handler_set_current (class, handler);
+       }
+    }
+
+  return 0;
+}
+
+static grub_err_t
+grub_cmd_handler (struct grub_arg_list *state __attribute__ ((unused)),
+                 int argc, char **args)
+{
+  return grub_cmd_handler_generic (argc, args, 0);
+}
+
+static grub_err_t
+grub_cmd_terminal_input (struct grub_arg_list *state __attribute__ ((unused)),
+                        int argc, char **args)
+{
+  return grub_cmd_handler_generic (argc, args, "terminal_input");
+}
+
+static grub_err_t
+grub_cmd_terminal_output (struct grub_arg_list *state __attribute__ ((unused)),
+                         int argc, char **args)
+{
+  return grub_cmd_handler_generic (argc, args, "terminal_output");
+}
+
+GRUB_MOD_INIT(handler)
+{
+  (void)mod;                   /* To stop warning. */
+  grub_register_command ("handler", grub_cmd_handler, GRUB_COMMAND_FLAG_BOTH,
+                        "handler [class [handler]]",
+                        "List or select a handler", 0);
+  grub_register_command ("terminal_input", grub_cmd_terminal_input,
+                        GRUB_COMMAND_FLAG_BOTH,
+                        "terminal_input [handler]",
+                        "List or select a handler", 0);
+  grub_register_command ("terminal_output", grub_cmd_terminal_output,
+                        GRUB_COMMAND_FLAG_BOTH,
+                        "terminal_output [handler]",
+                        "List or select a handler", 0);
+}
+
+GRUB_MOD_FINI(handler)
+{
+  grub_unregister_command ("terminal_input");
+  grub_unregister_command ("terminal_output");
+  grub_unregister_command ("handler");
+}

Deleted: trunk/grub2/commands/terminal.c
===================================================================
--- trunk/grub2/commands/terminal.c     2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/commands/terminal.c     2009-03-01 17:51:44 UTC (rev 2009)
@@ -1,132 +0,0 @@
-/* terminal.c - command to show and select a terminal */
-/*
- *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2003,2005,2007,2008  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/normal.h>
-#include <grub/dl.h>
-#include <grub/arg.h>
-#include <grub/misc.h>
-#include <grub/term.h>
-
-static grub_err_t
-grub_cmd_terminal_input (struct grub_arg_list *state __attribute__ ((unused)),
-                        int argc, char **args)
-{
-  grub_term_input_t term = 0;
-  
-  auto int print_terminal (grub_term_input_t);
-  auto int find_terminal (grub_term_input_t);
-  
-  int print_terminal (grub_term_input_t t)
-    {
-      grub_printf (" %s", t->name);
-      return 0;
-    }
-
-  int find_terminal (grub_term_input_t t)
-    {
-      if (grub_strcmp (t->name, args[0]) == 0)
-       {
-         term = t;
-         return 1;
-       }
-
-      return 0;
-    }
-  
-  if (argc == 0)
-    {
-      grub_printf ("Available input terminal(s):");
-      grub_term_iterate_input (print_terminal);
-      grub_putchar ('\n');
-      
-      grub_printf ("Current input terminal: %s\n", grub_term_get_current_input 
()->name);
-    }
-  else
-    {
-      grub_term_iterate_input (find_terminal);
-      if (! term)
-       return grub_error (GRUB_ERR_BAD_ARGUMENT, "no such input terminal");
-
-      grub_term_set_current_input (term);
-    }
-
-  return GRUB_ERR_NONE;
-}
-
-static grub_err_t
-grub_cmd_terminal_output (struct grub_arg_list *state __attribute__ ((unused)),
-                         int argc, char **args)
-{
-  grub_term_output_t term = 0;
-  
-  auto int print_terminal (grub_term_output_t);
-  auto int find_terminal (grub_term_output_t);
-  
-  int print_terminal (grub_term_output_t t)
-    {
-      grub_printf (" %s", t->name);
-      return 0;
-    }
-
-  int find_terminal (grub_term_output_t t)
-    {
-      if (grub_strcmp (t->name, args[0]) == 0)
-       {
-         term = t;
-         return 1;
-       }
-
-      return 0;
-    }
-  
-  if (argc == 0)
-    {
-      grub_printf ("Available output terminal(s):");
-      grub_term_iterate_output (print_terminal);
-      grub_putchar ('\n');
-      
-      grub_printf ("Current output terminal: %s\n", 
grub_term_get_current_output ()->name);
-    }
-  else
-    {
-      grub_term_iterate_output (find_terminal);
-      if (! term)
-       return grub_error (GRUB_ERR_BAD_ARGUMENT, "no such output terminal");
-
-      grub_term_set_current_output (term);
-    }
-
-  return GRUB_ERR_NONE;
-}
-
-
-GRUB_MOD_INIT(terminal)
-{
-  (void)mod;                   /* To stop warning. */
-  grub_register_command ("terminal_input", grub_cmd_terminal_input, 
GRUB_COMMAND_FLAG_BOTH,
-                        "terminal_input [TERM...]", "Select an input 
terminal.", 0);
-  grub_register_command ("terminal_output", grub_cmd_terminal_output, 
GRUB_COMMAND_FLAG_BOTH,
-                        "terminal_output [TERM...]", "Select an output 
terminal.", 0);
-}
-
-GRUB_MOD_FINI(terminal)
-{
-  grub_unregister_command ("terminal_input");
-  grub_unregister_command ("terminal_output");
-}

Modified: trunk/grub2/conf/common.mk
===================================================================
--- trunk/grub2/conf/common.mk  2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/common.mk  2009-03-01 17:51:44 UTC (rev 2009)
@@ -2427,7 +2427,7 @@
 scsi_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
 # Commands.
-pkglib_MODULES += hello.mod boot.mod terminal.mod ls.mod       \
+pkglib_MODULES += hello.mod boot.mod handler.mod ls.mod        \
        cmp.mod cat.mod help.mod search.mod                                     
\
        loopback.mod fs_uuid.mod configfile.mod echo.mod        \
        terminfo.mod test.mod blocklist.mod hexdump.mod         \
@@ -2547,62 +2547,62 @@
 boot_mod_CFLAGS = $(COMMON_CFLAGS)
 boot_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
-# For terminal.mod.
-terminal_mod_SOURCES = commands/terminal.c
-CLEANFILES += terminal.mod mod-terminal.o mod-terminal.c pre-terminal.o 
terminal_mod-commands_terminal.o und-terminal.lst
-ifneq ($(terminal_mod_EXPORTS),no)
-CLEANFILES += def-terminal.lst
-DEFSYMFILES += def-terminal.lst
+# For handler.mod.
+handler_mod_SOURCES = commands/handler.c
+CLEANFILES += handler.mod mod-handler.o mod-handler.c pre-handler.o 
handler_mod-commands_handler.o und-handler.lst
+ifneq ($(handler_mod_EXPORTS),no)
+CLEANFILES += def-handler.lst
+DEFSYMFILES += def-handler.lst
 endif
-MOSTLYCLEANFILES += terminal_mod-commands_terminal.d
-UNDSYMFILES += und-terminal.lst
+MOSTLYCLEANFILES += handler_mod-commands_handler.d
+UNDSYMFILES += und-handler.lst
 
-terminal.mod: pre-terminal.o mod-terminal.o $(TARGET_OBJ2ELF)
+handler.mod: pre-handler.o mod-handler.o $(TARGET_OBJ2ELF)
        -rm -f $@
-       $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) 
$(MODULE_LDFLAGS) -Wl,-r,-d -o $@ pre-terminal.o mod-terminal.o
+       $(TARGET_CC) $(handler_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-handler.o mod-handler.o
        if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f 
$@; exit 1); fi
        $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K 
_grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
 
-pre-terminal.o: $(terminal_mod_DEPENDENCIES) terminal_mod-commands_terminal.o
+pre-handler.o: $(handler_mod_DEPENDENCIES) handler_mod-commands_handler.o
        -rm -f $@
-       $(TARGET_CC) $(terminal_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
terminal_mod-commands_terminal.o
+       $(TARGET_CC) $(handler_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
handler_mod-commands_handler.o
 
-mod-terminal.o: mod-terminal.c
-       $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) 
-c -o $@ $<
+mod-handler.o: mod-handler.c
+       $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(handler_mod_CFLAGS) 
-c -o $@ $<
 
-mod-terminal.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh
-       sh $(srcdir)/genmodsrc.sh 'terminal' $< > $@ || (rm -f $@; exit 1)
+mod-handler.c: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh
+       sh $(srcdir)/genmodsrc.sh 'handler' $< > $@ || (rm -f $@; exit 1)
 
-ifneq ($(terminal_mod_EXPORTS),no)
-def-terminal.lst: pre-terminal.o
-       $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 terminal/' > 
$@
+ifneq ($(handler_mod_EXPORTS),no)
+def-handler.lst: pre-handler.o
+       $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 handler/' > $@
 endif
 
-und-terminal.lst: pre-terminal.o
-       echo 'terminal' > $@
+und-handler.lst: pre-handler.o
+       echo 'handler' > $@
        $(NM) -u -P -p $< | cut -f1 -d' ' >> $@
 
-terminal_mod-commands_terminal.o: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES)
-       $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -MD -c -o $@ $<
--include terminal_mod-commands_terminal.d
+handler_mod-commands_handler.o: commands/handler.c 
$(commands/handler.c_DEPENDENCIES)
+       $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(handler_mod_CFLAGS) -MD -c -o $@ $<
+-include handler_mod-commands_handler.d
 
-CLEANFILES += cmd-terminal_mod-commands_terminal.lst 
fs-terminal_mod-commands_terminal.lst partmap-terminal_mod-commands_terminal.lst
-COMMANDFILES += cmd-terminal_mod-commands_terminal.lst
-FSFILES += fs-terminal_mod-commands_terminal.lst
-PARTMAPFILES += partmap-terminal_mod-commands_terminal.lst
+CLEANFILES += cmd-handler_mod-commands_handler.lst 
fs-handler_mod-commands_handler.lst partmap-handler_mod-commands_handler.lst
+COMMANDFILES += cmd-handler_mod-commands_handler.lst
+FSFILES += fs-handler_mod-commands_handler.lst
+PARTMAPFILES += partmap-handler_mod-commands_handler.lst
 
-cmd-terminal_mod-commands_terminal.lst: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES) gencmdlist.sh
-       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $<           | sh 
$(srcdir)/gencmdlist.sh terminal > $@ || (rm -f $@; exit 1)
+cmd-handler_mod-commands_handler.lst: commands/handler.c 
$(commands/handler.c_DEPENDENCIES) gencmdlist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(handler_mod_CFLAGS) -E $<    | sh 
$(srcdir)/gencmdlist.sh handler > $@ || (rm -f $@; exit 1)
 
-fs-terminal_mod-commands_terminal.lst: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES) genfslist.sh
-       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genfslist.sh terminal > $@ || (rm -f $@; exit 1)
+fs-handler_mod-commands_handler.lst: commands/handler.c 
$(commands/handler.c_DEPENDENCIES) genfslist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(handler_mod_CFLAGS) -E $<    | sh 
$(srcdir)/genfslist.sh handler > $@ || (rm -f $@; exit 1)
 
-partmap-terminal_mod-commands_terminal.lst: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES) genpartmaplist.sh
-       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(terminal_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genpartmaplist.sh terminal > $@ || (rm -f $@; exit 1)
+partmap-handler_mod-commands_handler.lst: commands/handler.c 
$(commands/handler.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(handler_mod_CFLAGS) -E $<    | sh 
$(srcdir)/genpartmaplist.sh handler > $@ || (rm -f $@; exit 1)
 
 
-terminal_mod_CFLAGS = $(COMMON_CFLAGS)
-terminal_mod_LDFLAGS = $(COMMON_LDFLAGS)
+handler_mod_CFLAGS = $(COMMON_CFLAGS)
+handler_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
 # For ls.mod.
 ls_mod_SOURCES = commands/ls.c

Modified: trunk/grub2/conf/common.rmk
===================================================================
--- trunk/grub2/conf/common.rmk 2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/common.rmk 2009-03-01 17:51:44 UTC (rev 2009)
@@ -330,7 +330,7 @@
 scsi_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
 # Commands.
-pkglib_MODULES += hello.mod boot.mod terminal.mod ls.mod       \
+pkglib_MODULES += hello.mod boot.mod handler.mod ls.mod        \
        cmp.mod cat.mod help.mod search.mod                                     
\
        loopback.mod fs_uuid.mod configfile.mod echo.mod        \
        terminfo.mod test.mod blocklist.mod hexdump.mod         \
@@ -346,10 +346,10 @@
 boot_mod_CFLAGS = $(COMMON_CFLAGS)
 boot_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
-# For terminal.mod.
-terminal_mod_SOURCES = commands/terminal.c
-terminal_mod_CFLAGS = $(COMMON_CFLAGS)
-terminal_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# For handler.mod.
+handler_mod_SOURCES = commands/handler.c
+handler_mod_CFLAGS = $(COMMON_CFLAGS)
+handler_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
 # For ls.mod.
 ls_mod_SOURCES = commands/ls.c

Modified: trunk/grub2/conf/i386-coreboot.mk
===================================================================
--- trunk/grub2/conf/i386-coreboot.mk   2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-coreboot.mk   2009-03-01 17:51:44 UTC (rev 2009)
@@ -18,7 +18,7 @@
        kern/main.c kern/device.c \
        kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/dl.c kern/parser.c kern/partition.c \
        kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/rtc_get_time_ms.c \
@@ -27,11 +27,11 @@
        term/i386/pc/vga_text.c term/i386/vga_common.c \
        term/i386/pc/at_keyboard.c \
        symlist.c
-CLEANFILES += kernel.elf kernel_elf-kern_i386_coreboot_startup.o 
kernel_elf-kern_i386_coreboot_init.o kernel_elf-kern_i386_multiboot_mmap.o 
kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o 
kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o 
kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
kernel_elf-kern_time.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o 
kernel_elf-kern_partition.o kernel_elf-kern_i386_tsc.o 
kernel_elf-kern_i386_pit.o kernel_elf-kern_generic_rtc_get_time_ms.o 
kernel_elf-kern_generic_millisleep.o kernel_elf-kern_env.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-term_i386_vga_common.o 
kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-symlist.o
-MOSTLYCLEANFILES += kernel_elf-kern_i386_coreboot_startup.d 
kernel_elf-kern_i386_coreboot_init.d kernel_elf-kern_i386_multiboot_mmap.d 
kernel_elf-kern_main.d kernel_elf-kern_device.d kernel_elf-kern_disk.d 
kernel_elf-kern_dl.d kernel_elf-kern_file.d kernel_elf-kern_fs.d 
kernel_elf-kern_err.d kernel_elf-kern_misc.d kernel_elf-kern_mm.d 
kernel_elf-kern_loader.d kernel_elf-kern_rescue.d kernel_elf-kern_term.d 
kernel_elf-kern_time.d kernel_elf-kern_i386_dl.d kernel_elf-kern_parser.d 
kernel_elf-kern_partition.d kernel_elf-kern_i386_tsc.d 
kernel_elf-kern_i386_pit.d kernel_elf-kern_generic_rtc_get_time_ms.d 
kernel_elf-kern_generic_millisleep.d kernel_elf-kern_env.d 
kernel_elf-term_i386_pc_vga_text.d kernel_elf-term_i386_vga_common.d 
kernel_elf-term_i386_pc_at_keyboard.d kernel_elf-symlist.d
+CLEANFILES += kernel.elf kernel_elf-kern_i386_coreboot_startup.o 
kernel_elf-kern_i386_coreboot_init.o kernel_elf-kern_i386_multiboot_mmap.o 
kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o 
kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o 
kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
kernel_elf-kern_time.o kernel_elf-kern_list.o kernel_elf-kern_handler.o 
kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o 
kernel_elf-kern_i386_tsc.o kernel_elf-kern_i386_pit.o 
kernel_elf-kern_generic_rtc_get_time_ms.o kernel_elf-kern_generic_millisleep.o 
kernel_elf-kern_env.o kernel_elf-term_i386_pc_vga_text.o 
kernel_elf-term_i386_vga_common.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-symlist.o
+MOSTLYCLEANFILES += kernel_elf-kern_i386_coreboot_startup.d 
kernel_elf-kern_i386_coreboot_init.d kernel_elf-kern_i386_multiboot_mmap.d 
kernel_elf-kern_main.d kernel_elf-kern_device.d kernel_elf-kern_disk.d 
kernel_elf-kern_dl.d kernel_elf-kern_file.d kernel_elf-kern_fs.d 
kernel_elf-kern_err.d kernel_elf-kern_misc.d kernel_elf-kern_mm.d 
kernel_elf-kern_loader.d kernel_elf-kern_rescue.d kernel_elf-kern_term.d 
kernel_elf-kern_time.d kernel_elf-kern_list.d kernel_elf-kern_handler.d 
kernel_elf-kern_i386_dl.d kernel_elf-kern_parser.d kernel_elf-kern_partition.d 
kernel_elf-kern_i386_tsc.d kernel_elf-kern_i386_pit.d 
kernel_elf-kern_generic_rtc_get_time_ms.d kernel_elf-kern_generic_millisleep.d 
kernel_elf-kern_env.d kernel_elf-term_i386_pc_vga_text.d 
kernel_elf-term_i386_vga_common.d kernel_elf-term_i386_pc_at_keyboard.d 
kernel_elf-symlist.d
 
-kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_coreboot_startup.o 
kernel_elf-kern_i386_coreboot_init.o kernel_elf-kern_i386_multiboot_mmap.o 
kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o 
kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o 
kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
kernel_elf-kern_time.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o 
kernel_elf-kern_partition.o kernel_elf-kern_i386_tsc.o 
kernel_elf-kern_i386_pit.o kernel_elf-kern_generic_rtc_get_time_ms.o 
kernel_elf-kern_generic_millisleep.o kernel_elf-kern_env.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-term_i386_vga_common.o 
kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-symlist.o
-       $(TARGET_CC) -o $@ kernel_elf-kern_i386_coreboot_startup.o 
kernel_elf-kern_i386_coreboot_init.o kernel_elf-kern_i386_multiboot_mmap.o 
kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o 
kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o 
kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
kernel_elf-kern_time.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o 
kernel_elf-kern_partition.o kernel_elf-kern_i386_tsc.o 
kernel_elf-kern_i386_pit.o kernel_elf-kern_generic_rtc_get_time_ms.o 
kernel_elf-kern_generic_millisleep.o kernel_elf-kern_env.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-term_i386_vga_common.o 
kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-symlist.o $(TARGET_LDFLAGS) 
$(kernel_elf_LDFLAGS)
+kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_coreboot_startup.o 
kernel_elf-kern_i386_coreboot_init.o kernel_elf-kern_i386_multiboot_mmap.o 
kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o 
kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o 
kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
kernel_elf-kern_time.o kernel_elf-kern_list.o kernel_elf-kern_handler.o 
kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o 
kernel_elf-kern_i386_tsc.o kernel_elf-kern_i386_pit.o 
kernel_elf-kern_generic_rtc_get_time_ms.o kernel_elf-kern_generic_millisleep.o 
kernel_elf-kern_env.o kernel_elf-term_i386_pc_vga_text.o 
kernel_elf-term_i386_vga_common.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-symlist.o
+       $(TARGET_CC) -o $@ kernel_elf-kern_i386_coreboot_startup.o 
kernel_elf-kern_i386_coreboot_init.o kernel_elf-kern_i386_multiboot_mmap.o 
kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o 
kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o 
kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o 
kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o 
kernel_elf-kern_time.o kernel_elf-kern_list.o kernel_elf-kern_handler.o 
kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o 
kernel_elf-kern_i386_tsc.o kernel_elf-kern_i386_pit.o 
kernel_elf-kern_generic_rtc_get_time_ms.o kernel_elf-kern_generic_millisleep.o 
kernel_elf-kern_env.o kernel_elf-term_i386_pc_vga_text.o 
kernel_elf-term_i386_vga_common.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-symlist.o $(TARGET_LDFLAGS) $(kernel_elf_LDFLAGS)
 
 kernel_elf-kern_i386_coreboot_startup.o: kern/i386/coreboot/startup.S 
$(kern/i386/coreboot/startup.S_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386/coreboot -I$(srcdir)/kern/i386/coreboot 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
@@ -97,6 +97,14 @@
        $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_time.d
 
+kernel_elf-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
+-include kernel_elf-kern_list.d
+
+kernel_elf-kern_handler.o: kern/handler.c $(kern/handler.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
+-include kernel_elf-kern_handler.d
+
 kernel_elf-kern_i386_dl.o: kern/i386/dl.c $(kern/i386/dl.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_i386_dl.d
@@ -149,7 +157,7 @@
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
        machine/boot.h machine/console.h machine/init.h \
-       machine/memory.h machine/loader.h
+       machine/memory.h machine/loader.h list.h handler.h
 kernel_elf_CFLAGS = $(COMMON_CFLAGS)
 kernel_elf_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_elf_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x8200,-Bstatic
@@ -190,7 +198,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/echo.c commands/help.c           \
-       commands/terminal.c commands/ls.c commands/test.c               \
+       commands/handler.c commands/ls.c commands/test.c                \
        commands/search.c commands/blocklist.c commands/hexdump.c       \
        lib/hexdump.c commands/i386/cpuid.c                             \
        disk/host.c disk/loopback.c                                     \
@@ -221,11 +229,11 @@
        disk/raid.c disk/raid5_recover.c disk/raid6_recover.c           \
        disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c             \
        grub_emu_init.c
-CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
-MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-lib_hexdump.d grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d 
grub_emu-disk_loopback.d grub_emu-fs_affs.d grub_emu-fs_cpio.d 
grub_emu-fs_fat.d grub_emu-fs_ext2.d grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d 
grub_emu-fs_iso9660.d grub_emu-fs_udf.d grub_emu-fs_jfs.d grub_emu-fs_minix.d 
grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d grub_emu-fs_reiserfs.d 
grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d grub_emu-fs_afs.d 
grub_emu-fs_tar.d grub_emu-fs_fshelp.d grub_emu-io_gzio.d 
grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d 
grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_menu_text.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_misc.d grub_emu-normal_script.d 
grub_emu-normal_color.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-partmap_gpt.d grub_emu-util_console.d grub_emu-util_hostfs.d 
grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_hostdisk.d 
grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d grub_emu-disk_raid.d 
grub_emu-disk_raid5_recover.d grub_emu-disk_raid6_recover.d 
grub_emu-disk_mdraid_linux.d grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d 
grub_emu-grub_emu_init.d
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_handler.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
+MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_handler.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-lib_hexdump.d grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d 
grub_emu-disk_loopback.d grub_emu-fs_affs.d grub_emu-fs_cpio.d 
grub_emu-fs_fat.d grub_emu-fs_ext2.d grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d 
grub_emu-fs_iso9660.d grub_emu-fs_udf.d grub_emu-fs_jfs.d grub_emu-fs_minix.d 
grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d grub_emu-fs_reiserfs.d 
grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d grub_emu-fs_afs.d 
grub_emu-fs_tar.d grub_emu-fs_fshelp.d grub_emu-io_gzio.d 
grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d 
grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_menu_text.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_misc.d grub_emu-normal_script.d 
grub_emu-normal_color.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-partmap_gpt.d grub_emu-util_console.d grub_emu-util_hostfs.d 
grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_hostdisk.d 
grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d grub_emu-disk_raid.d 
grub_emu-disk_raid5_recover.d grub_emu-disk_raid6_recover.d 
grub_emu-disk_mdraid_linux.d grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d 
grub_emu-grub_emu_init.d
 
-grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
-       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o $(LDFLAGS) $(grub_emu_LDFLAGS)
+grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_handler.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
+       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_handler.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o 
grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o grub_emu-fs_minix.o 
grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o grub_emu-fs_reiserfs.o 
grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-fs_afs.o 
grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o $(LDFLAGS) $(grub_emu_LDFLAGS)
 
 grub_emu-commands_boot.o: commands/boot.c $(commands/boot.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
@@ -251,9 +259,9 @@
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
 -include grub_emu-commands_help.d
 
-grub_emu-commands_terminal.o: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES)
+grub_emu-commands_handler.o: commands/handler.c 
$(commands/handler.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
--include grub_emu-commands_terminal.d
+-include grub_emu-commands_handler.d
 
 grub_emu-commands_ls.o: commands/ls.c $(commands/ls.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<

Modified: trunk/grub2/conf/i386-coreboot.rmk
===================================================================
--- trunk/grub2/conf/i386-coreboot.rmk  2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-coreboot.rmk  2009-03-01 17:51:44 UTC (rev 2009)
@@ -17,7 +17,7 @@
        kern/main.c kern/device.c \
        kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/dl.c kern/parser.c kern/partition.c \
        kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/rtc_get_time_ms.c \
@@ -30,7 +30,7 @@
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
        machine/boot.h machine/console.h machine/init.h \
-       machine/memory.h machine/loader.h
+       machine/memory.h machine/loader.h list.h handler.h
 kernel_elf_CFLAGS = $(COMMON_CFLAGS)
 kernel_elf_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_elf_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x8200,-Bstatic
@@ -57,7 +57,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/echo.c commands/help.c           \
-       commands/terminal.c commands/ls.c commands/test.c               \
+       commands/handler.c commands/ls.c commands/test.c                \
        commands/search.c commands/blocklist.c commands/hexdump.c       \
        lib/hexdump.c commands/i386/cpuid.c                             \
        disk/host.c disk/loopback.c                                     \

Modified: trunk/grub2/conf/i386-efi.mk
===================================================================
--- trunk/grub2/conf/i386-efi.mk        2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-efi.mk        2009-03-01 17:51:44 UTC (rev 2009)
@@ -67,7 +67,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/help.c                           \
-       commands/terminal.c commands/ls.c commands/test.c               \
+       commands/handler.c commands/ls.c commands/test.c                \
        commands/search.c commands/hexdump.c lib/hexdump.c              \
        commands/halt.c commands/reboot.c                               \
        commands/i386/cpuid.c                                           \
@@ -127,16 +127,16 @@
        kern/i386/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \
        kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \
        term/efi/console.c disk/efi/efidisk.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/rtc_get_time_ms.c \
        kern/generic/millisleep.c
-CLEANFILES += kernel.mod mod-kernel.o mod-kernel.c pre-kernel.o 
kernel_mod-kern_i386_efi_startup.o kernel_mod-kern_main.o 
kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o 
kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o 
kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o 
kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_i386_dl.o 
kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o 
kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o 
kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o 
kernel_mod-kern_time.o kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-kern_generic_millisleep.o 
und-kernel.lst
+CLEANFILES += kernel.mod mod-kernel.o mod-kernel.c pre-kernel.o 
kernel_mod-kern_i386_efi_startup.o kernel_mod-kern_main.o 
kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o 
kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o 
kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o 
kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_i386_dl.o 
kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o 
kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o 
kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o 
kernel_mod-kern_time.o kernel_mod-kern_list.o kernel_mod-kern_handler.o 
kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-kern_generic_millisleep.o 
und-kernel.lst
 ifneq ($(kernel_mod_EXPORTS),no)
 CLEANFILES += def-kernel.lst
 DEFSYMFILES += def-kernel.lst
 endif
-MOSTLYCLEANFILES += kernel_mod-kern_i386_efi_startup.d kernel_mod-kern_main.d 
kernel_mod-kern_device.d kernel_mod-kern_disk.d kernel_mod-kern_dl.d 
kernel_mod-kern_file.d kernel_mod-kern_fs.d kernel_mod-kern_err.d 
kernel_mod-kern_misc.d kernel_mod-kern_mm.d kernel_mod-kern_loader.d 
kernel_mod-kern_rescue.d kernel_mod-kern_term.d kernel_mod-kern_i386_dl.d 
kernel_mod-kern_i386_efi_init.d kernel_mod-kern_parser.d 
kernel_mod-kern_partition.d kernel_mod-kern_env.d kernel_mod-symlist.d 
kernel_mod-kern_efi_efi.d kernel_mod-kern_efi_init.d kernel_mod-kern_efi_mm.d 
kernel_mod-term_efi_console.d kernel_mod-disk_efi_efidisk.d 
kernel_mod-kern_time.d kernel_mod-kern_i386_tsc.d kernel_mod-kern_i386_pit.d 
kernel_mod-kern_generic_rtc_get_time_ms.d kernel_mod-kern_generic_millisleep.d
+MOSTLYCLEANFILES += kernel_mod-kern_i386_efi_startup.d kernel_mod-kern_main.d 
kernel_mod-kern_device.d kernel_mod-kern_disk.d kernel_mod-kern_dl.d 
kernel_mod-kern_file.d kernel_mod-kern_fs.d kernel_mod-kern_err.d 
kernel_mod-kern_misc.d kernel_mod-kern_mm.d kernel_mod-kern_loader.d 
kernel_mod-kern_rescue.d kernel_mod-kern_term.d kernel_mod-kern_i386_dl.d 
kernel_mod-kern_i386_efi_init.d kernel_mod-kern_parser.d 
kernel_mod-kern_partition.d kernel_mod-kern_env.d kernel_mod-symlist.d 
kernel_mod-kern_efi_efi.d kernel_mod-kern_efi_init.d kernel_mod-kern_efi_mm.d 
kernel_mod-term_efi_console.d kernel_mod-disk_efi_efidisk.d 
kernel_mod-kern_time.d kernel_mod-kern_list.d kernel_mod-kern_handler.d 
kernel_mod-kern_i386_tsc.d kernel_mod-kern_i386_pit.d 
kernel_mod-kern_generic_rtc_get_time_ms.d kernel_mod-kern_generic_millisleep.d
 UNDSYMFILES += und-kernel.lst
 
 kernel.mod: pre-kernel.o mod-kernel.o $(TARGET_OBJ2ELF)
@@ -145,9 +145,9 @@
        if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f 
$@; exit 1); fi
        $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K 
_grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
 
-pre-kernel.o: $(kernel_mod_DEPENDENCIES) kernel_mod-kern_i386_efi_startup.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_i386_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-term_efi_console.o 
kernel_mod-disk_efi_efidisk.o kernel_mod-kern_time.o kernel_mod-kern_i386_tsc.o 
kernel_mod-kern_i386_pit.o kernel_mod-kern_generic_rtc_get_time_ms.o 
kernel_mod-kern_generic_millisleep.o
+pre-kernel.o: $(kernel_mod_DEPENDENCIES) kernel_mod-kern_i386_efi_startup.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_i386_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-term_efi_console.o 
kernel_mod-disk_efi_efidisk.o kernel_mod-kern_time.o kernel_mod-kern_list.o 
kernel_mod-kern_handler.o kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-kern_generic_millisleep.o
        -rm -f $@
-       $(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
kernel_mod-kern_i386_efi_startup.o kernel_mod-kern_main.o 
kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o 
kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o 
kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o 
kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_i386_dl.o 
kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o 
kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o 
kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o 
kernel_mod-kern_time.o kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-kern_generic_millisleep.o
+       $(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
kernel_mod-kern_i386_efi_startup.o kernel_mod-kern_main.o 
kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o 
kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o 
kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o 
kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_i386_dl.o 
kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o 
kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o 
kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o 
kernel_mod-kern_time.o kernel_mod-kern_list.o kernel_mod-kern_handler.o 
kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-kern_generic_millisleep.o
 
 mod-kernel.o: mod-kernel.c
        $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) 
-c -o $@ $<
@@ -639,6 +639,44 @@
        set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
 
 
+kernel_mod-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
+-include kernel_mod-kern_list.d
+
+CLEANFILES += cmd-kernel_mod-kern_list.lst fs-kernel_mod-kern_list.lst 
partmap-kernel_mod-kern_list.lst
+COMMANDFILES += cmd-kernel_mod-kern_list.lst
+FSFILES += fs-kernel_mod-kern_list.lst
+PARTMAPFILES += partmap-kernel_mod-kern_list.lst
+
+cmd-kernel_mod-kern_list.lst: kern/list.c $(kern/list.c_DEPENDENCIES) 
gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/gencmdlist.sh kernel > $@ || (rm -f $@; exit 1)
+
+fs-kernel_mod-kern_list.lst: kern/list.c $(kern/list.c_DEPENDENCIES) 
genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genfslist.sh kernel > $@ || (rm -f $@; exit 1)
+
+partmap-kernel_mod-kern_list.lst: kern/list.c $(kern/list.c_DEPENDENCIES) 
genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
+
+
+kernel_mod-kern_handler.o: kern/handler.c $(kern/handler.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
+-include kernel_mod-kern_handler.d
+
+CLEANFILES += cmd-kernel_mod-kern_handler.lst fs-kernel_mod-kern_handler.lst 
partmap-kernel_mod-kern_handler.lst
+COMMANDFILES += cmd-kernel_mod-kern_handler.lst
+FSFILES += fs-kernel_mod-kern_handler.lst
+PARTMAPFILES += partmap-kernel_mod-kern_handler.lst
+
+cmd-kernel_mod-kern_handler.lst: kern/handler.c $(kern/handler.c_DEPENDENCIES) 
gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/gencmdlist.sh kernel > $@ || (rm -f $@; exit 1)
+
+fs-kernel_mod-kern_handler.lst: kern/handler.c $(kern/handler.c_DEPENDENCIES) 
genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genfslist.sh kernel > $@ || (rm -f $@; exit 1)
+
+partmap-kernel_mod-kern_handler.lst: kern/handler.c 
$(kern/handler.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
+
+
 kernel_mod-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
 -include kernel_mod-kern_i386_tsc.d
@@ -718,7 +756,7 @@
 kernel_mod_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h 
\
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
-       efi/efi.h efi/time.h efi/disk.h
+       efi/efi.h efi/time.h efi/disk.h list.h handler.h
 kernel_mod_CFLAGS = $(COMMON_CFLAGS)
 kernel_mod_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_mod_LDFLAGS = $(COMMON_LDFLAGS)

Modified: trunk/grub2/conf/i386-efi.rmk
===================================================================
--- trunk/grub2/conf/i386-efi.rmk       2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-efi.rmk       2009-03-01 17:51:44 UTC (rev 2009)
@@ -34,7 +34,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/help.c                           \
-       commands/terminal.c commands/ls.c commands/test.c               \
+       commands/handler.c commands/ls.c commands/test.c                \
        commands/search.c commands/hexdump.c lib/hexdump.c              \
        commands/halt.c commands/reboot.c                               \
        commands/i386/cpuid.c                                           \
@@ -88,14 +88,14 @@
        kern/i386/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \
        kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \
        term/efi/console.c disk/efi/efidisk.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/rtc_get_time_ms.c \
        kern/generic/millisleep.c
 kernel_mod_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h 
\
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
-       efi/efi.h efi/time.h efi/disk.h
+       efi/efi.h efi/time.h efi/disk.h list.h handler.h
 kernel_mod_CFLAGS = $(COMMON_CFLAGS)
 kernel_mod_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_mod_LDFLAGS = $(COMMON_LDFLAGS)

Modified: trunk/grub2/conf/i386-ieee1275.mk
===================================================================
--- trunk/grub2/conf/i386-ieee1275.mk   2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-ieee1275.mk   2009-03-01 17:51:44 UTC (rev 2009)
@@ -21,17 +21,17 @@
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
        kern/i386/dl.c kern/parser.c kern/partition.c \
        kern/env.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/generic/millisleep.c \
        kern/ieee1275/ieee1275.c \
        term/ieee1275/ofconsole.c \
        disk/ieee1275/ofdisk.c \
        symlist.c
-CLEANFILES += kernel.elf kernel_elf-kern_i386_ieee1275_startup.o 
kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o 
kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o 
kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o 
kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o 
kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o 
kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o 
kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o 
kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
-MOSTLYCLEANFILES += kernel_elf-kern_i386_ieee1275_startup.d 
kernel_elf-kern_i386_ieee1275_init.d kernel_elf-kern_ieee1275_init.d 
kernel_elf-kern_ieee1275_mmap.d kernel_elf-kern_ieee1275_cmain.d 
kernel_elf-kern_ieee1275_openfw.d kernel_elf-kern_main.d 
kernel_elf-kern_device.d kernel_elf-kern_disk.d kernel_elf-kern_dl.d 
kernel_elf-kern_file.d kernel_elf-kern_fs.d kernel_elf-kern_err.d 
kernel_elf-kern_misc.d kernel_elf-kern_mm.d kernel_elf-kern_loader.d 
kernel_elf-kern_rescue.d kernel_elf-kern_term.d kernel_elf-kern_i386_dl.d 
kernel_elf-kern_parser.d kernel_elf-kern_partition.d kernel_elf-kern_env.d 
kernel_elf-kern_time.d kernel_elf-kern_generic_millisleep.d 
kernel_elf-kern_ieee1275_ieee1275.d kernel_elf-term_ieee1275_ofconsole.d 
kernel_elf-disk_ieee1275_ofdisk.d kernel_elf-symlist.d
+CLEANFILES += kernel.elf kernel_elf-kern_i386_ieee1275_startup.o 
kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o 
kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o 
kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o 
kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o 
kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o 
kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
kernel_elf-kern_time.o kernel_elf-kern_list.o kernel_elf-kern_handler.o 
kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o 
kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o 
kernel_elf-symlist.o
+MOSTLYCLEANFILES += kernel_elf-kern_i386_ieee1275_startup.d 
kernel_elf-kern_i386_ieee1275_init.d kernel_elf-kern_ieee1275_init.d 
kernel_elf-kern_ieee1275_mmap.d kernel_elf-kern_ieee1275_cmain.d 
kernel_elf-kern_ieee1275_openfw.d kernel_elf-kern_main.d 
kernel_elf-kern_device.d kernel_elf-kern_disk.d kernel_elf-kern_dl.d 
kernel_elf-kern_file.d kernel_elf-kern_fs.d kernel_elf-kern_err.d 
kernel_elf-kern_misc.d kernel_elf-kern_mm.d kernel_elf-kern_loader.d 
kernel_elf-kern_rescue.d kernel_elf-kern_term.d kernel_elf-kern_i386_dl.d 
kernel_elf-kern_parser.d kernel_elf-kern_partition.d kernel_elf-kern_env.d 
kernel_elf-kern_time.d kernel_elf-kern_list.d kernel_elf-kern_handler.d 
kernel_elf-kern_generic_millisleep.d kernel_elf-kern_ieee1275_ieee1275.d 
kernel_elf-term_ieee1275_ofconsole.d kernel_elf-disk_ieee1275_ofdisk.d 
kernel_elf-symlist.d
 
-kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_ieee1275_startup.o 
kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o 
kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o 
kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o 
kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o 
kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o 
kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o 
kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o 
kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
-       $(TARGET_CC) -o $@ kernel_elf-kern_i386_ieee1275_startup.o 
kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o 
kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o 
kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o 
kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o 
kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o 
kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
kernel_elf-kern_time.o kernel_elf-kern_generic_millisleep.o 
kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o 
kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o $(TARGET_LDFLAGS) 
$(kernel_elf_LDFLAGS)
+kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_ieee1275_startup.o 
kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o 
kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o 
kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o 
kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o 
kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o 
kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
kernel_elf-kern_time.o kernel_elf-kern_list.o kernel_elf-kern_handler.o 
kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o 
kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o 
kernel_elf-symlist.o
+       $(TARGET_CC) -o $@ kernel_elf-kern_i386_ieee1275_startup.o 
kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_ieee1275_init.o 
kernel_elf-kern_ieee1275_mmap.o kernel_elf-kern_ieee1275_cmain.o 
kernel_elf-kern_ieee1275_openfw.o kernel_elf-kern_main.o 
kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o 
kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o 
kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o 
kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o 
kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o 
kernel_elf-kern_time.o kernel_elf-kern_list.o kernel_elf-kern_handler.o 
kernel_elf-kern_generic_millisleep.o kernel_elf-kern_ieee1275_ieee1275.o 
kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o 
kernel_elf-symlist.o $(TARGET_LDFLAGS) $(kernel_elf_LDFLAGS)
 
 kernel_elf-kern_i386_ieee1275_startup.o: kern/i386/ieee1275/startup.S 
$(kern/i386/ieee1275/startup.S_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386/ieee1275 -I$(srcdir)/kern/i386/ieee1275 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
@@ -125,6 +125,14 @@
        $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_time.d
 
+kernel_elf-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
+-include kernel_elf-kern_list.d
+
+kernel_elf-kern_handler.o: kern/handler.c $(kern/handler.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
+-include kernel_elf-kern_handler.d
+
 kernel_elf-kern_generic_millisleep.o: kern/generic/millisleep.c 
$(kern/generic/millisleep.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_generic_millisleep.d
@@ -148,7 +156,8 @@
 kernel_elf_HEADERS = arg.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
-       ieee1275/ieee1275.h machine/kernel.h machine/loader.h machine/memory.h
+       ieee1275/ieee1275.h machine/kernel.h machine/loader.h machine/memory.h \
+       list.h handler.h
 kernel_elf_CFLAGS = $(COMMON_CFLAGS)
 kernel_elf_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic
 
@@ -188,7 +197,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/echo.c commands/help.c           \
-       commands/terminal.c commands/ls.c commands/test.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/i386/cpuid.c                                           \
@@ -220,11 +229,11 @@
        disk/raid.c disk/raid5_recover.c disk/raid6_recover.c           \
        disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c             \
        grub_emu_init.c
-CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
-MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-lib_hexdump.d grub_emu-commands_halt.d grub_emu-commands_reboot.d 
grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d grub_emu-disk_loopback.d 
grub_emu-fs_affs.d grub_emu-fs_cpio.d grub_emu-fs_fat.d grub_emu-fs_ext2.d 
grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d 
grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_tar.d grub_emu-fs_fshelp.d grub_emu-io_gzio.d 
grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d 
grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_menu_text.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_misc.d grub_emu-normal_script.d 
grub_emu-normal_color.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-partmap_gpt.d grub_emu-util_console.d grub_emu-util_hostfs.d 
grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_hostdisk.d 
grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d grub_emu-disk_raid.d 
grub_emu-disk_raid5_recover.d grub_emu-disk_raid6_recover.d 
grub_emu-disk_mdraid_linux.d grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d 
grub_emu-grub_emu_init.d
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_handler.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
+MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_handler.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-lib_hexdump.d grub_emu-commands_halt.d grub_emu-commands_reboot.d 
grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d grub_emu-disk_loopback.d 
grub_emu-fs_affs.d grub_emu-fs_cpio.d grub_emu-fs_fat.d grub_emu-fs_ext2.d 
grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d 
grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_tar.d grub_emu-fs_fshelp.d grub_emu-io_gzio.d 
grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.d 
grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_menu_text.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_misc.d grub_emu-normal_script.d 
grub_emu-normal_color.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-partmap_gpt.d grub_emu-util_console.d grub_emu-util_hostfs.d 
grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_hostdisk.d 
grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d grub_emu-disk_raid.d 
grub_emu-disk_raid5_recover.d grub_emu-disk_raid6_recover.d 
grub_emu-disk_mdraid_linux.d grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d 
grub_emu-grub_emu_init.d
 
-grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
-       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o $(LDFLAGS) $(grub_emu_LDFLAGS)
+grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_handler.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o
+       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_handler.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o grub_emu-disk_loopback.o 
grub_emu-fs_affs.o grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-fs_fshelp.o grub_emu-io_gzio.o 
grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.o 
grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_menu_text.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-partmap_gpt.o grub_emu-util_console.o grub_emu-util_hostfs.o 
grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_hostdisk.o 
grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_emu_init.o $(LDFLAGS) $(grub_emu_LDFLAGS)
 
 grub_emu-commands_boot.o: commands/boot.c $(commands/boot.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
@@ -250,9 +259,9 @@
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
 -include grub_emu-commands_help.d
 
-grub_emu-commands_terminal.o: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES)
+grub_emu-commands_handler.o: commands/handler.c 
$(commands/handler.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
--include grub_emu-commands_terminal.d
+-include grub_emu-commands_handler.d
 
 grub_emu-commands_ls.o: commands/ls.c $(commands/ls.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<

Modified: trunk/grub2/conf/i386-ieee1275.rmk
===================================================================
--- trunk/grub2/conf/i386-ieee1275.rmk  2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-ieee1275.rmk  2009-03-01 17:51:44 UTC (rev 2009)
@@ -20,7 +20,7 @@
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
        kern/i386/dl.c kern/parser.c kern/partition.c \
        kern/env.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/generic/millisleep.c \
        kern/ieee1275/ieee1275.c \
        term/ieee1275/ofconsole.c \
@@ -29,7 +29,8 @@
 kernel_elf_HEADERS = arg.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
-       ieee1275/ieee1275.h machine/kernel.h machine/loader.h machine/memory.h
+       ieee1275/ieee1275.h machine/kernel.h machine/loader.h machine/memory.h \
+       list.h handler.h
 kernel_elf_CFLAGS = $(COMMON_CFLAGS)
 kernel_elf_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic
 
@@ -55,7 +56,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/echo.c commands/help.c           \
-       commands/terminal.c commands/ls.c commands/test.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/i386/cpuid.c                                           \

Modified: trunk/grub2/conf/i386-pc.mk
===================================================================
--- trunk/grub2/conf/i386-pc.mk 2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-pc.mk 2009-03-01 17:51:44 UTC (rev 2009)
@@ -108,7 +108,7 @@
 kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
        kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/dl.c kern/i386/pc/init.c kern/i386/pc/mmap.c \
        kern/parser.c kern/partition.c \
        kern/i386/tsc.c kern/i386/pit.c \
@@ -117,13 +117,13 @@
        kern/env.c \
        term/i386/pc/console.c term/i386/vga_common.c \
        symlist.c
-CLEANFILES += kernel.img kernel.exec kernel_img-kern_i386_pc_startup.o 
kernel_img-kern_main.o kernel_img-kern_device.o kernel_img-kern_disk.o 
kernel_img-kern_dl.o kernel_img-kern_file.o kernel_img-kern_fs.o 
kernel_img-kern_err.o kernel_img-kern_misc.o kernel_img-kern_mm.o 
kernel_img-kern_loader.o kernel_img-kern_rescue.o kernel_img-kern_term.o 
kernel_img-kern_time.o kernel_img-kern_i386_dl.o kernel_img-kern_i386_pc_init.o 
kernel_img-kern_i386_pc_mmap.o kernel_img-kern_parser.o 
kernel_img-kern_partition.o kernel_img-kern_i386_tsc.o 
kernel_img-kern_i386_pit.o kernel_img-kern_generic_rtc_get_time_ms.o 
kernel_img-kern_generic_millisleep.o kernel_img-kern_env.o 
kernel_img-term_i386_pc_console.o kernel_img-term_i386_vga_common.o 
kernel_img-symlist.o
-MOSTLYCLEANFILES += kernel_img-kern_i386_pc_startup.d kernel_img-kern_main.d 
kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d 
kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d 
kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_loader.d 
kernel_img-kern_rescue.d kernel_img-kern_term.d kernel_img-kern_time.d 
kernel_img-kern_i386_dl.d kernel_img-kern_i386_pc_init.d 
kernel_img-kern_i386_pc_mmap.d kernel_img-kern_parser.d 
kernel_img-kern_partition.d kernel_img-kern_i386_tsc.d 
kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d 
kernel_img-kern_generic_millisleep.d kernel_img-kern_env.d 
kernel_img-term_i386_pc_console.d kernel_img-term_i386_vga_common.d 
kernel_img-symlist.d
+CLEANFILES += kernel.img kernel.exec kernel_img-kern_i386_pc_startup.o 
kernel_img-kern_main.o kernel_img-kern_device.o kernel_img-kern_disk.o 
kernel_img-kern_dl.o kernel_img-kern_file.o kernel_img-kern_fs.o 
kernel_img-kern_err.o kernel_img-kern_misc.o kernel_img-kern_mm.o 
kernel_img-kern_loader.o kernel_img-kern_rescue.o kernel_img-kern_term.o 
kernel_img-kern_time.o kernel_img-kern_list.o kernel_img-kern_handler.o 
kernel_img-kern_i386_dl.o kernel_img-kern_i386_pc_init.o 
kernel_img-kern_i386_pc_mmap.o kernel_img-kern_parser.o 
kernel_img-kern_partition.o kernel_img-kern_i386_tsc.o 
kernel_img-kern_i386_pit.o kernel_img-kern_generic_rtc_get_time_ms.o 
kernel_img-kern_generic_millisleep.o kernel_img-kern_env.o 
kernel_img-term_i386_pc_console.o kernel_img-term_i386_vga_common.o 
kernel_img-symlist.o
+MOSTLYCLEANFILES += kernel_img-kern_i386_pc_startup.d kernel_img-kern_main.d 
kernel_img-kern_device.d kernel_img-kern_disk.d kernel_img-kern_dl.d 
kernel_img-kern_file.d kernel_img-kern_fs.d kernel_img-kern_err.d 
kernel_img-kern_misc.d kernel_img-kern_mm.d kernel_img-kern_loader.d 
kernel_img-kern_rescue.d kernel_img-kern_term.d kernel_img-kern_time.d 
kernel_img-kern_list.d kernel_img-kern_handler.d kernel_img-kern_i386_dl.d 
kernel_img-kern_i386_pc_init.d kernel_img-kern_i386_pc_mmap.d 
kernel_img-kern_parser.d kernel_img-kern_partition.d kernel_img-kern_i386_tsc.d 
kernel_img-kern_i386_pit.d kernel_img-kern_generic_rtc_get_time_ms.d 
kernel_img-kern_generic_millisleep.d kernel_img-kern_env.d 
kernel_img-term_i386_pc_console.d kernel_img-term_i386_vga_common.d 
kernel_img-symlist.d
 
 kernel.img: kernel.exec
        $(OBJCOPY) -O binary -R .note -R .comment -R .note.gnu.build-id $< $@
 
-kernel.exec: kernel_img-kern_i386_pc_startup.o kernel_img-kern_main.o 
kernel_img-kern_device.o kernel_img-kern_disk.o kernel_img-kern_dl.o 
kernel_img-kern_file.o kernel_img-kern_fs.o kernel_img-kern_err.o 
kernel_img-kern_misc.o kernel_img-kern_mm.o kernel_img-kern_loader.o 
kernel_img-kern_rescue.o kernel_img-kern_term.o kernel_img-kern_time.o 
kernel_img-kern_i386_dl.o kernel_img-kern_i386_pc_init.o 
kernel_img-kern_i386_pc_mmap.o kernel_img-kern_parser.o 
kernel_img-kern_partition.o kernel_img-kern_i386_tsc.o 
kernel_img-kern_i386_pit.o kernel_img-kern_generic_rtc_get_time_ms.o 
kernel_img-kern_generic_millisleep.o kernel_img-kern_env.o 
kernel_img-term_i386_pc_console.o kernel_img-term_i386_vga_common.o 
kernel_img-symlist.o
+kernel.exec: kernel_img-kern_i386_pc_startup.o kernel_img-kern_main.o 
kernel_img-kern_device.o kernel_img-kern_disk.o kernel_img-kern_dl.o 
kernel_img-kern_file.o kernel_img-kern_fs.o kernel_img-kern_err.o 
kernel_img-kern_misc.o kernel_img-kern_mm.o kernel_img-kern_loader.o 
kernel_img-kern_rescue.o kernel_img-kern_term.o kernel_img-kern_time.o 
kernel_img-kern_list.o kernel_img-kern_handler.o kernel_img-kern_i386_dl.o 
kernel_img-kern_i386_pc_init.o kernel_img-kern_i386_pc_mmap.o 
kernel_img-kern_parser.o kernel_img-kern_partition.o kernel_img-kern_i386_tsc.o 
kernel_img-kern_i386_pit.o kernel_img-kern_generic_rtc_get_time_ms.o 
kernel_img-kern_generic_millisleep.o kernel_img-kern_env.o 
kernel_img-term_i386_pc_console.o kernel_img-term_i386_vga_common.o 
kernel_img-symlist.o
        $(TARGET_CC) -o $@ $^ $(TARGET_LDFLAGS) $(kernel_img_LDFLAGS)
 
 kernel_img-kern_i386_pc_startup.o: kern/i386/pc/startup.S 
$(kern/i386/pc/startup.S_DEPENDENCIES)
@@ -182,6 +182,14 @@
        $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_img_CFLAGS) -MD -c -o $@ $<
 -include kernel_img-kern_time.d
 
+kernel_img-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_img_CFLAGS) -MD -c -o $@ $<
+-include kernel_img-kern_list.d
+
+kernel_img-kern_handler.o: kern/handler.c $(kern/handler.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_img_CFLAGS) -MD -c -o $@ $<
+-include kernel_img-kern_handler.d
+
 kernel_img-kern_i386_dl.o: kern/i386/dl.c $(kern/i386/dl.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_img_CFLAGS) -MD -c -o $@ $<
 -include kernel_img-kern_i386_dl.d
@@ -239,7 +247,7 @@
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
        machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \
        machine/memory.h machine/loader.h machine/vga.h machine/vbe.h \
-       machine/kernel.h machine/pxe.h
+       machine/kernel.h machine/pxe.h list.h handler.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) 
-Wl,-Ttext,$(GRUB_MEMORY_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
@@ -521,7 +529,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/echo.c commands/help.c           \
-       commands/terminal.c commands/ls.c commands/test.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/i386/cpuid.c                                           \
@@ -554,11 +562,11 @@
        disk/raid.c disk/raid5_recover.c disk/raid6_recover.c           \
        disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c             \
        grub_emu_init.c
-CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_pc_halt.o 
grub_emu-commands_reboot.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-disk_scsi.o grub_emu-fs_fshelp.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_color.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_menu_text.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_hostdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_raid5_recover.o 
grub_emu-disk_raid6_recover.o grub_emu-disk_mdraid_linux.o 
grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
-MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_terminal.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-lib_hexdump.d grub_emu-commands_i386_pc_halt.d 
grub_emu-commands_reboot.d grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d 
grub_emu-disk_loopback.d grub_emu-disk_scsi.d grub_emu-fs_fshelp.d 
grub_emu-io_gzio.d grub_emu-kern_device.d grub_emu-kern_disk.d 
grub_emu-kern_dl.d grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_color.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_menu_text.d 
grub_emu-normal_misc.d grub_emu-normal_script.d grub_emu-partmap_amiga.d 
grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d 
grub_emu-partmap_acorn.d grub_emu-partmap_gpt.d grub_emu-fs_affs.d 
grub_emu-fs_cpio.d grub_emu-fs_fat.d grub_emu-fs_ext2.d grub_emu-fs_hfs.d 
grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d grub_emu-fs_jfs.d 
grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_tar.d grub_emu-util_console.d 
grub_emu-util_hostfs.d grub_emu-util_grub_emu.d grub_emu-util_misc.d 
grub_emu-util_hostdisk.d grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d 
grub_emu-disk_raid.d grub_emu-disk_raid5_recover.d 
grub_emu-disk_raid6_recover.d grub_emu-disk_mdraid_linux.d 
grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d grub_emu-grub_emu_init.d
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_handler.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_pc_halt.o 
grub_emu-commands_reboot.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-disk_scsi.o grub_emu-fs_fshelp.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_color.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_menu_text.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_hostdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_raid5_recover.o 
grub_emu-disk_raid6_recover.o grub_emu-disk_mdraid_linux.o 
grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
+MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_echo.d 
grub_emu-commands_help.d grub_emu-commands_handler.d grub_emu-commands_ls.d 
grub_emu-commands_test.d grub_emu-commands_search.d 
grub_emu-commands_blocklist.d grub_emu-commands_hexdump.d 
grub_emu-lib_hexdump.d grub_emu-commands_i386_pc_halt.d 
grub_emu-commands_reboot.d grub_emu-commands_i386_cpuid.d grub_emu-disk_host.d 
grub_emu-disk_loopback.d grub_emu-disk_scsi.d grub_emu-fs_fshelp.d 
grub_emu-io_gzio.d grub_emu-kern_device.d grub_emu-kern_disk.d 
grub_emu-kern_dl.d grub_emu-kern_elf.d grub_emu-kern_env.d grub_emu-kern_err.d 
grub_emu-normal_execute.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-normal_lexer.d grub_emu-kern_loader.d grub_emu-kern_main.d 
grub_emu-kern_misc.d grub_emu-kern_parser.d grub_emu-grub_script_tab.d 
grub_emu-kern_partition.d grub_emu-kern_rescue.d grub_emu-kern_term.d 
grub_emu-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_function.d grub_emu-normal_completion.d grub_emu-normal_main.d 
grub_emu-normal_color.d grub_emu-normal_menu.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_menu_text.d 
grub_emu-normal_misc.d grub_emu-normal_script.d grub_emu-partmap_amiga.d 
grub_emu-partmap_apple.d grub_emu-partmap_pc.d grub_emu-partmap_sun.d 
grub_emu-partmap_acorn.d grub_emu-partmap_gpt.d grub_emu-fs_affs.d 
grub_emu-fs_cpio.d grub_emu-fs_fat.d grub_emu-fs_ext2.d grub_emu-fs_hfs.d 
grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d grub_emu-fs_jfs.d 
grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_tar.d grub_emu-util_console.d 
grub_emu-util_hostfs.d grub_emu-util_grub_emu.d grub_emu-util_misc.d 
grub_emu-util_hostdisk.d grub_emu-util_getroot.d grub_emu-util_i386_pc_misc.d 
grub_emu-disk_raid.d grub_emu-disk_raid5_recover.d 
grub_emu-disk_raid6_recover.d grub_emu-disk_mdraid_linux.d 
grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d grub_emu-grub_emu_init.d
 
-grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_terminal.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_pc_halt.o 
grub_emu-commands_reboot.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-disk_scsi.o grub_emu-fs_fshelp.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_color.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_menu_text.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_hostdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_raid5_recover.o 
grub_emu-disk_raid6_recover.o grub_emu-disk_mdraid_linux.o 
grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
-       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_terminal.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_pc_halt.o 
grub_emu-commands_reboot.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-disk_scsi.o grub_emu-fs_fshelp.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_color.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_menu_text.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_hostdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_raid5_recover.o 
grub_emu-disk_raid6_recover.o grub_emu-disk_mdraid_linux.o 
grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o 
$(LDFLAGS) $(grub_emu_LDFLAGS)
+grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_echo.o grub_emu-commands_help.o grub_emu-commands_handler.o 
grub_emu-commands_ls.o grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_pc_halt.o 
grub_emu-commands_reboot.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-disk_scsi.o grub_emu-fs_fshelp.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_color.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_menu_text.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_hostdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_raid5_recover.o 
grub_emu-disk_raid6_recover.o grub_emu-disk_mdraid_linux.o 
grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o
+       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_echo.o 
grub_emu-commands_help.o grub_emu-commands_handler.o grub_emu-commands_ls.o 
grub_emu-commands_test.o grub_emu-commands_search.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_i386_pc_halt.o 
grub_emu-commands_reboot.o grub_emu-commands_i386_cpuid.o grub_emu-disk_host.o 
grub_emu-disk_loopback.o grub_emu-disk_scsi.o grub_emu-fs_fshelp.o 
grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o 
grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o grub_emu-kern_err.o 
grub_emu-normal_execute.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-normal_lexer.o grub_emu-kern_loader.o grub_emu-kern_main.o 
grub_emu-kern_misc.o grub_emu-kern_parser.o grub_emu-grub_script_tab.o 
grub_emu-kern_partition.o grub_emu-kern_rescue.o grub_emu-kern_term.o 
grub_emu-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_function.o grub_emu-normal_completion.o grub_emu-normal_main.o 
grub_emu-normal_color.o grub_emu-normal_menu.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_menu_text.o 
grub_emu-normal_misc.o grub_emu-normal_script.o grub_emu-partmap_amiga.o 
grub_emu-partmap_apple.o grub_emu-partmap_pc.o grub_emu-partmap_sun.o 
grub_emu-partmap_acorn.o grub_emu-partmap_gpt.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-util_console.o 
grub_emu-util_hostfs.o grub_emu-util_grub_emu.o grub_emu-util_misc.o 
grub_emu-util_hostdisk.o grub_emu-util_getroot.o grub_emu-util_i386_pc_misc.o 
grub_emu-disk_raid.o grub_emu-disk_raid5_recover.o 
grub_emu-disk_raid6_recover.o grub_emu-disk_mdraid_linux.o 
grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o grub_emu-grub_emu_init.o 
$(LDFLAGS) $(grub_emu_LDFLAGS)
 
 grub_emu-commands_boot.o: commands/boot.c $(commands/boot.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
@@ -584,9 +592,9 @@
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
 -include grub_emu-commands_help.d
 
-grub_emu-commands_terminal.o: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES)
+grub_emu-commands_handler.o: commands/handler.c 
$(commands/handler.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
--include grub_emu-commands_terminal.d
+-include grub_emu-commands_handler.d
 
 grub_emu-commands_ls.o: commands/ls.c $(commands/ls.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<

Modified: trunk/grub2/conf/i386-pc.rmk
===================================================================
--- trunk/grub2/conf/i386-pc.rmk        2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/i386-pc.rmk        2009-03-01 17:51:44 UTC (rev 2009)
@@ -42,7 +42,7 @@
 kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
        kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/dl.c kern/i386/pc/init.c kern/i386/pc/mmap.c \
        kern/parser.c kern/partition.c \
        kern/i386/tsc.c kern/i386/pit.c \
@@ -56,7 +56,7 @@
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
        machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \
        machine/memory.h machine/loader.h machine/vga.h machine/vbe.h \
-       machine/kernel.h machine/pxe.h
+       machine/kernel.h machine/pxe.h list.h handler.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS) 
-Wl,-Ttext,$(GRUB_MEMORY_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
@@ -114,7 +114,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/echo.c commands/help.c           \
-       commands/terminal.c commands/ls.c commands/test.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/i386/cpuid.c                                           \

Modified: trunk/grub2/conf/powerpc-ieee1275.mk
===================================================================
--- trunk/grub2/conf/powerpc-ieee1275.mk        2009-02-27 23:04:46 UTC (rev 
2008)
+++ trunk/grub2/conf/powerpc-ieee1275.mk        2009-03-01 17:51:44 UTC (rev 
2009)
@@ -55,7 +55,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/help.c                           \
-       commands/search.c commands/terminal.c commands/test.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                 \
        disk/loopback.c                                                 \
@@ -86,11 +86,11 @@
        disk/raid.c disk/raid5_recover.c disk/raid6_recover.c           \
        disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c             \
        grub_script.tab.c grub_emu_init.c
-CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_help.o grub_emu-commands_search.o 
grub_emu-commands_terminal.o grub_emu-commands_test.o grub_emu-commands_ls.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_text.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-util_console.o grub_emu-util_hostfs.o grub_emu-util_grub_emu.o 
grub_emu-util_misc.o grub_emu-util_hostdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o
-MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_help.d 
grub_emu-commands_search.d grub_emu-commands_terminal.d 
grub_emu-commands_test.d grub_emu-commands_ls.d grub_emu-commands_blocklist.d 
grub_emu-commands_hexdump.d grub_emu-lib_hexdump.d grub_emu-commands_halt.d 
grub_emu-commands_reboot.d grub_emu-disk_loopback.d grub_emu-fs_affs.d 
grub_emu-fs_cpio.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_ext2.d 
grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d 
grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_tar.d grub_emu-io_gzio.d grub_emu-kern_device.d 
grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_elf.d grub_emu-kern_env.d 
grub_emu-kern_err.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-kern_loader.d grub_emu-kern_main.d grub_emu-kern_misc.d 
grub_emu-kern_parser.d grub_emu-kern_partition.d grub_emu-kern_rescue.d 
grub_emu-kern_term.d grub_emu-fs_fshelp.d grub_emu-normal_arg.d 
grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_completion.d grub_emu-normal_execute.d 
grub_emu-normal_function.d grub_emu-normal_lexer.d grub_emu-normal_main.d 
grub_emu-normal_menu.d grub_emu-normal_menu_text.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_misc.d grub_emu-normal_script.d 
grub_emu-normal_color.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-util_console.d grub_emu-util_hostfs.d grub_emu-util_grub_emu.d 
grub_emu-util_misc.d grub_emu-util_hostdisk.d grub_emu-util_getroot.d 
grub_emu-util_powerpc_ieee1275_misc.d grub_emu-disk_raid.d 
grub_emu-disk_raid5_recover.d grub_emu-disk_raid6_recover.d 
grub_emu-disk_mdraid_linux.d grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d 
grub_emu-grub_script_tab.d grub_emu-grub_emu_init.d
+CLEANFILES += grub-emu$(EXEEXT) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_help.o grub_emu-commands_search.o grub_emu-commands_handler.o 
grub_emu-commands_test.o grub_emu-commands_ls.o grub_emu-commands_blocklist.o 
grub_emu-commands_hexdump.o grub_emu-lib_hexdump.o grub_emu-commands_halt.o 
grub_emu-commands_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_text.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-util_console.o grub_emu-util_hostfs.o grub_emu-util_grub_emu.o 
grub_emu-util_misc.o grub_emu-util_hostdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o
+MOSTLYCLEANFILES += grub_emu-commands_boot.d grub_emu-commands_cat.d 
grub_emu-commands_cmp.d grub_emu-commands_configfile.d grub_emu-commands_help.d 
grub_emu-commands_search.d grub_emu-commands_handler.d grub_emu-commands_test.d 
grub_emu-commands_ls.d grub_emu-commands_blocklist.d 
grub_emu-commands_hexdump.d grub_emu-lib_hexdump.d grub_emu-commands_halt.d 
grub_emu-commands_reboot.d grub_emu-disk_loopback.d grub_emu-fs_affs.d 
grub_emu-fs_cpio.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_ext2.d 
grub_emu-fs_hfs.d grub_emu-fs_hfsplus.d grub_emu-fs_iso9660.d grub_emu-fs_udf.d 
grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_ntfs.d grub_emu-fs_ntfscomp.d 
grub_emu-fs_reiserfs.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d 
grub_emu-fs_afs.d grub_emu-fs_tar.d grub_emu-io_gzio.d grub_emu-kern_device.d 
grub_emu-kern_disk.d grub_emu-kern_dl.d grub_emu-kern_elf.d grub_emu-kern_env.d 
grub_emu-kern_err.d grub_emu-kern_file.d grub_emu-kern_fs.d 
grub_emu-kern_loader.d grub_emu-kern_main.d grub_emu-kern_misc.d 
grub_emu-kern_parser.d grub_emu-kern_partition.d grub_emu-kern_rescue.d 
grub_emu-kern_term.d grub_emu-fs_fshelp.d grub_emu-normal_arg.d 
grub_emu-normal_cmdline.d grub_emu-normal_command.d 
grub_emu-normal_completion.d grub_emu-normal_execute.d 
grub_emu-normal_function.d grub_emu-normal_lexer.d grub_emu-normal_main.d 
grub_emu-normal_menu.d grub_emu-normal_menu_text.d grub_emu-normal_menu_entry.d 
grub_emu-normal_menu_viewer.d grub_emu-normal_misc.d grub_emu-normal_script.d 
grub_emu-normal_color.d grub_emu-partmap_amiga.d grub_emu-partmap_apple.d 
grub_emu-partmap_pc.d grub_emu-partmap_sun.d grub_emu-partmap_acorn.d 
grub_emu-util_console.d grub_emu-util_hostfs.d grub_emu-util_grub_emu.d 
grub_emu-util_misc.d grub_emu-util_hostdisk.d grub_emu-util_getroot.d 
grub_emu-util_powerpc_ieee1275_misc.d grub_emu-disk_raid.d 
grub_emu-disk_raid5_recover.d grub_emu-disk_raid6_recover.d 
grub_emu-disk_mdraid_linux.d grub_emu-disk_dmraid_nvidia.d grub_emu-disk_lvm.d 
grub_emu-grub_script_tab.d grub_emu-grub_emu_init.d
 
-grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_help.o grub_emu-commands_search.o 
grub_emu-commands_terminal.o grub_emu-commands_test.o grub_emu-commands_ls.o 
grub_emu-commands_blocklist.o grub_emu-commands_hexdump.o 
grub_emu-lib_hexdump.o grub_emu-commands_halt.o grub_emu-commands_reboot.o 
grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_cpio.o 
grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_ext2.o grub_emu-fs_hfs.o 
grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o grub_emu-fs_jfs.o 
grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_text.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-util_console.o grub_emu-util_hostfs.o grub_emu-util_grub_emu.o 
grub_emu-util_misc.o grub_emu-util_hostdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o
-       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_help.o 
grub_emu-commands_search.o grub_emu-commands_terminal.o 
grub_emu-commands_test.o grub_emu-commands_ls.o grub_emu-commands_blocklist.o 
grub_emu-commands_hexdump.o grub_emu-lib_hexdump.o grub_emu-commands_halt.o 
grub_emu-commands_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_text.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-util_console.o grub_emu-util_hostfs.o grub_emu-util_grub_emu.o 
grub_emu-util_misc.o grub_emu-util_hostdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o $(LDFLAGS) 
$(grub_emu_LDFLAGS)
+grub-emu: $(grub_emu_DEPENDENCIES) grub_emu-commands_boot.o 
grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o 
grub_emu-commands_help.o grub_emu-commands_search.o grub_emu-commands_handler.o 
grub_emu-commands_test.o grub_emu-commands_ls.o grub_emu-commands_blocklist.o 
grub_emu-commands_hexdump.o grub_emu-lib_hexdump.o grub_emu-commands_halt.o 
grub_emu-commands_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_text.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-util_console.o grub_emu-util_hostfs.o grub_emu-util_grub_emu.o 
grub_emu-util_misc.o grub_emu-util_hostdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o
+       $(CC) -o $@ grub_emu-commands_boot.o grub_emu-commands_cat.o 
grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_help.o 
grub_emu-commands_search.o grub_emu-commands_handler.o grub_emu-commands_test.o 
grub_emu-commands_ls.o grub_emu-commands_blocklist.o 
grub_emu-commands_hexdump.o grub_emu-lib_hexdump.o grub_emu-commands_halt.o 
grub_emu-commands_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o 
grub_emu-fs_cpio.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_ext2.o 
grub_emu-fs_hfs.o grub_emu-fs_hfsplus.o grub_emu-fs_iso9660.o grub_emu-fs_udf.o 
grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_ntfs.o grub_emu-fs_ntfscomp.o 
grub_emu-fs_reiserfs.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o 
grub_emu-fs_afs.o grub_emu-fs_tar.o grub_emu-io_gzio.o grub_emu-kern_device.o 
grub_emu-kern_disk.o grub_emu-kern_dl.o grub_emu-kern_elf.o grub_emu-kern_env.o 
grub_emu-kern_err.o grub_emu-kern_file.o grub_emu-kern_fs.o 
grub_emu-kern_loader.o grub_emu-kern_main.o grub_emu-kern_misc.o 
grub_emu-kern_parser.o grub_emu-kern_partition.o grub_emu-kern_rescue.o 
grub_emu-kern_term.o grub_emu-fs_fshelp.o grub_emu-normal_arg.o 
grub_emu-normal_cmdline.o grub_emu-normal_command.o 
grub_emu-normal_completion.o grub_emu-normal_execute.o 
grub_emu-normal_function.o grub_emu-normal_lexer.o grub_emu-normal_main.o 
grub_emu-normal_menu.o grub_emu-normal_menu_text.o grub_emu-normal_menu_entry.o 
grub_emu-normal_menu_viewer.o grub_emu-normal_misc.o grub_emu-normal_script.o 
grub_emu-normal_color.o grub_emu-partmap_amiga.o grub_emu-partmap_apple.o 
grub_emu-partmap_pc.o grub_emu-partmap_sun.o grub_emu-partmap_acorn.o 
grub_emu-util_console.o grub_emu-util_hostfs.o grub_emu-util_grub_emu.o 
grub_emu-util_misc.o grub_emu-util_hostdisk.o grub_emu-util_getroot.o 
grub_emu-util_powerpc_ieee1275_misc.o grub_emu-disk_raid.o 
grub_emu-disk_raid5_recover.o grub_emu-disk_raid6_recover.o 
grub_emu-disk_mdraid_linux.o grub_emu-disk_dmraid_nvidia.o grub_emu-disk_lvm.o 
grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o $(LDFLAGS) 
$(grub_emu_LDFLAGS)
 
 grub_emu-commands_boot.o: commands/boot.c $(commands/boot.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
@@ -116,9 +116,9 @@
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
 -include grub_emu-commands_search.d
 
-grub_emu-commands_terminal.o: commands/terminal.c 
$(commands/terminal.c_DEPENDENCIES)
+grub_emu-commands_handler.o: commands/handler.c 
$(commands/handler.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<
--include grub_emu-commands_terminal.d
+-include grub_emu-commands_handler.d
 
 grub_emu-commands_test.o: commands/test.c $(commands/test.c_DEPENDENCIES)
        $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_emu_CFLAGS) -MD -c -o $@ $<

Modified: trunk/grub2/conf/powerpc-ieee1275.rmk
===================================================================
--- trunk/grub2/conf/powerpc-ieee1275.rmk       2009-02-27 23:04:46 UTC (rev 
2008)
+++ trunk/grub2/conf/powerpc-ieee1275.rmk       2009-03-01 17:51:44 UTC (rev 
2009)
@@ -40,7 +40,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/help.c                           \
-       commands/search.c commands/terminal.c commands/test.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                 \
        disk/loopback.c                                                 \

Modified: trunk/grub2/conf/x86_64-efi.mk
===================================================================
--- trunk/grub2/conf/x86_64-efi.mk      2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/x86_64-efi.mk      2009-03-01 17:51:44 UTC (rev 2009)
@@ -55,7 +55,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/help.c                           \
-       commands/terminal.c commands/ls.c commands/test.c               \
+       commands/handler.c commands/ls.c commands/test.c                \
        commands/search.c commands/hexdump.c lib/hexdump.c              \
        commands/halt.c commands/reboot.c                               \
        commands/i386/cpuid.c                                           \
@@ -115,16 +115,16 @@
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
        kern/x86_64/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \
        kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/millisleep.c kern/generic/rtc_get_time_ms.c \
        term/efi/console.c disk/efi/efidisk.c
-CLEANFILES += kernel.mod mod-kernel.o mod-kernel.c pre-kernel.o 
kernel_mod-kern_x86_64_efi_startup.o kernel_mod-kern_x86_64_efi_callwrap.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_x86_64_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-kern_time.o kernel_mod-kern_i386_tsc.o 
kernel_mod-kern_i386_pit.o kernel_mod-kern_generic_millisleep.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-term_efi_console.o 
kernel_mod-disk_efi_efidisk.o und-kernel.lst
+CLEANFILES += kernel.mod mod-kernel.o mod-kernel.c pre-kernel.o 
kernel_mod-kern_x86_64_efi_startup.o kernel_mod-kern_x86_64_efi_callwrap.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_x86_64_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-kern_time.o kernel_mod-kern_list.o 
kernel_mod-kern_handler.o kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_millisleep.o kernel_mod-kern_generic_rtc_get_time_ms.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o und-kernel.lst
 ifneq ($(kernel_mod_EXPORTS),no)
 CLEANFILES += def-kernel.lst
 DEFSYMFILES += def-kernel.lst
 endif
-MOSTLYCLEANFILES += kernel_mod-kern_x86_64_efi_startup.d 
kernel_mod-kern_x86_64_efi_callwrap.d kernel_mod-kern_main.d 
kernel_mod-kern_device.d kernel_mod-kern_disk.d kernel_mod-kern_dl.d 
kernel_mod-kern_file.d kernel_mod-kern_fs.d kernel_mod-kern_err.d 
kernel_mod-kern_misc.d kernel_mod-kern_mm.d kernel_mod-kern_loader.d 
kernel_mod-kern_rescue.d kernel_mod-kern_term.d kernel_mod-kern_x86_64_dl.d 
kernel_mod-kern_i386_efi_init.d kernel_mod-kern_parser.d 
kernel_mod-kern_partition.d kernel_mod-kern_env.d kernel_mod-symlist.d 
kernel_mod-kern_efi_efi.d kernel_mod-kern_efi_init.d kernel_mod-kern_efi_mm.d 
kernel_mod-kern_time.d kernel_mod-kern_i386_tsc.d kernel_mod-kern_i386_pit.d 
kernel_mod-kern_generic_millisleep.d kernel_mod-kern_generic_rtc_get_time_ms.d 
kernel_mod-term_efi_console.d kernel_mod-disk_efi_efidisk.d
+MOSTLYCLEANFILES += kernel_mod-kern_x86_64_efi_startup.d 
kernel_mod-kern_x86_64_efi_callwrap.d kernel_mod-kern_main.d 
kernel_mod-kern_device.d kernel_mod-kern_disk.d kernel_mod-kern_dl.d 
kernel_mod-kern_file.d kernel_mod-kern_fs.d kernel_mod-kern_err.d 
kernel_mod-kern_misc.d kernel_mod-kern_mm.d kernel_mod-kern_loader.d 
kernel_mod-kern_rescue.d kernel_mod-kern_term.d kernel_mod-kern_x86_64_dl.d 
kernel_mod-kern_i386_efi_init.d kernel_mod-kern_parser.d 
kernel_mod-kern_partition.d kernel_mod-kern_env.d kernel_mod-symlist.d 
kernel_mod-kern_efi_efi.d kernel_mod-kern_efi_init.d kernel_mod-kern_efi_mm.d 
kernel_mod-kern_time.d kernel_mod-kern_list.d kernel_mod-kern_handler.d 
kernel_mod-kern_i386_tsc.d kernel_mod-kern_i386_pit.d 
kernel_mod-kern_generic_millisleep.d kernel_mod-kern_generic_rtc_get_time_ms.d 
kernel_mod-term_efi_console.d kernel_mod-disk_efi_efidisk.d
 UNDSYMFILES += und-kernel.lst
 
 kernel.mod: pre-kernel.o mod-kernel.o $(TARGET_OBJ2ELF)
@@ -133,9 +133,9 @@
        if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f 
$@; exit 1); fi
        $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K 
_grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
 
-pre-kernel.o: $(kernel_mod_DEPENDENCIES) kernel_mod-kern_x86_64_efi_startup.o 
kernel_mod-kern_x86_64_efi_callwrap.o kernel_mod-kern_main.o 
kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o 
kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o 
kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o 
kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_x86_64_dl.o 
kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o 
kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o 
kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o 
kernel_mod-kern_time.o kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_millisleep.o kernel_mod-kern_generic_rtc_get_time_ms.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o
+pre-kernel.o: $(kernel_mod_DEPENDENCIES) kernel_mod-kern_x86_64_efi_startup.o 
kernel_mod-kern_x86_64_efi_callwrap.o kernel_mod-kern_main.o 
kernel_mod-kern_device.o kernel_mod-kern_disk.o kernel_mod-kern_dl.o 
kernel_mod-kern_file.o kernel_mod-kern_fs.o kernel_mod-kern_err.o 
kernel_mod-kern_misc.o kernel_mod-kern_mm.o kernel_mod-kern_loader.o 
kernel_mod-kern_rescue.o kernel_mod-kern_term.o kernel_mod-kern_x86_64_dl.o 
kernel_mod-kern_i386_efi_init.o kernel_mod-kern_parser.o 
kernel_mod-kern_partition.o kernel_mod-kern_env.o kernel_mod-symlist.o 
kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o kernel_mod-kern_efi_mm.o 
kernel_mod-kern_time.o kernel_mod-kern_list.o kernel_mod-kern_handler.o 
kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_millisleep.o kernel_mod-kern_generic_rtc_get_time_ms.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o
        -rm -f $@
-       $(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
kernel_mod-kern_x86_64_efi_startup.o kernel_mod-kern_x86_64_efi_callwrap.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_x86_64_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-kern_time.o kernel_mod-kern_i386_tsc.o 
kernel_mod-kern_i386_pit.o kernel_mod-kern_generic_millisleep.o 
kernel_mod-kern_generic_rtc_get_time_ms.o kernel_mod-term_efi_console.o 
kernel_mod-disk_efi_efidisk.o
+       $(TARGET_CC) $(kernel_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
kernel_mod-kern_x86_64_efi_startup.o kernel_mod-kern_x86_64_efi_callwrap.o 
kernel_mod-kern_main.o kernel_mod-kern_device.o kernel_mod-kern_disk.o 
kernel_mod-kern_dl.o kernel_mod-kern_file.o kernel_mod-kern_fs.o 
kernel_mod-kern_err.o kernel_mod-kern_misc.o kernel_mod-kern_mm.o 
kernel_mod-kern_loader.o kernel_mod-kern_rescue.o kernel_mod-kern_term.o 
kernel_mod-kern_x86_64_dl.o kernel_mod-kern_i386_efi_init.o 
kernel_mod-kern_parser.o kernel_mod-kern_partition.o kernel_mod-kern_env.o 
kernel_mod-symlist.o kernel_mod-kern_efi_efi.o kernel_mod-kern_efi_init.o 
kernel_mod-kern_efi_mm.o kernel_mod-kern_time.o kernel_mod-kern_list.o 
kernel_mod-kern_handler.o kernel_mod-kern_i386_tsc.o kernel_mod-kern_i386_pit.o 
kernel_mod-kern_generic_millisleep.o kernel_mod-kern_generic_rtc_get_time_ms.o 
kernel_mod-term_efi_console.o kernel_mod-disk_efi_efidisk.o
 
 mod-kernel.o: mod-kernel.c
        $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) 
-c -o $@ $<
@@ -608,6 +608,44 @@
        set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
 
 
+kernel_mod-kern_list.o: kern/list.c $(kern/list.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
+-include kernel_mod-kern_list.d
+
+CLEANFILES += cmd-kernel_mod-kern_list.lst fs-kernel_mod-kern_list.lst 
partmap-kernel_mod-kern_list.lst
+COMMANDFILES += cmd-kernel_mod-kern_list.lst
+FSFILES += fs-kernel_mod-kern_list.lst
+PARTMAPFILES += partmap-kernel_mod-kern_list.lst
+
+cmd-kernel_mod-kern_list.lst: kern/list.c $(kern/list.c_DEPENDENCIES) 
gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/gencmdlist.sh kernel > $@ || (rm -f $@; exit 1)
+
+fs-kernel_mod-kern_list.lst: kern/list.c $(kern/list.c_DEPENDENCIES) 
genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genfslist.sh kernel > $@ || (rm -f $@; exit 1)
+
+partmap-kernel_mod-kern_list.lst: kern/list.c $(kern/list.c_DEPENDENCIES) 
genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
+
+
+kernel_mod-kern_handler.o: kern/handler.c $(kern/handler.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
+-include kernel_mod-kern_handler.d
+
+CLEANFILES += cmd-kernel_mod-kern_handler.lst fs-kernel_mod-kern_handler.lst 
partmap-kernel_mod-kern_handler.lst
+COMMANDFILES += cmd-kernel_mod-kern_handler.lst
+FSFILES += fs-kernel_mod-kern_handler.lst
+PARTMAPFILES += partmap-kernel_mod-kern_handler.lst
+
+cmd-kernel_mod-kern_handler.lst: kern/handler.c $(kern/handler.c_DEPENDENCIES) 
gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/gencmdlist.sh kernel > $@ || (rm -f $@; exit 1)
+
+fs-kernel_mod-kern_handler.lst: kern/handler.c $(kern/handler.c_DEPENDENCIES) 
genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genfslist.sh kernel > $@ || (rm -f $@; exit 1)
+
+partmap-kernel_mod-kern_handler.lst: kern/handler.c 
$(kern/handler.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern -I$(srcdir)/kern 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
+
+
 kernel_mod-kern_i386_tsc.o: kern/i386/tsc.c $(kern/i386/tsc.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
 -include kernel_mod-kern_i386_tsc.d
@@ -725,7 +763,7 @@
 kernel_mod_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h 
\
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
-       efi/efi.h efi/time.h efi/disk.h machine/loader.h
+       efi/efi.h efi/time.h efi/disk.h machine/loader.h list.h handler.h
 kernel_mod_CFLAGS = $(COMMON_CFLAGS)
 kernel_mod_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_mod_LDFLAGS = $(COMMON_LDFLAGS)

Modified: trunk/grub2/conf/x86_64-efi.rmk
===================================================================
--- trunk/grub2/conf/x86_64-efi.rmk     2009-02-27 23:04:46 UTC (rev 2008)
+++ trunk/grub2/conf/x86_64-efi.rmk     2009-03-01 17:51:44 UTC (rev 2009)
@@ -36,7 +36,7 @@
 util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
 grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c       \
        commands/configfile.c commands/help.c                           \
-       commands/terminal.c commands/ls.c commands/test.c               \
+       commands/handler.c commands/ls.c commands/test.c                \
        commands/search.c commands/hexdump.c lib/hexdump.c              \
        commands/halt.c commands/reboot.c                               \
        commands/i386/cpuid.c                                           \
@@ -90,14 +90,14 @@
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
        kern/x86_64/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \
        kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \
-       kern/time.c \
+       kern/time.c kern/list.c kern/handler.c \
        kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/millisleep.c kern/generic/rtc_get_time_ms.c \
        term/efi/console.c disk/efi/efidisk.c
 kernel_mod_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h 
\
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
-       efi/efi.h efi/time.h efi/disk.h machine/loader.h
+       efi/efi.h efi/time.h efi/disk.h machine/loader.h list.h handler.h
 kernel_mod_CFLAGS = $(COMMON_CFLAGS)
 kernel_mod_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_mod_LDFLAGS = $(COMMON_LDFLAGS)

Added: trunk/grub2/include/grub/handler.h
===================================================================
--- trunk/grub2/include/grub/handler.h                          (rev 0)
+++ trunk/grub2/include/grub/handler.h  2009-03-01 17:51:44 UTC (rev 2009)
@@ -0,0 +1,60 @@
+/* handler.h - header for grub handler */
+/*
+ *  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/>.
+ */
+
+#ifndef GRUB_HANDLER_HEADER
+#define GRUB_HANDLER_HEADER 1
+
+#include <grub/list.h>
+#include <grub/err.h>
+
+struct grub_handler
+{
+  struct grub_handler *next;
+  const char *name;
+  grub_err_t (*init) (void);
+  grub_err_t (*fini) (void);
+};
+typedef struct grub_handler *grub_handler_t;
+
+struct grub_handler_class
+{
+  struct grub_handler_class *next;
+  const char *name;
+  grub_handler_t handler_list;
+  grub_handler_t cur_handler;
+};
+typedef struct grub_handler_class *grub_handler_class_t;
+
+extern grub_handler_class_t EXPORT_VAR(grub_handler_class_list);
+
+void EXPORT_FUNC(grub_handler_register) (grub_handler_class_t class,
+                                        grub_handler_t handler);
+void EXPORT_FUNC(grub_handler_unregister) (grub_handler_class_t class,
+                                          grub_handler_t handler);
+grub_err_t EXPORT_FUNC(grub_handler_set_current) (grub_handler_class_t class,
+                                                 grub_handler_t handler);
+
+#define GRUB_AS_HANDLER(ptr) \
+  ((GRUB_FIELD_MATCH (ptr, grub_handler_t, next) && \
+    GRUB_FIELD_MATCH (ptr, grub_handler_t, name) && \
+    GRUB_FIELD_MATCH (ptr, grub_handler_t, init) && \
+    GRUB_FIELD_MATCH (ptr, grub_handler_t, fini)) ? \
+   (grub_handler_t) ptr : grub_assert_fail ())
+
+#endif /* ! GRUB_HANDLER_HEADER */

Added: trunk/grub2/include/grub/list.h
===================================================================
--- trunk/grub2/include/grub/list.h                             (rev 0)
+++ trunk/grub2/include/grub/list.h     2009-03-01 17:51:44 UTC (rev 2009)
@@ -0,0 +1,69 @@
+/* list.h - header for grub list */
+/*
+ *  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/>.
+ */
+
+#ifndef GRUB_LIST_HEADER
+#define GRUB_LIST_HEADER 1
+
+#include <grub/symbol.h>
+#include <grub/types.h>
+
+struct grub_list
+{
+  struct grub_list *next;
+};
+typedef struct grub_list *grub_list_t;
+
+typedef int (*grub_list_hook_t) (grub_list_t item);
+
+void EXPORT_FUNC(grub_list_push) (grub_list_t *head, grub_list_t item);
+void * EXPORT_FUNC(grub_list_pop) (grub_list_t *head);
+void EXPORT_FUNC(grub_list_remove) (grub_list_t *head, grub_list_t item);
+void EXPORT_FUNC(grub_list_iterate) (grub_list_t head, grub_list_hook_t hook);
+

@@ Diff output truncated at 153600 characters. @@




reply via email to

[Prev in Thread] Current Thread [Next in Thread]