2008-02-12 Alexandre Boeglin <alex@boeglin.org>
* conf/i386-efi.rmk (grub_emu_SOURCES): Replace commands/i386/pc/halt.c and reboot.c by commands/halt.c and reboot.c. (grub_install_SOURCES): Add halt.mod and reboot.mod. (halt_mod_SOURCES): New variable. (halt_mod_CFLAGS): Likewise. (halt_mod_LDFLAGS): Likewise. (reboot_mod_SOURCES): Likewise. (reboot_mod_CFLAGS): Likewise. (reboot_mod_LDFLAGS): Likewise. * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace commands/ieee1275/halt.c and reboot.c by commands/halt.c and reboot.c. (halt_mod_SOURCES): Likewise. (reboot_mod_SOURCES): Likewise. * conf/i386-pc.rmk (grub_emu_SOURCES): Replace commands/i386/pc/reboot.c by commands/reboot.c. (reboot_mod_SOURCES): Likewise. * commands/i386/pc/reboot.c: merge this file ... * commands/ieee1275/reboot.c: ... and this file ... * commands/reboot.c: ... to this file. Add some precompiler directive to include the correct header for each machine. * commands/ieee1275/halt.c: move this file ... * commands/halt.c: ... to here. Add some precompiler directive to include the correct header for each machine. * include/grub/efi/efi.h (grub_reboot): New function declaration. (grub_halt): Likewise. * kern/efi/efi.c (grub_reboot): New function. (grub_halt): Likewise.
This commit is contained in:
parent
c74493e01f
commit
f714229e34
9 changed files with 97 additions and 62 deletions
41
ChangeLog
41
ChangeLog
|
@ -1,3 +1,44 @@
|
|||
2008-02-12 Alexandre Boeglin <alex@boeglin.org>
|
||||
|
||||
* conf/i386-efi.rmk (grub_emu_SOURCES): Replace commands/i386/pc/halt.c and
|
||||
reboot.c by commands/halt.c and reboot.c.
|
||||
(grub_install_SOURCES): Add halt.mod and reboot.mod.
|
||||
(halt_mod_SOURCES): New variable.
|
||||
(halt_mod_CFLAGS): Likewise.
|
||||
(halt_mod_LDFLAGS): Likewise.
|
||||
(reboot_mod_SOURCES): Likewise.
|
||||
(reboot_mod_CFLAGS): Likewise.
|
||||
(reboot_mod_LDFLAGS): Likewise.
|
||||
|
||||
* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace commands/ieee1275/halt.c
|
||||
and reboot.c by commands/halt.c and reboot.c.
|
||||
(halt_mod_SOURCES): Likewise.
|
||||
(reboot_mod_SOURCES): Likewise.
|
||||
|
||||
* conf/i386-pc.rmk (grub_emu_SOURCES): Replace commands/i386/pc/reboot.c by
|
||||
commands/reboot.c.
|
||||
(reboot_mod_SOURCES): Likewise.
|
||||
|
||||
* commands/i386/pc/reboot.c: merge this file ...
|
||||
|
||||
* commands/ieee1275/reboot.c: ... and this file ...
|
||||
|
||||
* commands/reboot.c: ... to this file.
|
||||
Add some precompiler directive to include the correct header for each
|
||||
machine.
|
||||
|
||||
* commands/ieee1275/halt.c: move this file ...
|
||||
|
||||
* commands/halt.c: ... to here.
|
||||
Add some precompiler directive to include the correct header for each
|
||||
machine.
|
||||
|
||||
* include/grub/efi/efi.h (grub_reboot): New function declaration.
|
||||
(grub_halt): Likewise.
|
||||
|
||||
* kern/efi/efi.c (grub_reboot): New function.
|
||||
(grub_halt): Likewise.
|
||||
|
||||
2008-02-12 Robert Millan <rmh@aybabtu.com>
|
||||
|
||||
* util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* halt.c - command to halt the computer. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2005,2007 Free Software Foundation, Inc.
|
||||
* Copyright (C) 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
|
||||
|
@ -19,8 +19,13 @@
|
|||
|
||||
#include <grub/normal.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/machine/machine.h>
|
||||
|
||||
#if defined(GRUB_MACHINE_IEEE1275)
|
||||
#include <grub/machine/kernel.h>
|
||||
#elif defined(GRUB_MACHINE_EFI)
|
||||
#include <grub/efi/efi.h>
|
||||
#endif
|
||||
|
||||
static grub_err_t
|
||||
grub_cmd_halt (struct grub_arg_list *state __attribute__ ((unused)),
|
||||
|
@ -32,7 +37,7 @@ grub_cmd_halt (struct grub_arg_list *state __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
|
||||
GRUB_MOD_INIT(ieee1275_halt)
|
||||
GRUB_MOD_INIT(halt)
|
||||
{
|
||||
(void)mod; /* To stop warning. */
|
||||
grub_register_command ("halt", grub_cmd_halt, GRUB_COMMAND_FLAG_BOTH,
|
||||
|
@ -40,7 +45,7 @@ GRUB_MOD_INIT(ieee1275_halt)
|
|||
" work on all firmware.", 0);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(ieee1275_halt)
|
||||
GRUB_MOD_FINI(halt)
|
||||
{
|
||||
grub_unregister_command ("halt");
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
/* reboot.c - command to reboot the computer. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2005,2007 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <grub/normal.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/machine/kernel.h>
|
||||
|
||||
static grub_err_t
|
||||
grub_cmd_reboot (struct grub_arg_list *state __attribute__ ((unused)),
|
||||
int argc __attribute__ ((unused)),
|
||||
char **args __attribute__ ((unused)))
|
||||
{
|
||||
grub_reboot ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
GRUB_MOD_INIT(ieee1275_reboot)
|
||||
{
|
||||
(void)mod; /* To stop warning. */
|
||||
grub_register_command ("reboot", grub_cmd_reboot, GRUB_COMMAND_FLAG_BOTH,
|
||||
"reboot", "Reboot the computer", 0);
|
||||
}
|
||||
|
||||
GRUB_MOD_FINI(ieee1275_reboot)
|
||||
{
|
||||
grub_unregister_command ("reboot");
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
/* reboot.c - command to reboot the computer. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2005,2007 Free Software Foundation, Inc.
|
||||
* Copyright (C) 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
|
||||
|
@ -19,20 +19,26 @@
|
|||
|
||||
#include <grub/normal.h>
|
||||
#include <grub/dl.h>
|
||||
#include <grub/arg.h>
|
||||
#include <grub/machine/machine.h>
|
||||
|
||||
#if defined(GRUB_MACHINE_IEEE1275)
|
||||
#include <grub/machine/kernel.h>
|
||||
#elif defined(GRUB_MACHINE_EFI)
|
||||
#include <grub/efi/efi.h>
|
||||
#elif defined(GRUB_MACHINE_PCBIOS)
|
||||
#include <grub/machine/init.h>
|
||||
#endif
|
||||
|
||||
|
||||
static grub_err_t
|
||||
grub_cmd_reboot (struct grub_arg_list *state __attribute__ ((unused)),
|
||||
int argc __attribute__ ((unused)),
|
||||
char **args __attribute__ ((unused)))
|
||||
|
||||
{
|
||||
grub_reboot ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
GRUB_MOD_INIT(reboot)
|
||||
{
|
|
@ -37,7 +37,7 @@ 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/search.c commands/hexdump.c \
|
||||
commands/i386/pc/halt.c commands/i386/pc/reboot.c \
|
||||
commands/halt.c commands/reboot.c \
|
||||
commands/i386/cpuid.c \
|
||||
disk/loopback.c \
|
||||
\
|
||||
|
@ -75,7 +75,7 @@ grub_install_SOURCES = util/i386/efi/grub-install.in
|
|||
|
||||
# Modules.
|
||||
pkglib_MODULES = kernel.mod normal.mod _chain.mod chain.mod \
|
||||
_linux.mod linux.mod cpuid.mod
|
||||
_linux.mod linux.mod cpuid.mod halt.mod reboot.mod
|
||||
|
||||
# For kernel.mod.
|
||||
kernel_mod_EXPORTS = no
|
||||
|
@ -138,4 +138,14 @@ cpuid_mod_SOURCES = commands/i386/cpuid.c
|
|||
cpuid_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For halt.mod.
|
||||
halt_mod_SOURCES = commands/halt.c
|
||||
halt_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
halt_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For reboot.mod.
|
||||
reboot_mod_SOURCES = commands/reboot.c
|
||||
reboot_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
include $(srcdir)/conf/common.mk
|
||||
|
|
|
@ -62,7 +62,7 @@ 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/search.c commands/blocklist.c commands/hexdump.c \
|
||||
commands/ieee1275/halt.c commands/ieee1275/reboot.c \
|
||||
commands/halt.c commands/reboot.c \
|
||||
commands/i386/cpuid.c \
|
||||
disk/host.c disk/loopback.c \
|
||||
\
|
||||
|
@ -125,12 +125,12 @@ suspend_mod_CFLAGS = $(COMMON_CFLAGS)
|
|||
suspend_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For reboot.mod
|
||||
reboot_mod_SOURCES = commands/ieee1275/reboot.c
|
||||
reboot_mod_SOURCES = commands/reboot.c
|
||||
reboot_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For halt.mod
|
||||
halt_mod_SOURCES = commands/ieee1275/halt.c
|
||||
halt_mod_SOURCES = commands/halt.c
|
||||
halt_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
halt_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ 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/search.c commands/blocklist.c commands/hexdump.c \
|
||||
commands/i386/pc/halt.c commands/i386/pc/reboot.c \
|
||||
commands/i386/pc/halt.c commands/reboot.c \
|
||||
commands/i386/cpuid.c \
|
||||
disk/host.c disk/loopback.c \
|
||||
fs/fshelp.c \
|
||||
|
@ -191,7 +191,7 @@ normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
|
|||
normal_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For reboot.mod.
|
||||
reboot_mod_SOURCES = commands/i386/pc/reboot.c
|
||||
reboot_mod_SOURCES = commands/reboot.c
|
||||
reboot_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* efi.h - declare variables and functions for EFI support */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2006,2007 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2006,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
|
||||
|
@ -54,6 +54,8 @@ char *EXPORT_FUNC(grub_efi_get_filename) (grub_efi_device_path_t *dp);
|
|||
grub_efi_device_path_t *
|
||||
EXPORT_FUNC(grub_efi_get_device_path) (grub_efi_handle_t handle);
|
||||
int EXPORT_FUNC(grub_efi_exit_boot_services) (grub_efi_uintn_t map_key);
|
||||
void EXPORT_FUNC (grub_reboot) (void);
|
||||
void EXPORT_FUNC (grub_halt) (void);
|
||||
|
||||
void grub_efi_mm_init (void);
|
||||
void grub_efi_mm_fini (void);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* efi.c - generic EFI support */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2006,2007 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2006,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
|
||||
|
@ -162,6 +162,22 @@ grub_exit (void)
|
|||
0, 0);
|
||||
}
|
||||
|
||||
void
|
||||
grub_reboot (void)
|
||||
{
|
||||
grub_efi_fini ();
|
||||
grub_efi_system_table->runtime_services->
|
||||
reset_system (GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
grub_halt (void)
|
||||
{
|
||||
grub_efi_fini ();
|
||||
grub_efi_system_table->runtime_services->
|
||||
reset_system (GRUB_EFI_RESET_SHUTDOWN, GRUB_EFI_SUCCESS, 0, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
grub_efi_exit_boot_services (grub_efi_uintn_t map_key)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue