]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Move grub_reboot out of the kernel.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 19 Oct 2011 14:53:18 +0000 (16:53 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 19 Oct 2011 14:53:18 +0000 (16:53 +0200)
* grub-core/Makefile.core.def (reboot): Add platform-specific files.
* grub-core/kern/efi/efi.c (grub_reboot): Moved to ...
* grub-core/lib/efi/reboot.c: ... here.
* grub-core/kern/i386/efi/startup.S: Remove including of realmode.S.
* grub-core/kern/i386/ieee1275/startup.S: Likewise.
* grub-core/kern/i386/pc/startup.S (grub_exit): Inline cold_reboot.
* grub-core/kern/i386/realmode.S (grub_reboot): Moved to...
* grub-core/lib/i386/reboot_trampoline.S: ... here.
* grub-core/kern/ieee1275/openfw.c (grub_reboot): Moved to...
* grub-core/lib/ieee1275/reboot.c: ... here.
* grub-core/kern/mips/arc/init.c (grub_reboot): Moved to...
* grub-core/lib/mips/arc/reboot.c: ... here.
* grub-core/kern/mips/loongson/init.c (grub_reboot): Moved to...
* grub-core/lib/mips/loongson/reboot.c: ...here.
* grub-core/kern/mips/qemu_mips/init.c (grub_reboot): Moved to...
* grub-core/lib/mips/qemu_mips/reboot.c: ... here.
* include/grub/emu/misc.h (grub_reboot): New function declaration.
* include/grub/i386/reboot.h: New file.
* include/grub/mips/loongson/ec.h: Fix includes.
* include/grub/mips/qemu_mips/kernel.h (grub_reboot): Removed.
* include/grub/misc.h (grub_reboot): Don't mark as kernel function.
* grub-core/lib/i386/reboot.c: New file.

23 files changed:
ChangeLog
grub-core/Makefile.core.def
grub-core/kern/efi/efi.c
grub-core/kern/i386/efi/startup.S
grub-core/kern/i386/ieee1275/startup.S
grub-core/kern/i386/pc/startup.S
grub-core/kern/i386/realmode.S
grub-core/kern/ieee1275/openfw.c
grub-core/kern/mips/arc/init.c
grub-core/kern/mips/loongson/init.c
grub-core/kern/mips/qemu_mips/init.c
grub-core/lib/efi/reboot.c [new file with mode: 0644]
grub-core/lib/i386/reboot.c [new file with mode: 0644]
grub-core/lib/i386/reboot_trampoline.S [new file with mode: 0644]
grub-core/lib/ieee1275/reboot.c [new file with mode: 0644]
grub-core/lib/mips/arc/reboot.c [new file with mode: 0644]
grub-core/lib/mips/loongson/reboot.c [new file with mode: 0644]
grub-core/lib/mips/qemu_mips/reboot.c [new file with mode: 0644]
include/grub/emu/misc.h
include/grub/i386/reboot.h [new file with mode: 0644]
include/grub/mips/loongson/ec.h
include/grub/mips/qemu_mips/kernel.h
include/grub/misc.h

index a758fc275ce6ce5531b01d79f9fff4b21d4d35d2..9bea2dc0a115bfac098c6891609a628f58109403 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2011-10-19  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Move grub_reboot out of the kernel.
+
+       * grub-core/Makefile.core.def (reboot): Add platform-specific files.
+       * grub-core/kern/efi/efi.c (grub_reboot): Moved to ...
+       * grub-core/lib/efi/reboot.c: ... here.
+       * grub-core/kern/i386/efi/startup.S: Remove including of realmode.S.
+       * grub-core/kern/i386/ieee1275/startup.S: Likewise.
+       * grub-core/kern/i386/pc/startup.S (grub_exit): Inline cold_reboot.
+       * grub-core/kern/i386/realmode.S (grub_reboot): Moved to...
+       * grub-core/lib/i386/reboot_trampoline.S: ... here.
+       * grub-core/kern/ieee1275/openfw.c (grub_reboot): Moved to...
+       * grub-core/lib/ieee1275/reboot.c: ... here.
+       * grub-core/kern/mips/arc/init.c (grub_reboot): Moved to...
+       * grub-core/lib/mips/arc/reboot.c: ... here.
+       * grub-core/kern/mips/loongson/init.c (grub_reboot): Moved to...
+       * grub-core/lib/mips/loongson/reboot.c: ...here.
+       * grub-core/kern/mips/qemu_mips/init.c (grub_reboot): Moved to...
+       * grub-core/lib/mips/qemu_mips/reboot.c: ... here.
+       * include/grub/emu/misc.h (grub_reboot): New function declaration.
+       * include/grub/i386/reboot.h: New file.
+       * include/grub/mips/loongson/ec.h: Fix includes.
+       * include/grub/mips/qemu_mips/kernel.h (grub_reboot): Removed.
+       * include/grub/misc.h (grub_reboot): Don't mark as kernel function.
+       * grub-core/lib/i386/reboot.c: New file.
+
 2011-10-18  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Make grub_prefix into module to fix the arbitrary limit and save
index 84739e8fae7e049ad4f055a21c2eccee1c678eb7..396f73b44be71d7959495b750e189c556d985875 100644 (file)
@@ -633,6 +633,20 @@ module = {
   emu = lib/emu/halt.c;
 };
 
+module = {
+  name = reboot;
+  i386 = lib/i386/reboot.c;
+  i386 = lib/i386/reboot_trampoline.S;
+  ia64_efi = lib/efi/reboot.c;
+  x86_64_efi = lib/efi/reboot.c;
+  powerpc_ieee1275 = lib/ieee1275/reboot.c;
+  sparc64_ieee1275 = lib/ieee1275/reboot.c;
+  mips_arc = lib/mips/arc/reboot.c;
+  mips_loongson = lib/mips/loongson/reboot.c;
+  mips_qemu_mips = lib/mips/qemu_mips/reboot.c;
+  common = commands/reboot.c;
+};
+
 module = {
   name = hashsum;
   common = commands/hashsum.c;
@@ -733,11 +747,6 @@ module = {
   common = commands/read.c;
 };
 
-module = {
-  name = reboot;
-  common = commands/reboot.c;
-};
-
 module = {
   name = search;
   common = commands/search_wrap.c;
index e27dd1ad05ea8f4565d1658016ec262678e3a4c8..9a2c5e64d3eea3193156c1449a1d31c8aafa7c3b 100644 (file)
@@ -163,18 +163,6 @@ grub_exit (void)
   for (;;) ;
 }
 
-/* On i386, a firmware-independant grub_reboot() is provided by realmode.S.  */
-#ifndef __i386__
-void
-grub_reboot (void)
-{
-  grub_efi_fini ();
-  efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
-              GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL);
-  for (;;) ;
-}
-#endif
-
 grub_err_t
 grub_efi_set_virtual_address_map (grub_efi_uintn_t memory_map_size,
                                  grub_efi_uintn_t descriptor_size,
index 49b05c1e65ce15a0a722a8dcc4895249bb6ecca9..0f904d7b38c2e9c78f0ea5181395bf5aff13ba1a 100644 (file)
@@ -51,5 +51,3 @@ codestart:
        movl    %eax, EXT_C(grub_efi_system_table)
        call    EXT_C(grub_main)
        ret
-
-#include "../realmode.S"
index 6b39f5f3abd2a2ecd546ce566d20d41bb0e5e0c2..245583bdb7133c4cf8f08745d12d44dc5c30311c 100644 (file)
@@ -39,9 +39,3 @@ _start:
        movl %eax, EXT_C(grub_ieee1275_entry_fn)
        jmp EXT_C(grub_main)
 
-/*
- *  prot_to_real and associated structures (but NOT real_to_prot, that is
- *  only needed for BIOS gates).
- */
-#include "../realmode.S"
-
index 3bbe34753734c0a10255157f63f0247077a94046..a70a2a7db29e5efe16f30aa8e21ac3bc2b7ef856 100644 (file)
@@ -465,7 +465,10 @@ FUNCTION(grub_exit)
        .code16
        /* Tell the BIOS a boot failure. If this does not work, reboot.  */
        int     $0x18
-       jmp     cold_reboot
+       /* set 0x472 to 0x0000 for cold boot (0x1234 for warm boot) */
+       movw    $0x0472, %di
+       movw    %ax, (%di)
+       ljmp    $0xf000, $0xfff0
        .code32
 
 /*
index 578c8d2a8bbcf378ea7380aaab779010bfa1748e..3e8a13892aa3a503f37fdf1d30deb4cc069359d9 100644 (file)
@@ -225,18 +225,3 @@ realcseg:
        DATA32  ret
 
        .code32
-
-/*
- * grub_reboot()
- *
- * Reboot the system. At the moment, rely on BIOS.
- */
-FUNCTION(grub_reboot)
-       call    prot_to_real
-       .code16
-cold_reboot:
-       /* set 0x472 to 0x0000 for cold boot (0x1234 for warm boot) */
-       movw    $0x0472, %di
-       movw    %ax, (%di)
-       ljmp    $0xf000, $0xfff0
-       .code32
index 4e705a4d8c5d6845b8a433406221f3bebc6289dd..23065e3e3117c24cba855de54b8e1cc2e19f2b73 100644 (file)
@@ -456,16 +456,6 @@ grub_ieee1275_encode_devname (const char *path)
   return encoding;
 }
 
-/* On i386, a firmware-independant grub_reboot() is provided by realmode.S.  */
-#ifndef __i386__
-void
-grub_reboot (void)
-{
-  grub_ieee1275_interpret ("reset-all", 0);
-  for (;;) ;
-}
-#endif
-
 /* Resolve aliases.  */
 char *
 grub_ieee1275_canonicalise_devname (const char *path)
index 2e25335cab65d55e78da1ee359adb82abba330df..ec0fa521a4979a8c0e51c2fa95cf4b752c5db771 100644 (file)
@@ -195,15 +195,3 @@ grub_exit (void)
   while (1);
 }
 
