? .vimrc
? build
? tmp.diff
Index: ChangeLog
===================================================================
RCS file: /sources/grub/grub2/ChangeLog,v
retrieving revision 1.210
diff -u -p -r1.210 ChangeLog
--- ChangeLog 10 Dec 2005 05:24:58 -0000 1.210
+++ ChangeLog 13 Dec 2005 04:59:20 -0000
@@ -1,3 +1,22 @@
+2005-12-12 Hollis Blanchard
+
+ * commands/memory.c: New file.
+ * kern/powerpc/misc.c: Likewise.
+ * include/grub/powerpc/misc.h: Likewise.
+ * include/grub/i386/misc.h: Likewise.
+ * include/grub/sparc64/misc.h: Likewise.
+ * conf/common.rmk (pkgdata_MODULES): Add memory.mod.
+ (memory_mod_SOURCES): New variable.
+ (memory_mod_CFLAGS): Likewise.
+ (memory_mod_LDFLAGS): Likewise.
+ * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
+ kern/powerpc/misc.c.
+ (grubof_SOURCES): Likewise.
+ (grubof_HEADERS): Add cache.h and cpu/misc.h.
+ * conf/i386-pc.rmk (kernel_img_HEADERS): Likewise.
+ * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Likewise.
+ * include/grub/misc.h (grub_hexdump): New prototype.
+
2005-12-09 Hollis Blanchard
* configure.ac: Accept `powerpc64' as host_cpu.
Index: commands/memory.c
===================================================================
RCS file: commands/memory.c
diff -N commands/memory.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ commands/memory.c 13 Dec 2005 04:59:20 -0000
@@ -0,0 +1,116 @@
+/* memory.c - commands to manipulate the contents of memory */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2003,2005 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+static grub_err_t
+grub_cmd_memdump (struct grub_arg_list *state __attribute__ ((unused)),
+ int argc, char **args)
+
+{
+ static unsigned long address = 0;
+ static unsigned long bytes = 64;
+
+ if (argc > 2)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "too many arguments");
+
+ if (argc > 0)
+ address = grub_strtoul (args[0], 0, 0);
+
+ if (argc > 1)
+ bytes = grub_strtoul (args[1], 0, 0);
+
+ grub_hexdump ((void *) address, bytes);
+
+ address += bytes; /* Remember position for next memdump. */
+
+ return 0;
+}
+
+static grub_err_t
+grub_cmd_memset (struct grub_arg_list *state __attribute__ ((unused)),
+ int argc, char **args)
+
+{
+ grub_uint32_t *ptr;
+ grub_uint32_t value;
+ int repeat = 1;
+ int i;
+
+ if (argc < 2)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "too few arguments");
+
+ if (argc > 3)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "too many arguments");
+
+ ptr = (grub_uint32_t *) grub_strtoul (args[0], 0, 0);
+
+#ifdef HAVE_CPU_INSERT_TRAP
+ if (0 == grub_strcmp ("trap", args[1]))
+ return grub_cpu_insert_trap (ptr);
+#endif /* HAVE_CPU_INSERT_TRAP */
+
+ value = grub_strtoul (args[1], 0, 0);
+
+ if (argc > 2)
+ {
+ int bytes = grub_strtoul (args[2], 0, 0);
+ repeat = bytes / sizeof (grub_uint32_t);
+ }
+
+ for (i = 0; i < repeat; i++)
+ {
+ *ptr = value;
+ ptr++;
+ }
+ grub_arch_sync_caches (ptr, repeat * sizeof (grub_uint32_t));
+
+ return 0;
+}
+
+
+GRUB_MOD_INIT(memory)
+{
+ (void) mod;
+ grub_register_command ("memdump", grub_cmd_memdump, GRUB_COMMAND_FLAG_BOTH,
+ "memdump [address [len]]",
+ "Dump the contents of memory.", 0);
+#ifdef HAVE_CPU_INSERT_TRAP
+ grub_register_command ("memset", grub_cmd_memset, GRUB_COMMAND_FLAG_BOTH,
+ "memset address (value [len] | trap)",
+ "Write a 32-bit quantity to memory.", 0);
+#else /* HAVE_CPU_INSERT_TRAP */
+ grub_register_command ("memset", grub_cmd_memset, GRUB_COMMAND_FLAG_BOTH,
+ "memset address value [len]",
+ "Write a 32-bit quantity to memory.", 0);
+#endif /* HAVE_CPU_INSERT_TRAP */
+}
+
+GRUB_MOD_FINI(memory)
+{
+ grub_unregister_command ("memdump");
+ grub_unregister_command ("memset");
+}
Index: conf/common.mk
===================================================================
RCS file: /sources/grub/grub2/conf/common.mk,v
retrieving revision 1.4
diff -u -p -r1.4 common.mk
--- conf/common.mk 3 Dec 2005 17:54:55 -0000 1.4
+++ conf/common.mk 13 Dec 2005 04:59:20 -0000
@@ -893,10 +893,23 @@ gpt_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Commands.
-pkgdata_MODULES += hello.mod boot.mod terminal.mod ls.mod \
- cmp.mod cat.mod help.mod font.mod search.mod \
- loopback.mod default.mod timeout.mod configfile.mod \
- terminfo.mod test.mod
+pkgdata_MODULES += \
+ boot.mod \
+ cat.mod \
+ cmp.mod \
+ configfile.mod \
+ default.mod \
+ font.mod \
+ hello.mod \
+ help.mod \
+ ls.mod \
+ loopback.mod \
+ memory.mod \
+ timeout.mod \
+ search.mod \
+ terminal.mod \
+ terminfo.mod \
+ test.mod
# For hello.mod.
hello_mod_SOURCES = hello/hello.c
@@ -1682,6 +1695,57 @@ fs-terminfo_mod-term_tparm.lst: term/tpa
terminfo_mod_CFLAGS = $(COMMON_CFLAGS)
terminfo_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# For memory.mod.
+memory_mod_SOURCES = commands/memory.c
+CLEANFILES += memory.mod mod-memory.o mod-memory.c pre-memory.o memory_mod-commands_memory.o def-memory.lst und-memory.lst
+MOSTLYCLEANFILES += memory_mod-commands_memory.d
+DEFSYMFILES += def-memory.lst
+UNDSYMFILES += und-memory.lst
+
+memory.mod: pre-memory.o mod-memory.o
+ -rm -f $@
+ $(LD) $(memory_mod_LDFLAGS) $(LDFLAGS) -r -d -o $@ $^
+ $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
+
+pre-memory.o: memory_mod-commands_memory.o
+ -rm -f $@
+ $(LD) $(memory_mod_LDFLAGS) -r -d -o $@ $^
+
+mod-memory.o: mod-memory.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(memory_mod_CFLAGS) -c -o $@ $<
+
+mod-memory.c: moddep.lst genmodsrc.sh
+ sh $(srcdir)/genmodsrc.sh 'memory' $< > $@ || (rm -f $@; exit 1)
+
+def-memory.lst: pre-memory.o
+ $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 memory/' > $@
+
+und-memory.lst: pre-memory.o
+ echo 'memory' > $@
+ $(NM) -u -P -p $< | cut -f1 -d' ' >> $@
+
+memory_mod-commands_memory.o: commands/memory.c
+ $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(memory_mod_CFLAGS) -c -o $@ $<
+
+memory_mod-commands_memory.d: commands/memory.c
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(memory_mod_CFLAGS) -M $< | sed 's,memory\.o[ :]*,memory_mod-commands_memory.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
+
+-include memory_mod-commands_memory.d
+
+CLEANFILES += cmd-memory_mod-commands_memory.lst fs-memory_mod-commands_memory.lst
+COMMANDFILES += cmd-memory_mod-commands_memory.lst
+FSFILES += fs-memory_mod-commands_memory.lst
+
+cmd-memory_mod-commands_memory.lst: commands/memory.c gencmdlist.sh
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(memory_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh memory > $@ || (rm -f $@; exit 1)
+
+fs-memory_mod-commands_memory.lst: commands/memory.c genfslist.sh
+ set -e; $(CC) -Icommands -I$(srcdir)/commands $(CPPFLAGS) $(CFLAGS) $(memory_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh memory > $@ || (rm -f $@; exit 1)
+
+
+memory_mod_CFLAGS = $(COMMON_CFLAGS)
+memory_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
# Misc.
pkgdata_MODULES += gzio.mod
Index: conf/common.rmk
===================================================================
RCS file: /sources/grub/grub2/conf/common.rmk,v
retrieving revision 1.3
diff -u -p -r1.3 common.rmk
--- conf/common.rmk 3 Dec 2005 17:54:55 -0000 1.3
+++ conf/common.rmk 13 Dec 2005 04:59:20 -0000
@@ -111,10 +111,23 @@ gpt_mod_LDFLAGS = $(COMMON_LDFLAGS)
# Commands.
-pkgdata_MODULES += hello.mod boot.mod terminal.mod ls.mod \
- cmp.mod cat.mod help.mod font.mod search.mod \
- loopback.mod default.mod timeout.mod configfile.mod \
- terminfo.mod test.mod
+pkgdata_MODULES += \
+ boot.mod \
+ cat.mod \
+ cmp.mod \
+ configfile.mod \
+ default.mod \
+ font.mod \
+ hello.mod \
+ help.mod \
+ ls.mod \
+ loopback.mod \
+ memory.mod \
+ timeout.mod \
+ search.mod \
+ terminal.mod \
+ terminfo.mod \
+ test.mod
# For hello.mod.
hello_mod_SOURCES = hello/hello.c
@@ -191,6 +204,11 @@ terminfo_mod_SOURCES = term/terminfo.c t
terminfo_mod_CFLAGS = $(COMMON_CFLAGS)
terminfo_mod_LDFLAGS = $(COMMON_LDFLAGS)
+# For memory.mod.
+memory_mod_SOURCES = commands/memory.c
+memory_mod_CFLAGS = $(COMMON_CFLAGS)
+memory_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
# Misc.
pkgdata_MODULES += gzio.mod
Index: conf/i386-pc.mk
===================================================================
RCS file: /sources/grub/grub2/conf/i386-pc.mk,v
retrieving revision 1.60
diff -u -p -r1.60 i386-pc.mk
--- conf/i386-pc.mk 3 Dec 2005 17:54:55 -0000 1.60
+++ conf/i386-pc.mk 13 Dec 2005 04:59:20 -0000
@@ -258,9 +258,10 @@ kernel_img-symlist.d: symlist.c
-include kernel_img-symlist.d
-kernel_img_HEADERS = arg.h boot.h device.h disk.h dl.h elf.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 types.h \
+kernel_img_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.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 types.h \
+ cpu/misc.h \
machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \
machine/memory.h machine/loader.h machine/time.h machine/vga.h \
machine/vbe.h
Index: conf/i386-pc.rmk
===================================================================
RCS file: /sources/grub/grub2/conf/i386-pc.rmk,v
retrieving revision 1.57
diff -u -p -r1.57 i386-pc.rmk
--- conf/i386-pc.rmk 3 Dec 2005 17:54:55 -0000 1.57
+++ conf/i386-pc.rmk 13 Dec 2005 04:59:20 -0000
@@ -30,9 +30,10 @@ kernel_img_SOURCES = kern/i386/pc/startu
kern/env.c disk/i386/pc/biosdisk.c \
term/i386/pc/console.c \
symlist.c
-kernel_img_HEADERS = arg.h boot.h device.h disk.h dl.h elf.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 types.h \
+kernel_img_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.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 types.h \
+ cpu/misc.h \
machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \
machine/memory.h machine/loader.h machine/time.h machine/vga.h \
machine/vbe.h
Index: conf/powerpc-ieee1275.mk
===================================================================
RCS file: /sources/grub/grub2/conf/powerpc-ieee1275.mk,v
retrieving revision 1.53
diff -u -p -r1.53 powerpc-ieee1275.mk
--- conf/powerpc-ieee1275.mk 23 Nov 2005 04:25:16 -0000 1.53
+++ conf/powerpc-ieee1275.mk 13 Dec 2005 04:59:20 -0000
@@ -9,11 +9,11 @@ COMMON_CFLAGS = -ffreestanding -msoft-fl
MOSTLYCLEANFILES += grubof_symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-grubof_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \
+grubof_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h env.h err.h \
file.h fs.h kernel.h misc.h mm.h net.h parser.h rescue.h symbol.h \
term.h types.h powerpc/libgcc.h loader.h \
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
- machine/kernel.h
+ machine/kernel.h cpu/misc.h
grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
@@ -84,11 +84,12 @@ grub_emu_SOURCES = commands/boot.c comma
partmap/acorn.c \
util/console.c util/grub-emu.c util/misc.c \
util/i386/pc/biosdisk.c util/i386/pc/getroot.c \
- util/powerpc/ieee1275/misc.c grub_script.tab.c grub_emu_init.c
-CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.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_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.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-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.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_entry.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-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.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_default.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_timeout.d grub_emu-commands_ieee1275_halt.d grub_emu-commands_ieee1275_reboot.d grub_emu-disk_loopback.d grub_emu-fs_affs.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_fshelp.d grub_emu-fs_hfs.d grub_emu-fs_iso9660.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d grub_emu-io_gzio.d grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.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-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d grub_emu-normal_completion.d grub_emu-normal_context.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_entry.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-util_console.d grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_i386_pc_biosdisk.d grub_emu-util_i386_pc_getroot.d grub_emu-util_powerpc_ieee1275_misc.d grub_emu-grub_script_tab.d grub_emu-grub_emu_init.d
+ util/powerpc/ieee1275/misc.c grub_script.tab.c grub_emu_init.c \
+ kern/powerpc/misc.c
+CLEANFILES += grub-emu grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.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_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.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-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.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_entry.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-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o grub_emu-kern_powerpc_misc.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_default.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_timeout.d grub_emu-commands_ieee1275_halt.d grub_emu-commands_ieee1275_reboot.d grub_emu-disk_loopback.d grub_emu-fs_affs.d grub_emu-fs_ext2.d grub_emu-fs_fat.d grub_emu-fs_fshelp.d grub_emu-fs_hfs.d grub_emu-fs_iso9660.d grub_emu-fs_jfs.d grub_emu-fs_minix.d grub_emu-fs_sfs.d grub_emu-fs_ufs.d grub_emu-fs_xfs.d grub_emu-io_gzio.d grub_emu-kern_device.d grub_emu-kern_disk.d grub_emu-kern_dl.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-normal_arg.d grub_emu-normal_cmdline.d grub_emu-normal_command.d grub_emu-normal_completion.d grub_emu-normal_context.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_entry.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-util_console.d grub_emu-util_grub_emu.d grub_emu-util_misc.d grub_emu-util_i386_pc_biosdisk.d grub_emu-util_i386_pc_getroot.d grub_emu-util_powerpc_ieee1275_misc.d grub_emu-grub_script_tab.d grub_emu-grub_emu_init.d grub_emu-kern_powerpc_misc.d
-grub-emu: grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.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_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.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-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.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_entry.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-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o
+grub-emu: grub_emu-commands_boot.o grub_emu-commands_cat.o grub_emu-commands_cmp.o grub_emu-commands_configfile.o grub_emu-commands_default.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_timeout.o grub_emu-commands_ieee1275_halt.o grub_emu-commands_ieee1275_reboot.o grub_emu-disk_loopback.o grub_emu-fs_affs.o grub_emu-fs_ext2.o grub_emu-fs_fat.o grub_emu-fs_fshelp.o grub_emu-fs_hfs.o grub_emu-fs_iso9660.o grub_emu-fs_jfs.o grub_emu-fs_minix.o grub_emu-fs_sfs.o grub_emu-fs_ufs.o grub_emu-fs_xfs.o grub_emu-io_gzio.o grub_emu-kern_device.o grub_emu-kern_disk.o grub_emu-kern_dl.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-normal_arg.o grub_emu-normal_cmdline.o grub_emu-normal_command.o grub_emu-normal_completion.o grub_emu-normal_context.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_entry.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-util_console.o grub_emu-util_grub_emu.o grub_emu-util_misc.o grub_emu-util_i386_pc_biosdisk.o grub_emu-util_i386_pc_getroot.o grub_emu-util_powerpc_ieee1275_misc.o grub_emu-grub_script_tab.o grub_emu-grub_emu_init.o grub_emu-kern_powerpc_misc.o
$(BUILD_CC) -o $@ $^ $(BUILD_LDFLAGS) $(grub_emu_LDFLAGS)
grub_emu-commands_boot.o: commands/boot.c
@@ -619,6 +620,14 @@ grub_emu-grub_emu_init.d: grub_emu_init.
-include grub_emu-grub_emu_init.d
+grub_emu-kern_powerpc_misc.o: kern/powerpc/misc.c
+ $(BUILD_CC) -Ikern/powerpc -I$(srcdir)/kern/powerpc $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -c -o $@ $<
+
+grub_emu-kern_powerpc_misc.d: kern/powerpc/misc.c
+ set -e; $(BUILD_CC) -Ikern/powerpc -I$(srcdir)/kern/powerpc $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) -DGRUB_UTIL=1 $(grub_emu_CFLAGS) -M $< | sed 's,misc\.o[ :]*,grub_emu-kern_powerpc_misc.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
+
+-include grub_emu-kern_powerpc_misc.d
+
grub_emu_LDFLAGS = $(LIBCURSES)
@@ -629,11 +638,11 @@ grubof_SOURCES = kern/powerpc/ieee1275/c
kern/powerpc/ieee1275/init.c term/ieee1275/ofconsole.c \
kern/powerpc/ieee1275/openfw.c disk/ieee1275/ofdisk.c \
kern/parser.c kern/partition.c kern/env.c kern/powerpc/dl.c \
- grubof_symlist.c kern/powerpc/cache.S
-CLEANFILES += grubof grubof-kern_powerpc_ieee1275_crt0.o grubof-kern_powerpc_ieee1275_cmain.o grubof-kern_ieee1275_ieee1275.o grubof-kern_main.o grubof-kern_device.o grubof-kern_disk.o grubof-kern_dl.o grubof-kern_file.o grubof-kern_fs.o grubof-kern_err.o grubof-kern_misc.o grubof-kern_mm.o grubof-kern_loader.o grubof-kern_rescue.o grubof-kern_term.o grubof-kern_powerpc_ieee1275_init.o grubof-term_ieee1275_ofconsole.o grubof-kern_powerpc_ieee1275_openfw.o grubof-disk_ieee1275_ofdisk.o grubof-kern_parser.o grubof-kern_partition.o grubof-kern_env.o grubof-kern_powerpc_dl.o grubof-grubof_symlist.o grubof-kern_powerpc_cache.o
-MOSTLYCLEANFILES += grubof-kern_powerpc_ieee1275_crt0.d grubof-kern_powerpc_ieee1275_cmain.d grubof-kern_ieee1275_ieee1275.d grubof-kern_main.d grubof-kern_device.d grubof-kern_disk.d grubof-kern_dl.d grubof-kern_file.d grubof-kern_fs.d grubof-kern_err.d grubof-kern_misc.d grubof-kern_mm.d grubof-kern_loader.d grubof-kern_rescue.d grubof-kern_term.d grubof-kern_powerpc_ieee1275_init.d grubof-term_ieee1275_ofconsole.d grubof-kern_powerpc_ieee1275_openfw.d grubof-disk_ieee1275_ofdisk.d grubof-kern_parser.d grubof-kern_partition.d grubof-kern_env.d grubof-kern_powerpc_dl.d grubof-grubof_symlist.d grubof-kern_powerpc_cache.d
+ grubof_symlist.c kern/powerpc/cache.S kern/powerpc/misc.c
+CLEANFILES += grubof grubof-kern_powerpc_ieee1275_crt0.o grubof-kern_powerpc_ieee1275_cmain.o grubof-kern_ieee1275_ieee1275.o grubof-kern_main.o grubof-kern_device.o grubof-kern_disk.o grubof-kern_dl.o grubof-kern_file.o grubof-kern_fs.o grubof-kern_err.o grubof-kern_misc.o grubof-kern_mm.o grubof-kern_loader.o grubof-kern_rescue.o grubof-kern_term.o grubof-kern_powerpc_ieee1275_init.o grubof-term_ieee1275_ofconsole.o grubof-kern_powerpc_ieee1275_openfw.o grubof-disk_ieee1275_ofdisk.o grubof-kern_parser.o grubof-kern_partition.o grubof-kern_env.o grubof-kern_powerpc_dl.o grubof-grubof_symlist.o grubof-kern_powerpc_cache.o grubof-kern_powerpc_misc.o
+MOSTLYCLEANFILES += grubof-kern_powerpc_ieee1275_crt0.d grubof-kern_powerpc_ieee1275_cmain.d grubof-kern_ieee1275_ieee1275.d grubof-kern_main.d grubof-kern_device.d grubof-kern_disk.d grubof-kern_dl.d grubof-kern_file.d grubof-kern_fs.d grubof-kern_err.d grubof-kern_misc.d grubof-kern_mm.d grubof-kern_loader.d grubof-kern_rescue.d grubof-kern_term.d grubof-kern_powerpc_ieee1275_init.d grubof-term_ieee1275_ofconsole.d grubof-kern_powerpc_ieee1275_openfw.d grubof-disk_ieee1275_ofdisk.d grubof-kern_parser.d grubof-kern_partition.d grubof-kern_env.d grubof-kern_powerpc_dl.d grubof-grubof_symlist.d grubof-kern_powerpc_cache.d grubof-kern_powerpc_misc.d
-grubof: grubof-kern_powerpc_ieee1275_crt0.o grubof-kern_powerpc_ieee1275_cmain.o grubof-kern_ieee1275_ieee1275.o grubof-kern_main.o grubof-kern_device.o grubof-kern_disk.o grubof-kern_dl.o grubof-kern_file.o grubof-kern_fs.o grubof-kern_err.o grubof-kern_misc.o grubof-kern_mm.o grubof-kern_loader.o grubof-kern_rescue.o grubof-kern_term.o grubof-kern_powerpc_ieee1275_init.o grubof-term_ieee1275_ofconsole.o grubof-kern_powerpc_ieee1275_openfw.o grubof-disk_ieee1275_ofdisk.o grubof-kern_parser.o grubof-kern_partition.o grubof-kern_env.o grubof-kern_powerpc_dl.o grubof-grubof_symlist.o grubof-kern_powerpc_cache.o
+grubof: grubof-kern_powerpc_ieee1275_crt0.o grubof-kern_powerpc_ieee1275_cmain.o grubof-kern_ieee1275_ieee1275.o grubof-kern_main.o grubof-kern_device.o grubof-kern_disk.o grubof-kern_dl.o grubof-kern_file.o grubof-kern_fs.o grubof-kern_err.o grubof-kern_misc.o grubof-kern_mm.o grubof-kern_loader.o grubof-kern_rescue.o grubof-kern_term.o grubof-kern_powerpc_ieee1275_init.o grubof-term_ieee1275_ofconsole.o grubof-kern_powerpc_ieee1275_openfw.o grubof-disk_ieee1275_ofdisk.o grubof-kern_parser.o grubof-kern_partition.o grubof-kern_env.o grubof-kern_powerpc_dl.o grubof-grubof_symlist.o grubof-kern_powerpc_cache.o grubof-kern_powerpc_misc.o
$(CC) -o $@ $^ $(LDFLAGS) $(grubof_LDFLAGS)
grubof-kern_powerpc_ieee1275_crt0.o: kern/powerpc/ieee1275/crt0.S
@@ -836,6 +845,14 @@ grubof-kern_powerpc_cache.d: kern/powerp
-include grubof-kern_powerpc_cache.d
+grubof-kern_powerpc_misc.o: kern/powerpc/misc.c
+ $(CC) -Ikern/powerpc -I$(srcdir)/kern/powerpc $(CPPFLAGS) $(CFLAGS) $(grubof_CFLAGS) -c -o $@ $<
+
+grubof-kern_powerpc_misc.d: kern/powerpc/misc.c
+ set -e; $(CC) -Ikern/powerpc -I$(srcdir)/kern/powerpc $(CPPFLAGS) $(CFLAGS) $(grubof_CFLAGS) -M $< | sed 's,misc\.o[ :]*,grubof-kern_powerpc_misc.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
+
+-include grubof-kern_powerpc_misc.d
+
grubof_HEADERS = grub/powerpc/ieee1275/ieee1275.h
grubof_CFLAGS = $(COMMON_CFLAGS)
grubof_ASFLAGS = $(COMMON_ASFLAGS)
Index: conf/powerpc-ieee1275.rmk
===================================================================
RCS file: /sources/grub/grub2/conf/powerpc-ieee1275.rmk,v
retrieving revision 1.51
diff -u -p -r1.51 powerpc-ieee1275.rmk
--- conf/powerpc-ieee1275.rmk 23 Nov 2005 02:23:08 -0000 1.51
+++ conf/powerpc-ieee1275.rmk 13 Dec 2005 04:59:20 -0000
@@ -9,11 +9,11 @@ COMMON_CFLAGS = -ffreestanding -msoft-fl
MOSTLYCLEANFILES += grubof_symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-grubof_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \
+grubof_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h env.h err.h \
file.h fs.h kernel.h misc.h mm.h net.h parser.h rescue.h symbol.h \
term.h types.h powerpc/libgcc.h loader.h \
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
- machine/kernel.h
+ machine/kernel.h cpu/misc.h
grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
@@ -54,7 +54,8 @@ grub_emu_SOURCES = commands/boot.c comma
partmap/acorn.c \
util/console.c util/grub-emu.c util/misc.c \
util/i386/pc/biosdisk.c util/i386/pc/getroot.c \
- util/powerpc/ieee1275/misc.c grub_script.tab.c grub_emu_init.c
+ util/powerpc/ieee1275/misc.c grub_script.tab.c grub_emu_init.c \
+ kern/powerpc/misc.c
grub_emu_LDFLAGS = $(LIBCURSES)
@@ -65,7 +66,7 @@ grubof_SOURCES = kern/powerpc/ieee1275/c
kern/powerpc/ieee1275/init.c term/ieee1275/ofconsole.c \
kern/powerpc/ieee1275/openfw.c disk/ieee1275/ofdisk.c \
kern/parser.c kern/partition.c kern/env.c kern/powerpc/dl.c \
- grubof_symlist.c kern/powerpc/cache.S
+ grubof_symlist.c kern/powerpc/cache.S kern/powerpc/misc.c
grubof_HEADERS = grub/powerpc/ieee1275/ieee1275.h
grubof_CFLAGS = $(COMMON_CFLAGS)
grubof_ASFLAGS = $(COMMON_ASFLAGS)
Index: conf/sparc64-ieee1275.mk
===================================================================
RCS file: /sources/grub/grub2/conf/sparc64-ieee1275.mk,v
retrieving revision 1.8
diff -u -p -r1.8 sparc64-ieee1275.mk
--- conf/sparc64-ieee1275.mk 18 Nov 2005 14:56:55 -0000 1.8
+++ conf/sparc64-ieee1275.mk 13 Dec 2005 04:59:20 -0000
@@ -10,11 +10,11 @@ COMMON_LDFLAGS = -melf64_sparc
MOSTLYCLEANFILES += grubof_symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-grubof_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \
+grubof_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h env.h err.h \
file.h fs.h kernel.h misc.h mm.h net.h parser.h rescue.h symbol.h \
term.h types.h sparc64/libgcc.h loader.h \
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
- machine/kernel.h
+ machine/kernel.h cpu/misc.h
grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
Index: conf/sparc64-ieee1275.rmk
===================================================================
RCS file: /sources/grub/grub2/conf/sparc64-ieee1275.rmk,v
retrieving revision 1.8
diff -u -p -r1.8 sparc64-ieee1275.rmk
--- conf/sparc64-ieee1275.rmk 18 Nov 2005 10:51:00 -0000 1.8
+++ conf/sparc64-ieee1275.rmk 13 Dec 2005 04:59:20 -0000
@@ -10,11 +10,11 @@ COMMON_LDFLAGS = -melf64_sparc
MOSTLYCLEANFILES += grubof_symlist.c kernel_syms.lst
DEFSYMFILES += kernel_syms.lst
-grubof_HEADERS = arg.h boot.h device.h disk.h dl.h elf.h env.h err.h \
+grubof_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h env.h err.h \
file.h fs.h kernel.h misc.h mm.h net.h parser.h rescue.h symbol.h \
term.h types.h sparc64/libgcc.h loader.h \
partition.h pc_partition.h ieee1275/ieee1275.h machine/time.h \
- machine/kernel.h
+ machine/kernel.h cpu/misc.h
grubof_symlist.c: $(addprefix include/grub/,$(grubof_HEADERS)) gensymlist.sh
sh $(srcdir)/gensymlist.sh $(filter %.h,$^) > $@
Index: include/grub/misc.h
===================================================================
RCS file: /sources/grub/grub2/include/grub/misc.h,v
retrieving revision 1.17
diff -u -p -r1.17 misc.h
--- include/grub/misc.h 24 Oct 2005 10:23:46 -0000 1.17
+++ include/grub/misc.h 13 Dec 2005 04:59:20 -0000
@@ -76,4 +76,6 @@ grub_ssize_t EXPORT_FUNC(grub_utf8_to_uc
const grub_uint8_t *src,
grub_size_t size);
+void EXPORT_FUNC(grub_hexdump) (const void *ptr, unsigned long bytes);
+
#endif /* ! GRUB_MISC_HEADER */
Index: include/grub/i386/misc.h
===================================================================
RCS file: include/grub/i386/misc.h
diff -N include/grub/i386/misc.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ include/grub/i386/misc.h 13 Dec 2005 04:59:20 -0000
@@ -0,0 +1,25 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2005 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef GRUB_MISC_CPU_HEADER
+#define GRUB_MISC_CPU_HEADER 1
+
+#undef HAVE_CPU_INSERT_TRAP
+
+#endif /* ! GRUB_MISC_CPU_HEADER */
Index: include/grub/powerpc/misc.h
===================================================================
RCS file: include/grub/powerpc/misc.h
diff -N include/grub/powerpc/misc.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ include/grub/powerpc/misc.h 13 Dec 2005 04:59:20 -0000
@@ -0,0 +1,26 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2005 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef GRUB_MISC_CPU_HEADER
+#define GRUB_MISC_CPU_HEADER 1
+
+#define HAVE_CPU_INSERT_TRAP
+int EXPORT_FUNC(grub_cpu_insert_trap) (void *address);
+
+#endif /* ! GRUB_MISC_CPU_HEADER */
Index: include/grub/sparc64/misc.h
===================================================================
RCS file: include/grub/sparc64/misc.h
diff -N include/grub/sparc64/misc.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ include/grub/sparc64/misc.h 13 Dec 2005 04:59:20 -0000
@@ -0,0 +1,25 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2005 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef GRUB_MISC_CPU_HEADER
+#define GRUB_MISC_CPU_HEADER 1
+
+#undef HAVE_CPU_INSERT_TRAP
+
+#endif /* ! GRUB_MISC_CPU_HEADER */
Index: kern/misc.c
===================================================================
RCS file: /sources/grub/grub2/kern/misc.c,v
retrieving revision 1.25
diff -u -p -r1.25 misc.c
--- kern/misc.c 28 Oct 2005 03:14:33 -0000 1.25
+++ kern/misc.c 13 Dec 2005 04:59:20 -0000
@@ -875,3 +875,29 @@ grub_utf8_to_ucs4 (grub_uint32_t *dest,
return p - dest;
}
+
+void
+grub_hexdump (const void *ptr, unsigned long bytes)
+{
+ const char *chr;
+ unsigned long i;
+ unsigned long j;
+ const unsigned int stride = 4 * sizeof (grub_uint32_t);
+
+ /* Word-align `ptr'. */
+ chr = (char *) ((unsigned long) ptr & ~0x3);
+
+ for (i = 0; i < bytes; i += stride)
+ {
+ int *word = (int *) (chr + i);
+ grub_printf ("%08x: %08x %08x %08x %08x ", (grub_uint32_t) word,
+ word[0], word[1], word[2], word[3]);
+
+ for (j = 0; j < stride; j++)
+ if (grub_isprint (chr[i+j]))
+ grub_putchar (chr[i+j]);
+ else
+ grub_putchar ('.');
+ grub_putchar ('\n');
+ }
+}
Index: kern/powerpc/misc.c
===================================================================
RCS file: kern/powerpc/misc.c
diff -N kern/powerpc/misc.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ kern/powerpc/misc.c 13 Dec 2005 04:59:20 -0000
@@ -0,0 +1,31 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2005 Free Software Foundation, Inc.
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include
+#include
+
+int grub_cpu_insert_trap (void *address)
+{
+ grub_uint32_t *instruction = address;
+
+ *instruction = 0x7fe00008; /* trap */
+ grub_arch_sync_caches ((void *) address, sizeof (grub_uint32_t));
+