commit-grub
[Top][All Lists]
Advanced

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

[1781] 2008-08-06 Robert Millan <address@hidden>


From: Robert Millan
Subject: [1781] 2008-08-06 Robert Millan <address@hidden>
Date: Wed, 06 Aug 2008 00:20:06 +0000

Revision: 1781
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1781
Author:   robertmh
Date:     2008-08-06 00:20:04 +0000 (Wed, 06 Aug 2008)

Log Message:
-----------
2008-08-06  Robert Millan  <address@hidden>

        * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
        `halt.mod'.
        (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
        (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.

        * kern/i386/halt.c: New file.
        * kern/i386/reboot.c: Likewise.
        * include/grub/i386/reboot.h: Likewise.
        * include/grub/i386/halt.h: Likewise.

        * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
        Include `<grub/cpu/halt.h>'.
        * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
        [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.

        * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
        (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
        (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
        (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
        (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
        (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
        from here ...
        * include/grub/i386/at_keyboard.h: ... to here.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/DISTLIST
    trunk/grub2/commands/halt.c
    trunk/grub2/commands/reboot.c
    trunk/grub2/conf/i386-coreboot.mk
    trunk/grub2/conf/i386-coreboot.rmk
    trunk/grub2/conf/i386-efi.mk
    trunk/grub2/conf/i386-pc.mk
    trunk/grub2/term/i386/pc/at_keyboard.c

Added Paths:
-----------
    trunk/grub2/include/grub/i386/at_keyboard.h
    trunk/grub2/include/grub/i386/halt.h
    trunk/grub2/include/grub/i386/reboot.h
    trunk/grub2/kern/i386/halt.c
    trunk/grub2/kern/i386/reboot.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/ChangeLog       2008-08-06 00:20:04 UTC (rev 1781)
@@ -1,3 +1,29 @@
+2008-08-06  Robert Millan  <address@hidden>
+
+       * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
+       `halt.mod'.
+       (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
+       (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
+
+       * kern/i386/halt.c: New file.
+       * kern/i386/reboot.c: Likewise.
+       * include/grub/i386/reboot.h: Likewise.
+       * include/grub/i386/halt.h: Likewise.
+
+       * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
+       Include `<grub/cpu/halt.h>'.
+       * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
+       [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
+
+       * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
+       (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
+       (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
+       (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
+       (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
+       (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
+       from here ...
+       * include/grub/i386/at_keyboard.h: ... to here.
+
 2008-08-05  Robert Millan  <address@hidden>
 
        * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.

Modified: trunk/grub2/DISTLIST
===================================================================
--- trunk/grub2/DISTLIST        2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/DISTLIST        2008-08-06 00:20:04 UTC (rev 1781)
@@ -124,6 +124,7 @@
 include/grub/gzio.h
 include/grub/hexdump.h
 include/grub/hfs.h
+include/grub/i386/at_keyboard.h
 include/grub/i386/coreboot/boot.h
 include/grub/i386/coreboot/console.h
 include/grub/i386/coreboot/init.h
@@ -135,6 +136,7 @@
 include/grub/i386/efi/kernel.h
 include/grub/i386/efi/loader.h
 include/grub/i386/efi/time.h
+include/grub/i386/halt.h
 include/grub/i386/ieee1275/loader.h
 include/grub/i386/ieee1275/machine.h
 include/grub/i386/ieee1275/memory.h
@@ -160,6 +162,7 @@
 include/grub/i386/pc/vbeutil.h
 include/grub/i386/pc/vga.h
 include/grub/i386/pit.h
+include/grub/i386/reboot.h
 include/grub/i386/setjmp.h
 include/grub/i386/time.h
 include/grub/i386/types.h
@@ -234,6 +237,7 @@
 kern/i386/dl.c
 kern/i386/efi/init.c
 kern/i386/efi/startup.S
+kern/i386/halt.c
 kern/i386/linuxbios/init.c
 kern/i386/linuxbios/startup.S
 kern/i386/linuxbios/table.c
@@ -243,6 +247,7 @@
 kern/i386/pc/startup.S
 kern/i386/pit.c
 kern/i386/realmode.S
+kern/i386/reboot.c
 kern/ieee1275/cmain.c
 kern/ieee1275/ieee1275.c
 kern/ieee1275/init.c

Modified: trunk/grub2/commands/halt.c
===================================================================
--- trunk/grub2/commands/halt.c 2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/commands/halt.c 2008-08-06 00:20:04 UTC (rev 1781)
@@ -25,6 +25,9 @@
 #include <grub/machine/kernel.h>
 #elif defined(GRUB_MACHINE_EFI)
 #include <grub/efi/efi.h>
+#else
+/* Platforms shipping standalone halt, such as coreboot.  */
+#include <grub/cpu/halt.h>
 #endif
 
 static grub_err_t

Modified: trunk/grub2/commands/reboot.c
===================================================================
--- trunk/grub2/commands/reboot.c       2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/commands/reboot.c       2008-08-06 00:20:04 UTC (rev 1781)
@@ -27,6 +27,9 @@
 #include <grub/efi/efi.h>
 #elif defined(GRUB_MACHINE_PCBIOS)
 #include <grub/machine/init.h>
+#else
+/* Platforms shipping standalone reboot, such as coreboot.  */
+#include <grub/cpu/reboot.h>
 #endif
 
 

Modified: trunk/grub2/conf/i386-coreboot.mk
===================================================================
--- trunk/grub2/conf/i386-coreboot.mk   2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/conf/i386-coreboot.mk   2008-08-06 00:20:04 UTC (rev 1781)
@@ -19,15 +19,18 @@
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
        kern/time.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 \
+       kern/generic/millisleep.c \
        kern/env.c \
        term/i386/pc/console.c \
        term/i386/pc/at_keyboard.c term/i386/pc/vga_text.c \
        symlist.c
-CLEANFILES += kernel.elf kernel_elf-kern_i386_linuxbios_startup.o 
kernel_elf-kern_i386_linuxbios_init.o kernel_elf-kern_i386_linuxbios_table.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_env.o 
kernel_elf-term_i386_pc_console.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-symlist.o
-MOSTLYCLEANFILES += kernel_elf-kern_i386_linuxbios_startup.d 
kernel_elf-kern_i386_linuxbios_init.d kernel_elf-kern_i386_linuxbios_table.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_env.d 
kernel_elf-term_i386_pc_console.d kernel_elf-term_i386_pc_at_keyboard.d 
kernel_elf-term_i386_pc_vga_text.d kernel_elf-symlist.d
+CLEANFILES += kernel.elf kernel_elf-kern_i386_linuxbios_startup.o 
kernel_elf-kern_i386_linuxbios_init.o kernel_elf-kern_i386_linuxbios_table.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_console.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-symlist.o
+MOSTLYCLEANFILES += kernel_elf-kern_i386_linuxbios_startup.d 
kernel_elf-kern_i386_linuxbios_init.d kernel_elf-kern_i386_linuxbios_table.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_console.d kernel_elf-term_i386_pc_at_keyboard.d 
kernel_elf-term_i386_pc_vga_text.d kernel_elf-symlist.d
 
-kernel.elf: $(kernel_elf_DEPENDENCIES) 
kernel_elf-kern_i386_linuxbios_startup.o kernel_elf-kern_i386_linuxbios_init.o 
kernel_elf-kern_i386_linuxbios_table.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_env.o kernel_elf-term_i386_pc_console.o 
kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-term_i386_pc_vga_text.o 
kernel_elf-symlist.o
-       $(TARGET_CC) -o $@ kernel_elf-kern_i386_linuxbios_startup.o 
kernel_elf-kern_i386_linuxbios_init.o kernel_elf-kern_i386_linuxbios_table.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_env.o 
kernel_elf-term_i386_pc_console.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-symlist.o $(TARGET_LDFLAGS) 
$(kernel_elf_LDFLAGS)
+kernel.elf: $(kernel_elf_DEPENDENCIES) 
kernel_elf-kern_i386_linuxbios_startup.o kernel_elf-kern_i386_linuxbios_init.o 
kernel_elf-kern_i386_linuxbios_table.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_console.o 
kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-term_i386_pc_vga_text.o 
kernel_elf-symlist.o
+       $(TARGET_CC) -o $@ kernel_elf-kern_i386_linuxbios_startup.o 
kernel_elf-kern_i386_linuxbios_init.o kernel_elf-kern_i386_linuxbios_table.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_console.o kernel_elf-term_i386_pc_at_keyboard.o 
kernel_elf-term_i386_pc_vga_text.o kernel_elf-symlist.o $(TARGET_LDFLAGS) 
$(kernel_elf_LDFLAGS)
 
 kernel_elf-kern_i386_linuxbios_startup.o: kern/i386/linuxbios/startup.S 
$(kern/i386/linuxbios/startup.S_DEPENDENCIES)
        $(TARGET_CC) -Ikern/i386/linuxbios -I$(srcdir)/kern/i386/linuxbios 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
@@ -105,6 +108,22 @@
        $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_partition.d
 
+kernel_elf-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_elf_CFLAGS) -MD -c -o $@ $<
+-include kernel_elf-kern_i386_tsc.d
+
+kernel_elf-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.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_pit.d
+
+kernel_elf-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c 
$(kern/generic/rtc_get_time_ms.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_rtc_get_time_ms.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
+
 kernel_elf-kern_env.o: kern/env.c $(kern/env.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) 
$(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
 -include kernel_elf-kern_env.d
@@ -561,7 +580,8 @@
 pkglib_MODULES = _linux.mod linux.mod normal.mod       \
        _multiboot.mod multiboot.mod aout.mod           \
        play.mod cpuid.mod serial.mod ata.mod           \
-       memdisk.mod pci.mod lspci.mod
+       memdisk.mod pci.mod lspci.mod reboot.mod        \
+       halt.mod
 
 # For _linux.mod.
 _linux_mod_SOURCES = loader/i386/pc/linux.c
@@ -1005,6 +1025,158 @@
 normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
 normal_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
+# For reboot.mod.
+reboot_mod_SOURCES = commands/reboot.c kern/i386/reboot.c
+CLEANFILES += reboot.mod mod-reboot.o mod-reboot.c pre-reboot.o 
reboot_mod-commands_reboot.o reboot_mod-kern_i386_reboot.o und-reboot.lst
+ifneq ($(reboot_mod_EXPORTS),no)
+CLEANFILES += def-reboot.lst
+DEFSYMFILES += def-reboot.lst
+endif
+MOSTLYCLEANFILES += reboot_mod-commands_reboot.d reboot_mod-kern_i386_reboot.d
+UNDSYMFILES += und-reboot.lst
+
+reboot.mod: pre-reboot.o mod-reboot.o $(TARGET_OBJ2ELF)
+       -rm -f $@
+       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-reboot.o mod-reboot.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-reboot.o: $(reboot_mod_DEPENDENCIES) reboot_mod-commands_reboot.o 
reboot_mod-kern_i386_reboot.o
+       -rm -f $@
+       $(TARGET_CC) $(reboot_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
reboot_mod-commands_reboot.o reboot_mod-kern_i386_reboot.o
+
+mod-reboot.o: mod-reboot.c
+       $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) 
-c -o $@ $<
+
+mod-reboot.c: moddep.lst genmodsrc.sh
+       sh $(srcdir)/genmodsrc.sh 'reboot' $< > $@ || (rm -f $@; exit 1)
+
+ifneq ($(reboot_mod_EXPORTS),no)
+def-reboot.lst: pre-reboot.o
+       $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 reboot/' > $@
+endif
+
+und-reboot.lst: pre-reboot.o
+       echo 'reboot' > $@
+       $(NM) -u -P -p $< | cut -f1 -d' ' >> $@
+
+reboot_mod-commands_reboot.o: commands/reboot.c 
$(commands/reboot.c_DEPENDENCIES)
+       $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -MD -c -o $@ $<
+-include reboot_mod-commands_reboot.d
+
+CLEANFILES += cmd-reboot_mod-commands_reboot.lst 
fs-reboot_mod-commands_reboot.lst partmap-reboot_mod-commands_reboot.lst
+COMMANDFILES += cmd-reboot_mod-commands_reboot.lst
+FSFILES += fs-reboot_mod-commands_reboot.lst
+PARTMAPFILES += partmap-reboot_mod-commands_reboot.lst
+
+cmd-reboot_mod-commands_reboot.lst: commands/reboot.c 
$(commands/reboot.c_DEPENDENCIES) gencmdlist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $<     | sh 
$(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1)
+
+fs-reboot_mod-commands_reboot.lst: commands/reboot.c 
$(commands/reboot.c_DEPENDENCIES) genfslist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genfslist.sh reboot > $@ || (rm -f $@; exit 1)
+
+partmap-reboot_mod-commands_reboot.lst: commands/reboot.c 
$(commands/reboot.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh reboot > $@ || (rm -f $@; exit 1)
+
+
+reboot_mod-kern_i386_reboot.o: kern/i386/reboot.c 
$(kern/i386/reboot.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -MD -c -o $@ $<
+-include reboot_mod-kern_i386_reboot.d
+
+CLEANFILES += cmd-reboot_mod-kern_i386_reboot.lst 
fs-reboot_mod-kern_i386_reboot.lst partmap-reboot_mod-kern_i386_reboot.lst
+COMMANDFILES += cmd-reboot_mod-kern_i386_reboot.lst
+FSFILES += fs-reboot_mod-kern_i386_reboot.lst
+PARTMAPFILES += partmap-reboot_mod-kern_i386_reboot.lst
+
+cmd-reboot_mod-kern_i386_reboot.lst: kern/i386/reboot.c 
$(kern/i386/reboot.c_DEPENDENCIES) gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $<           | sh 
$(srcdir)/gencmdlist.sh reboot > $@ || (rm -f $@; exit 1)
+
+fs-reboot_mod-kern_i386_reboot.lst: kern/i386/reboot.c 
$(kern/i386/reboot.c_DEPENDENCIES) genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genfslist.sh reboot > $@ || (rm -f $@; exit 1)
+
+partmap-reboot_mod-kern_i386_reboot.lst: kern/i386/reboot.c 
$(kern/i386/reboot.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(reboot_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genpartmaplist.sh reboot > $@ || (rm -f $@; exit 1)
+
+
+reboot_mod_CFLAGS = $(COMMON_CFLAGS)
+reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For halt.mod.
+halt_mod_SOURCES = commands/halt.c kern/i386/halt.c
+CLEANFILES += halt.mod mod-halt.o mod-halt.c pre-halt.o 
halt_mod-commands_halt.o halt_mod-kern_i386_halt.o und-halt.lst
+ifneq ($(halt_mod_EXPORTS),no)
+CLEANFILES += def-halt.lst
+DEFSYMFILES += def-halt.lst
+endif
+MOSTLYCLEANFILES += halt_mod-commands_halt.d halt_mod-kern_i386_halt.d
+UNDSYMFILES += und-halt.lst
+
+halt.mod: pre-halt.o mod-halt.o $(TARGET_OBJ2ELF)
+       -rm -f $@
+       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) 
-Wl,-r,-d -o $@ pre-halt.o mod-halt.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-halt.o: $(halt_mod_DEPENDENCIES) halt_mod-commands_halt.o 
halt_mod-kern_i386_halt.o
+       -rm -f $@
+       $(TARGET_CC) $(halt_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ 
halt_mod-commands_halt.o halt_mod-kern_i386_halt.o
+
+mod-halt.o: mod-halt.c
+       $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -c 
-o $@ $<
+
+mod-halt.c: moddep.lst genmodsrc.sh
+       sh $(srcdir)/genmodsrc.sh 'halt' $< > $@ || (rm -f $@; exit 1)
+
+ifneq ($(halt_mod_EXPORTS),no)
+def-halt.lst: pre-halt.o
+       $(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 halt/' > $@
+endif
+
+und-halt.lst: pre-halt.o
+       echo 'halt' > $@
+       $(NM) -u -P -p $< | cut -f1 -d' ' >> $@
+
+halt_mod-commands_halt.o: commands/halt.c $(commands/halt.c_DEPENDENCIES)
+       $(TARGET_CC) -Icommands -I$(srcdir)/commands $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(halt_mod_CFLAGS) -MD -c -o $@ $<
+-include halt_mod-commands_halt.d
+
+CLEANFILES += cmd-halt_mod-commands_halt.lst fs-halt_mod-commands_halt.lst 
partmap-halt_mod-commands_halt.lst
+COMMANDFILES += cmd-halt_mod-commands_halt.lst
+FSFILES += fs-halt_mod-commands_halt.lst
+PARTMAPFILES += partmap-halt_mod-commands_halt.lst
+
+cmd-halt_mod-commands_halt.lst: commands/halt.c 
$(commands/halt.c_DEPENDENCIES) gencmdlist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $<       | sh 
$(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1)
+
+fs-halt_mod-commands_halt.lst: commands/halt.c $(commands/halt.c_DEPENDENCIES) 
genfslist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $<       | sh 
$(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1)
+
+partmap-halt_mod-commands_halt.lst: commands/halt.c 
$(commands/halt.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Icommands -I$(srcdir)/commands 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $<       | sh 
$(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1)
+
+
+halt_mod-kern_i386_halt.o: kern/i386/halt.c $(kern/i386/halt.c_DEPENDENCIES)
+       $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(halt_mod_CFLAGS) -MD -c -o $@ $<
+-include halt_mod-kern_i386_halt.d
+
+CLEANFILES += cmd-halt_mod-kern_i386_halt.lst fs-halt_mod-kern_i386_halt.lst 
partmap-halt_mod-kern_i386_halt.lst
+COMMANDFILES += cmd-halt_mod-kern_i386_halt.lst
+FSFILES += fs-halt_mod-kern_i386_halt.lst
+PARTMAPFILES += partmap-halt_mod-kern_i386_halt.lst
+
+cmd-halt_mod-kern_i386_halt.lst: kern/i386/halt.c 
$(kern/i386/halt.c_DEPENDENCIES) gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $<     | sh 
$(srcdir)/gencmdlist.sh halt > $@ || (rm -f $@; exit 1)
+
+fs-halt_mod-kern_i386_halt.lst: kern/i386/halt.c 
$(kern/i386/halt.c_DEPENDENCIES) genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genfslist.sh halt > $@ || (rm -f $@; exit 1)
+
+partmap-halt_mod-kern_i386_halt.lst: kern/i386/halt.c 
$(kern/i386/halt.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(halt_mod_CFLAGS) -E $<     | sh 
$(srcdir)/genpartmaplist.sh halt > $@ || (rm -f $@; exit 1)
+
+
+halt_mod_CFLAGS = $(COMMON_CFLAGS)
+halt_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
 # For serial.mod.
 serial_mod_SOURCES = term/i386/pc/serial.c
 CLEANFILES += serial.mod mod-serial.o mod-serial.c pre-serial.o 
serial_mod-term_i386_pc_serial.o und-serial.lst

Modified: trunk/grub2/conf/i386-coreboot.rmk
===================================================================
--- trunk/grub2/conf/i386-coreboot.rmk  2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/conf/i386-coreboot.rmk  2008-08-06 00:20:04 UTC (rev 1781)
@@ -99,7 +99,8 @@
 pkglib_MODULES = _linux.mod linux.mod normal.mod       \
        _multiboot.mod multiboot.mod aout.mod           \
        play.mod cpuid.mod serial.mod ata.mod           \
-       memdisk.mod pci.mod lspci.mod
+       memdisk.mod pci.mod lspci.mod reboot.mod        \
+       halt.mod
 
 # For _linux.mod.
 _linux_mod_SOURCES = loader/i386/pc/linux.c
@@ -121,6 +122,16 @@
 normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
 normal_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
+# For reboot.mod.
+reboot_mod_SOURCES = commands/reboot.c kern/i386/reboot.c
+reboot_mod_CFLAGS = $(COMMON_CFLAGS)
+reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For halt.mod.
+halt_mod_SOURCES = commands/halt.c kern/i386/halt.c
+halt_mod_CFLAGS = $(COMMON_CFLAGS)
+halt_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
 # For serial.mod.
 serial_mod_SOURCES = term/i386/pc/serial.c
 serial_mod_CFLAGS = $(COMMON_CFLAGS)

Modified: trunk/grub2/conf/i386-efi.mk
===================================================================
--- trunk/grub2/conf/i386-efi.mk        2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/conf/i386-efi.mk        2008-08-06 00:20:04 UTC (rev 1781)
@@ -128,15 +128,15 @@
        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/i386/tsc.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_i386_tsc.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_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_i386_tsc.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_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_i386_tsc.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_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_i386_tsc.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_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,25 @@
        set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
 
 
+kernel_mod-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.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_pit.d
+
+CLEANFILES += cmd-kernel_mod-kern_i386_pit.lst fs-kernel_mod-kern_i386_pit.lst 
partmap-kernel_mod-kern_i386_pit.lst
+COMMANDFILES += cmd-kernel_mod-kern_i386_pit.lst
+FSFILES += fs-kernel_mod-kern_i386_pit.lst
+PARTMAPFILES += partmap-kernel_mod-kern_i386_pit.lst
+
+cmd-kernel_mod-kern_i386_pit.lst: kern/i386/pit.c 
$(kern/i386/pit.c_DEPENDENCIES) gencmdlist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<           | sh 
$(srcdir)/gencmdlist.sh kernel > $@ || (rm -f $@; exit 1)
+
+fs-kernel_mod-kern_i386_pit.lst: kern/i386/pit.c 
$(kern/i386/pit.c_DEPENDENCIES) genfslist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genfslist.sh kernel > $@ || (rm -f $@; exit 1)
+
+partmap-kernel_mod-kern_i386_pit.lst: kern/i386/pit.c 
$(kern/i386/pit.c_DEPENDENCIES) genpartmaplist.sh
+       set -e;           $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 
$(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -E $<           | sh 
$(srcdir)/genpartmaplist.sh kernel > $@ || (rm -f $@; exit 1)
+
+
 kernel_mod-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c 
$(kern/generic/rtc_get_time_ms.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) 
 $(TARGET_CFLAGS) $(kernel_mod_CFLAGS) -MD -c -o $@ $<
 -include kernel_mod-kern_generic_rtc_get_time_ms.d

Modified: trunk/grub2/conf/i386-pc.mk
===================================================================
--- trunk/grub2/conf/i386-pc.mk 2008-08-05 20:24:00 UTC (rev 1780)
+++ trunk/grub2/conf/i386-pc.mk 2008-08-06 00:20:04 UTC (rev 1781)
@@ -110,19 +110,19 @@
        kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
        kern/time.c \
        kern/i386/dl.c kern/i386/pc/init.c kern/parser.c kern/partition.c \
-       kern/i386/tsc.c \
+       kern/i386/tsc.c kern/i386/pit.c \
        kern/generic/rtc_get_time_ms.c \
        kern/generic/millisleep.c \
        kern/env.c \
        term/i386/pc/console.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_parser.o kernel_img-kern_partition.o kernel_img-kern_i386_tsc.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-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_parser.d kernel_img-kern_partition.d kernel_img-kern_i386_tsc.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-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_i386_dl.o kernel_img-kern_i386_pc_init.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-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_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-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_parser.o kernel_img-kern_partition.o kernel_img-kern_i386_tsc.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-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_i386_dl.o kernel_img-kern_i386_pc_init.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-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)
@@ -201,6 +201,10 @@
        $(TARGET_CC) -Ikern/i386 -I$(srcdir)/kern/i386 $(TARGET_CPPFLAGS)  
$(TARGET_CFLAGS) $(kernel_img_CFLAGS) -MD -c -o $@ $<
 -include kernel_img-kern_i386_tsc.d
 
+kernel_img-kern_i386_pit.o: kern/i386/pit.c $(kern/i386/pit.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_pit.d
+
 kernel_img-kern_generic_rtc_get_time_ms.o: kern/generic/rtc_get_time_ms.c 
$(kern/generic/rtc_get_time_ms.c_DEPENDENCIES)
        $(TARGET_CC) -Ikern/generic -I$(srcdir)/kern/generic $(TARGET_CPPFLAGS) 
 $(TARGET_CFLAGS) $(kernel_img_CFLAGS) -MD -c -o $@ $<
 -include kernel_img-kern_generic_rtc_get_time_ms.d

Added: trunk/grub2/include/grub/i386/at_keyboard.h
===================================================================
--- trunk/grub2/include/grub/i386/at_keyboard.h                         (rev 0)
+++ trunk/grub2/include/grub/i386/at_keyboard.h 2008-08-06 00:20:04 UTC (rev 
1781)
@@ -0,0 +1,57 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 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/>.
+ */
+
+#ifndef GRUB_CPU_AT_KEYBOARD_HEADER
+#define GRUB_CPU_AT_KEYBOARD_HEADER    1
+
+#include <grub/machine/machine.h>
+
+#define SHIFT_L                0x2a
+#define SHIFT_R                0x36
+#define CTRL           0x1d
+#define ALT            0x38
+#define CAPS_LOCK      0x3a
+
+#define KEYBOARD_REG_DATA      0x60
+#define KEYBOARD_REG_STATUS    0x64
+
+/* Used for sending commands to the controller.  */
+#define KEYBOARD_COMMAND_ISREADY(x)    !((x) & 0x02)
+#define KEYBOARD_COMMAND_READ          0x20
+#define KEYBOARD_COMMAND_WRITE         0x60
+#define KEYBOARD_COMMAND_REBOOT                0xfe
+
+#define KEYBOARD_SCANCODE_SET1         0x40
+
+#define KEYBOARD_ISMAKE(x)     !((x) & 0x80)
+#define KEYBOARD_ISREADY(x)    (((x) & 0x01) == 0)
+#define KEYBOARD_SCANCODE(x)   ((x) & 0x7f)
+
+#ifdef GRUB_MACHINE_IEEE1275
+#define OLPC_UP                GRUB_TERM_UP
+#define OLPC_DOWN      GRUB_TERM_DOWN
+#define OLPC_LEFT      GRUB_TERM_LEFT
+#define OLPC_RIGHT     GRUB_TERM_RIGHT
+#else
+#define OLPC_UP                '\0'
+#define OLPC_DOWN      '\0'
+#define OLPC_LEFT      '\0'
+#define OLPC_RIGHT     '\0'
+#endif
+
+#endif

Added: trunk/grub2/include/grub/i386/halt.h
===================================================================
--- trunk/grub2/include/grub/i386/halt.h                                (rev 0)
+++ trunk/grub2/include/grub/i386/halt.h        2008-08-06 00:20:04 UTC (rev 
1781)
@@ -0,0 +1,19 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 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/>.
+ */
+
+extern void grub_halt (void);

Added: trunk/grub2/include/grub/i386/reboot.h
===================================================================
--- trunk/grub2/include/grub/i386/reboot.h                              (rev 0)
+++ trunk/grub2/include/grub/i386/reboot.h      2008-08-06 00:20:04 UTC (rev 
1781)
@@ -0,0 +1,19 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 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/>.
+ */
+
+extern void grub_reboot (void);

Added: trunk/grub2/kern/i386/halt.c
===================================================================
--- trunk/grub2/kern/i386/halt.c                                (rev 0)
+++ trunk/grub2/kern/i386/halt.c        2008-08-06 00:20:04 UTC (rev 1781)
@@ -0,0 +1,42 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 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/cpu/io.h>
+#include <grub/cpu/halt.h>
+#include <grub/misc.h>
+
+const char bochs_shutdown[] = "Shutdown";
+
+void
+grub_halt (void)
+{
+  int i;
+
+  /* Disable interrupts.  */
+  __asm__ __volatile__ ("cli");
+
+  /* Bochs, QEMU, etc.  */
+  for (i = 0; i < sizeof (bochs_shutdown) - 1; i++)
+    grub_outb (bochs_shutdown[i], 0x8900);
+
+  grub_printf ("GRUB doesn't know how to halt this machine yet!\n");
+
+  /* In order to return we'd have to check what the previous status of IF
+     flag was.  But user most likely doesn't want to return anyway ...  */
+  grub_stop ();
+}

Added: trunk/grub2/kern/i386/reboot.c
===================================================================
--- trunk/grub2/kern/i386/reboot.c                              (rev 0)
+++ trunk/grub2/kern/i386/reboot.c      2008-08-06 00:20:04 UTC (rev 1781)
@@ -0,0 +1,31 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 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/cpu/io.h>
+#include <grub/cpu/at_keyboard.h>
+#include <grub/misc.h>
+
+void
+grub_reboot (void)
+{
+  /* Use the keyboard controller to reboot.  That's what keyboards were
+     designed for, isn't it?  */
+  grub_outb (KEYBOARD_COMMAND_REBOOT, KEYBOARD_REG_STATUS);
+
+  grub_printf ("GRUB doesn't know how to reboot this machine yet!\n");
+}

Modified: trunk/grub2/term/i386/pc/at_keyboard.c
===================================================================
--- trunk/grub2/term/i386/pc/at_keyboard.c      2008-08-05 20:24:00 UTC (rev 
1780)
+++ trunk/grub2/term/i386/pc/at_keyboard.c      2008-08-06 00:20:04 UTC (rev 
1781)
@@ -17,16 +17,12 @@
  */
 
 #include <grub/machine/console.h>
-#include <grub/machine/machine.h>
+#include <grub/cpu/at_keyboard.h>
 #include <grub/cpu/io.h>
 #include <grub/misc.h>
 #include <grub/term.h>
 
-#define SHIFT_L                0x2a
-#define SHIFT_R                0x36
-#define CTRL           0x1d
-#define ALT            0x38
-#define CAPS_LOCK      0x3a
+static short at_keyboard_status = 0;
 
 #define KEYBOARD_STATUS_SHIFT_L                (1 << 0)
 #define KEYBOARD_STATUS_SHIFT_R                (1 << 1)
@@ -36,34 +32,6 @@
 #define KEYBOARD_STATUS_CTRL_R         (1 << 5)
 #define KEYBOARD_STATUS_CAPS_LOCK      (1 << 6)
 
-#define KEYBOARD_REG_DATA      0x60
-#define KEYBOARD_REG_STATUS    0x64
-
-/* Used for sending commands to the controller.  */
-#define KEYBOARD_COMMAND_ISREADY(x)    !((x) & 0x02)
-#define KEYBOARD_COMMAND_READ          0x20
-#define KEYBOARD_COMMAND_WRITE         0x60
-
-#define KEYBOARD_SCANCODE_SET1         0x40
-
-#define KEYBOARD_ISMAKE(x)     !((x) & 0x80)
-#define KEYBOARD_ISREADY(x)    (((x) & 0x01) == 0)
-#define KEYBOARD_SCANCODE(x)   ((x) & 0x7f)
-
-static short at_keyboard_status = 0;
-
-#ifdef GRUB_MACHINE_IEEE1275
-#define OLPC_UP                GRUB_TERM_UP
-#define OLPC_DOWN      GRUB_TERM_DOWN
-#define OLPC_LEFT      GRUB_TERM_LEFT
-#define OLPC_RIGHT     GRUB_TERM_RIGHT
-#else
-#define OLPC_UP                '\0'
-#define OLPC_DOWN      '\0'
-#define OLPC_LEFT      '\0'
-#define OLPC_RIGHT     '\0'
-#endif
-
 static char keyboard_map[128] =
 {
   '\0', GRUB_TERM_ESC, '1', '2', '3', '4', '5', '6',






reply via email to

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