-void
-grub_reboot (void)
-{
-  GRUB_ARC_FIRMWARE_VECTOR->restart ();
-
-  grub_millisleep (1500);
-
-  grub_printf ("Reboot failed\n");
-  grub_refresh ();
-  while (1);
-}
-
index 8acfb0767a8b9bea32e0045bd8391c684cf3f4ef..6ddf151f20ee9ed8324b32dcb6e2f15332178b83 100644 (file)
@@ -30,7 +30,6 @@
 #include <grub/mips/loongson.h>
 #include <grub/cs5536.h>
 #include <grub/term.h>
-#include <grub/machine/ec.h>
 #include <grub/cpu/memory.h>
 
 extern void grub_video_sm712_init (void);
@@ -266,37 +265,6 @@ grub_exit (void)
   grub_halt ();
 }
 
-void
-grub_reboot (void)
-{
-  switch (grub_arch_machine)
-    {
-    case GRUB_ARCH_MACHINE_FULOONG2E:
-      grub_outb (grub_inb (0xbfe00104) & ~4, 0xbfe00104);
-      grub_outb (grub_inb (0xbfe00104) | 4, 0xbfe00104);
-      break;
-    case GRUB_ARCH_MACHINE_FULOONG2F:
-      {
-       grub_pci_device_t dev;
-       if (!grub_cs5536_find (&dev))
-         break;
-       grub_cs5536_write_msr (dev, GRUB_CS5536_MSR_DIVIL_RESET,
-                              grub_cs5536_read_msr (dev,
-                                                    GRUB_CS5536_MSR_DIVIL_RESET) 
-                              | 1);
-       break;
-      }
-    case GRUB_ARCH_MACHINE_YEELOONG:
-      grub_write_ec (GRUB_MACHINE_EC_COMMAND_REBOOT);
-      break;
-    }
-  grub_millisleep (1500);
-
-  grub_printf ("Reboot failed\n");
-  grub_refresh ();
-  while (1);
-}
-
 extern char _end[];
 grub_addr_t grub_modbase = (grub_addr_t) _end;
 
index 4921c42bf6394e98b1990517c9791447c5d981bb..d331e1b2437bb103499c0501c3840613a6f7efd5 100644 (file)
@@ -99,12 +99,6 @@ grub_halt (void)
   while (1);
 }
 
-void
-grub_reboot (void)
-{
-  while (1);
-}
-
 grub_err_t 
 grub_machine_mmap_iterate (grub_memory_hook_t hook)
 {
diff --git a/grub-core/lib/efi/reboot.c b/grub-core/lib/efi/reboot.c
new file mode 100644 (file)
index 0000000..9382370
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/efi/api.h>
+#include <grub/efi/efi.h>
+#include <grub/mm.h>
+#include <grub/misc.h>
+#include <grub/kernel.h>
+
+void
+grub_reboot (void)
+{
+  grub_machine_fini ();
+  efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
+              GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL);
+  for (;;) ;
+}
diff --git a/grub-core/lib/i386/reboot.c b/grub-core/lib/i386/reboot.c
new file mode 100644 (file)
index 0000000..ef28f7f
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/relocator.h>
+#include <grub/cpu/relocator.h>
+#include <grub/misc.h>
+#include <grub/mm.h>
+#include <grub/cpu/reboot.h>
+#include <grub/i386/floppy.h>
+
+void
+grub_reboot (void)
+{
+  struct grub_relocator *relocator = NULL;
+  grub_relocator_chunk_t ch;
+  grub_err_t err;
+  void *buf;
+  struct grub_relocator16_state state;
+  grub_uint16_t segment;
+
+  relocator = grub_relocator_new ();
+  if (!relocator)
+    while (1);
+  err = grub_relocator_alloc_chunk_align (relocator, &ch, 0x1000, 0x1000,
+                                         grub_reboot_end - grub_reboot_start,
+                                         16, GRUB_RELOCATOR_PREFERENCE_NONE);
+  if (err)
+    while (1);
+  buf = get_virtual_current_address (ch);
+  grub_memcpy (buf, grub_reboot_start, grub_reboot_end - grub_reboot_start);
+
+  segment = ((grub_addr_t) get_physical_target_address (ch)) >> 4;
+  state.gs = state.fs = state.es = state.ds = state.ss = segment;
+  state.sp = 0;
+  state.cs = segment;
+  state.ip = 0;
+
+  grub_stop_floppy ();
+  
+  err = grub_relocator16_boot (relocator, state);
+
+  while (1);
+}
+
diff --git a/grub-core/lib/i386/reboot_trampoline.S b/grub-core/lib/i386/reboot_trampoline.S
new file mode 100644 (file)
index 0000000..18bcfb2
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/symbol.h>
+#include <grub/i386/reboot.h>
+
+       .p2align 4
+
+VARIABLE(grub_reboot_start)
+       .code16
+       
+       /* set 0x472 to 0x0000 for cold boot (0x1234 for warm boot) */
+       movw    $0x0472, %di
+       movw    %ax, (%di)
+       ljmp    $0xf000, $0xfff0
+
+       .code32
+VARIABLE(grub_reboot_end)
diff --git a/grub-core/lib/ieee1275/reboot.c b/grub-core/lib/ieee1275/reboot.c
new file mode 100644 (file)
index 0000000..91c8779
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/ieee1275/ieee1275.h>
+#include <grub/misc.h>
+
+void
+grub_reboot (void)
+{
+  grub_ieee1275_interpret ("reset-all", 0);
+  for (;;) ;
+}
diff --git a/grub-core/lib/mips/arc/reboot.c b/grub-core/lib/mips/arc/reboot.c
new file mode 100644 (file)
index 0000000..f0d0857
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/arc/arc.h>
+#include <grub/misc.h>
+#include <grub/time.h>
+#include <grub/term.h>
+
+void
+grub_reboot (void)
+{
+  GRUB_ARC_FIRMWARE_VECTOR->restart ();
+
+  grub_millisleep (1500);
+
+  grub_printf ("Reboot failed\n");
+  grub_refresh ();
+  while (1);
+}
diff --git a/grub-core/lib/mips/loongson/reboot.c b/grub-core/lib/mips/loongson/reboot.c
new file mode 100644 (file)
index 0000000..f099ba2
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/machine/ec.h>
+#include <grub/machine/kernel.h>
+#include <grub/machine/memory.h>
+#include <grub/misc.h>
+#include <grub/pci.h>
+#include <grub/cs5536.h>
+#include <grub/time.h>
+#include <grub/term.h>
+
+void
+grub_reboot (void)
+{
+  switch (grub_arch_machine)
+    {
+    case GRUB_ARCH_MACHINE_FULOONG2E:
+      grub_outb (grub_inb (0xbfe00104) & ~4, 0xbfe00104);
+      grub_outb (grub_inb (0xbfe00104) | 4, 0xbfe00104);
+      break;
+    case GRUB_ARCH_MACHINE_FULOONG2F:
+      {
+       grub_pci_device_t dev;
+       if (!grub_cs5536_find (&dev))
+         break;
+       grub_cs5536_write_msr (dev, GRUB_CS5536_MSR_DIVIL_RESET,
+                              grub_cs5536_read_msr (dev,
+                                                    GRUB_CS5536_MSR_DIVIL_RESET) 
+                              | 1);
+       break;
+      }
+    case GRUB_ARCH_MACHINE_YEELOONG:
+      grub_write_ec (GRUB_MACHINE_EC_COMMAND_REBOOT);
+      break;
+    }
+  grub_millisleep (1500);
+
+  grub_printf ("Reboot failed\n");
+  grub_refresh ();
+  while (1);
+}
diff --git a/grub-core/lib/mips/qemu_mips/reboot.c b/grub-core/lib/mips/qemu_mips/reboot.c
new file mode 100644 (file)
index 0000000..a5c41ee
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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/misc.h>
+
+void
+grub_reboot (void)
+{
+  while (1);
+}
index fcf9da473643a86c8c6e8c14e21e3feee317e867..b4b8f7d285edb5a98b531f27fe837d072bac68dd 100644 (file)
@@ -82,4 +82,7 @@ int grub_device_mapper_supported (void);
 
 char *grub_find_root_device_from_mountinfo (const char *dir, char **relroot);
 
+void EXPORT_FUNC(grub_reboot) (void);
+
+
 #endif /* GRUB_EMU_MISC_H */
diff --git a/include/grub/i386/reboot.h b/include/grub/i386/reboot.h
new file mode 100644 (file)
index 0000000..c2716f3
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2011  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_REBOOT_H
+#define        GRUB_REBOOT_H   1
+
+#ifndef ASM_FILE
+
+extern grub_uint8_t grub_reboot_end[], grub_reboot_start[];
+
+#endif
+
+#endif
index 62d1d33d9ab650df1ebc115d722e57d4cf95a63d..3f8ff9931b9e280c6155274d5c00c7b3849f714d 100644 (file)
 #ifndef GRUB_EC_MACHINE_HEADER
 #define GRUB_EC_MACHINE_HEADER 1
 
+#include <grub/types.h>
+#include <grub/cpu/io.h>
+#include <grub/pci.h>
+
 #define GRUB_MACHINE_EC_MAGIC_PORT1 0x381
 #define GRUB_MACHINE_EC_MAGIC_PORT2 0x382
 #define GRUB_MACHINE_EC_DATA_PORT 0x383
index 66add4b2ea28e53549a0341eda564560a97f1028..1e7e32401717049ae5a5cf372307ccdabfb86910 100644 (file)
@@ -23,7 +23,6 @@
 
 #ifndef ASM_FILE
 
-void EXPORT_FUNC (grub_reboot) (void);
 void EXPORT_FUNC (grub_halt) (void);
 void grub_qemu_init_cirrus (void);
 
index 66e74d8a8a32b4fcdd866e55832630d514a3856e..0a0a4135ea79e0d6a32a1575aaebc5409bd64eb6 100644 (file)
@@ -343,7 +343,7 @@ grub_div_roundup (unsigned int x, unsigned int y)
 }
 
 /* Reboot the machine.  */
-void EXPORT_FUNC (grub_reboot) (void) __attribute__ ((noreturn));
+void grub_reboot (void) __attribute__ ((noreturn));
 
 #ifdef GRUB_MACHINE_PCBIOS
 /* Halt the system, using APM if possible. If NO_APM is true, don't