[2117] 2009-04-15 Vladimir Serbinenko <[email protected]>

Vladimir Serbinenko <[email protected]>
Newsgroups gmane.comp.boot-loaders.grub.cvs
Message-ID <[email protected]>
Revision: 2117
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2117
Author:   phcoder
Date:     2009-04-15 12:45:50 +0000 (Wed, 15 Apr 2009)
Log Message:
-----------
2009-04-15  Vladimir Serbinenko <[email protected]>

	Move loader out of the kernel

	* kern/loader.c: moved to ...
	* commands/boot.c: ... moved here
	* commands/minicmd.c (grub_mini_cmd_boot): moved to ...
	* commands/boot.c (grub_cmd_boot): moved here. All users updated
	* include/grub/kernel.h (grub_machine_fini): export
	* include/grub/loader.h (grub_loader_is_loaded): update declaration
	(grub_loader_set): likewise
	(grub_loader_unset): likewise
	(grub_loader_boot): likewise
	* conf/common.rmk: new module boot.mod
	(pkglib_MODULES): add boot.mod
	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
	(grub_emu_SOURCES): likewise
	* conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise
	* conf/sparcs64-ieee1275.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise   
	* conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
	(grub_emu_SOURCES): likewise 

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/commands/boot.c
    trunk/grub2/commands/minicmd.c
    trunk/grub2/conf/common.rmk
    trunk/grub2/conf/i386-coreboot.rmk
    trunk/grub2/conf/i386-efi.rmk
    trunk/grub2/conf/i386-ieee1275.rmk
    trunk/grub2/conf/i386-pc.rmk
    trunk/grub2/conf/powerpc-ieee1275.rmk
    trunk/grub2/conf/sparc64-ieee1275.rmk
    trunk/grub2/conf/x86_64-efi.rmk
    trunk/grub2/include/grub/kernel.h
    trunk/grub2/include/grub/loader.h

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/ChangeLog	2009-04-15 12:45:50 UTC (rev 2117)
@@ -1,3 +1,33 @@
+2009-04-15  Vladimir Serbinenko <[email protected]>
+
+	Move loader out of the kernel
+
+	* kern/loader.c: moved to ...
+	* commands/boot.c: ... moved here
+	* commands/minicmd.c (grub_mini_cmd_boot): moved to ...
+	* commands/boot.c (grub_cmd_boot): moved here. All users updated
+	* include/grub/kernel.h (grub_machine_fini): export
+	* include/grub/loader.h (grub_loader_is_loaded): update declaration
+	(grub_loader_set): likewise
+	(grub_loader_unset): likewise
+	(grub_loader_boot): likewise
+	* conf/common.rmk: new module boot.mod
+	(pkglib_MODULES): add boot.mod
+	* conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
+	(grub_emu_SOURCES): likewise
+	* conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
+	(grub_emu_SOURCES): likewise
+	* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
+	(grub_emu_SOURCES): likewise
+	* conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
+	(grub_emu_SOURCES): likewise
+	* conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
+	(grub_emu_SOURCES): likewise
+	* conf/sparcs64-ieee1275.rmk (kernel_elf_SOURCES): likewise
+	(grub_emu_SOURCES): likewise   
+	* conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
+	(grub_emu_SOURCES): likewise 
+
 2009-04-15  Vladimir Serbinenko	 <[email protected]>
 
 	use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes

Modified: trunk/grub2/commands/boot.c
===================================================================
--- trunk/grub2/commands/boot.c	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/commands/boot.c	2009-04-15 12:45:50 UTC (rev 2117)
@@ -1,7 +1,7 @@
 /* boot.c - command to boot an operating system */
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2003,2005,2007  Free Software Foundation, Inc.
+ *  Copyright (C) 2002,2003,2004,2005,2007,2009  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -21,29 +21,82 @@
 #include <grub/dl.h>
 #include <grub/misc.h>
 #include <grub/loader.h>
+#include <grub/kernel.h>
 
-static grub_err_t
-grub_cmd_boot (struct grub_arg_list *state __attribute__ ((unused)),
-	       int argc, char **args __attribute__ ((unused)))
+static grub_err_t (*grub_loader_boot_func) (void);
+static grub_err_t (*grub_loader_unload_func) (void);
+static int grub_loader_noreturn;
+
+static int grub_loader_loaded;
+
+int
+grub_loader_is_loaded (void)
 {
-  if (argc)
-    return grub_error (GRUB_ERR_BAD_ARGUMENT, "too many arguments");
+  return grub_loader_loaded;
+}
+
+void
+grub_loader_set (grub_err_t (*boot) (void),
+		 grub_err_t (*unload) (void),
+		 int noreturn)
+{
+  if (grub_loader_loaded && grub_loader_unload_func)
+    grub_loader_unload_func ();
   
-  grub_loader_boot ();
+  grub_loader_boot_func = boot;
+  grub_loader_unload_func = unload;
+  grub_loader_noreturn = noreturn;
   
-  return 0;
+  grub_loader_loaded = 1;
 }
 
+void
+grub_loader_unset(void)
+{
+  if (grub_loader_loaded && grub_loader_unload_func)
+    grub_loader_unload_func ();
+  
+  grub_loader_boot_func = 0;
+  grub_loader_unload_func = 0;
+
+  grub_loader_loaded = 0;
+}
+
+grub_err_t
+grub_loader_boot (void)
+{
+  if (! grub_loader_loaded)
+    return grub_error (GRUB_ERR_NO_KERNEL, "no loaded kernel");
+
+  if (grub_loader_noreturn)
+    grub_machine_fini ();
+  
+  return (grub_loader_boot_func) ();
+}
+
+
+/* boot */
+static grub_err_t
+grub_cmd_boot (struct grub_command *cmd __attribute__ ((unused)),
+		    int argc __attribute__ ((unused)),
+		    char *argv[] __attribute__ ((unused)))
+{
+  return grub_loader_boot ();
+}
+
 
 
+static grub_command_t cmd_boot;
+
 GRUB_MOD_INIT(boot)
 {
   (void) mod;			/* To stop warning. */
-  grub_register_command ("boot", grub_cmd_boot, GRUB_COMMAND_FLAG_BOTH,
-			 "boot", "Boot an operating system.", 0);
+  cmd_boot =
+    grub_register_command ("boot", grub_cmd_boot,
+			   0, "boot an operating system");
 }
 
 GRUB_MOD_FINI(boot)
 {
-  grub_unregister_command ("boot");
+  grub_unregister_command (cmd_boot);
 }

Modified: trunk/grub2/commands/minicmd.c
===================================================================
--- trunk/grub2/commands/minicmd.c	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/commands/minicmd.c	2009-04-15 12:45:50 UTC (rev 2117)
@@ -1,7 +1,7 @@
 /* minicmd.c - commands for the rescue mode */
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2003,2005,2006,2007  Free Software Foundation, Inc.
+ *  Copyright (C) 2003,2005,2006,2007,2009  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -28,15 +28,6 @@
 #include <grub/loader.h>
 #include <grub/command.h>
 
-/* boot */
-static grub_err_t
-grub_mini_cmd_boot (struct grub_command *cmd __attribute__ ((unused)),
-		    int argc __attribute__ ((unused)),
-		    char *argv[] __attribute__ ((unused)))
-{
-  return grub_loader_boot ();
-}
-
 /* cat FILE */
 static grub_err_t
 grub_mini_cmd_cat (struct grub_command *cmd __attribute__ ((unused)),
@@ -345,16 +336,13 @@
   return 0;
 }
 
-static grub_command_t cmd_boot, cmd_cat, cmd_help, cmd_root;
+static grub_command_t cmd_cat, cmd_help, cmd_root;
 static grub_command_t cmd_dump, cmd_rmmod, cmd_lsmod, cmd_exit;
 
 GRUB_MOD_INIT(minicmd)
 {
   (void) mod;			/* To stop warning. */
 
-  cmd_boot =
-    grub_register_command ("boot", grub_mini_cmd_boot,
-			   0, "boot an operating system");
   cmd_cat =
     grub_register_command ("cat", grub_mini_cmd_cat,
 			   "cat FILE", "show the contents of a file");
@@ -380,7 +368,6 @@
 
 GRUB_MOD_FINI(minicmd)
 {
-  grub_unregister_command (cmd_boot);
   grub_unregister_command (cmd_cat);
   grub_unregister_command (cmd_help);
   grub_unregister_command (cmd_root);

Modified: trunk/grub2/conf/common.rmk
===================================================================
--- trunk/grub2/conf/common.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/common.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -343,8 +343,13 @@
 	loopback.mod fs_uuid.mod configfile.mod echo.mod	\
 	terminfo.mod test.mod blocklist.mod hexdump.mod		\
 	read.mod sleep.mod loadenv.mod crc.mod parttool.mod	\
-	pcpart.mod memrw.mod
+	pcpart.mod memrw.mod boot.mod
 
+# For boot.mod.
+boot_mod_SOURCES = commands/boot.c
+boot_mod_CFLAGS = $(COMMON_CFLAGS)
+boot_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
 # For minicmd.mod.
 minicmd_mod_SOURCES = commands/minicmd.c
 minicmd_mod_CFLAGS = $(COMMON_CFLAGS)

Modified: trunk/grub2/conf/i386-coreboot.rmk
===================================================================
--- trunk/grub2/conf/i386-coreboot.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/i386-coreboot.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -16,7 +16,7 @@
 	kern/i386/multiboot_mmap.c \
 	kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
-	kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+	kern/misc.c kern/mm.c kern/rescue.c kern/term.c \
 	kern/time.c kern/list.c kern/handler.c kern/command.c kern/corecmd.c \
 	kern/i386/dl.c kern/parser.c kern/partition.c \
 	kern/i386/tsc.c kern/i386/pit.c \
@@ -73,7 +73,7 @@
 	kern/err.c kern/list.c kern/handler.c				\
 	kern/command.c kern/corecmd.c commands/extcmd.c			\
 	normal/execute.c kern/file.c kern/fs.c normal/lexer.c 		\
-	kern/loader.c kern/main.c kern/misc.c kern/parser.c		\
+	commands/boot.c kern/main.c kern/misc.c kern/parser.c		\
 	grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c	\
 	lib/arg.c normal/cmdline.c normal/command.c normal/function.c\
 	normal/handler.c	\

Modified: trunk/grub2/conf/i386-efi.rmk
===================================================================
--- trunk/grub2/conf/i386-efi.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/i386-efi.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -50,7 +50,7 @@
 	kern/err.c kern/list.c kern/handler.c				\
 	kern/command.c kern/corecmd.c commands/extcmd.c			\
 	normal/execute.c kern/file.c kern/fs.c normal/lexer.c 		\
-	kern/loader.c kern/main.c kern/misc.c kern/parser.c		\
+	commands/boot.c kern/main.c kern/misc.c kern/parser.c		\
 	grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c	\
 	lib/arg.c normal/cmdline.c normal/command.c normal/datetime.c 	\
 	normal/function.c	\
@@ -87,7 +87,7 @@
 kernel_mod_EXPORTS = no
 kernel_mod_SOURCES = kern/i386/efi/startup.S kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
-	kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+	kern/misc.c kern/mm.c kern/rescue.c kern/term.c \
 	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 \

Modified: trunk/grub2/conf/i386-ieee1275.rmk
===================================================================
--- trunk/grub2/conf/i386-ieee1275.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/i386-ieee1275.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -17,7 +17,7 @@
 	kern/ieee1275/cmain.c kern/ieee1275/openfw.c \
 	kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
-	kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+	kern/misc.c kern/mm.c kern/rescue.c kern/term.c \
 	kern/i386/dl.c kern/parser.c kern/partition.c \
 	kern/env.c \
 	kern/time.c kern/list.c kern/handler.c kern/command.c kern/corecmd.c \
@@ -73,7 +73,7 @@
 	kern/err.c kern/list.c kern/handler.c				\
 	kern/command.c kern/corecmd.c commands/extcmd.c			\
 	normal/execute.c kern/file.c kern/fs.c normal/lexer.c 		\
-	kern/loader.c kern/main.c kern/misc.c kern/parser.c		\
+	commands/boot.c kern/main.c kern/misc.c kern/parser.c		\
 	grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c	\
 	lib/arg.c normal/cmdline.c normal/command.c normal/datetime.c 	\
 	normal/function.c normal/handler.c \

Modified: trunk/grub2/conf/i386-pc.rmk
===================================================================
--- trunk/grub2/conf/i386-pc.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/i386-pc.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -46,7 +46,7 @@
 # For kernel.img.
 kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
-	kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+	kern/misc.c kern/mm.c kern/rescue.c kern/term.c \
 	kern/time.c kern/list.c kern/handler.c kern/command.c kern/corecmd.c \
 	kern/i386/dl.c kern/i386/pc/init.c kern/i386/pc/mmap.c \
 	kern/parser.c kern/partition.c \
@@ -132,7 +132,7 @@
 	kern/err.c kern/list.c kern/handler.c				\
 	kern/command.c kern/corecmd.c commands/extcmd.c			\
 	normal/execute.c kern/file.c kern/fs.c normal/lexer.c 		\
-	kern/loader.c kern/main.c kern/misc.c kern/parser.c		\
+	commands/boot.c kern/main.c kern/misc.c kern/parser.c		\
 	grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c	\
 	lib/arg.c normal/cmdline.c normal/command.c normal/datetime.c 	\
 	normal/function.c normal/handler.c	\

Modified: trunk/grub2/conf/powerpc-ieee1275.rmk
===================================================================
--- trunk/grub2/conf/powerpc-ieee1275.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/powerpc-ieee1275.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -53,7 +53,7 @@
 	\
 	io/gzio.c							\
 	kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c	\
-	kern/err.c kern/file.c kern/fs.c kern/loader.c kern/main.c	\
+	kern/err.c kern/file.c kern/fs.c commands/boot.c kern/main.c	\
 	kern/misc.c kern/parser.c kern/partition.c kern/rescue.c	\
 	kern/term.c kern/list.c kern/handler.c fs/fshelp.c		\
 	kern/command.c kern/corecmd.c commands/extcmd.c			\
@@ -81,7 +81,7 @@
 kernel_elf_SOURCES = kern/powerpc/ieee1275/startup.S kern/ieee1275/cmain.c \
 	kern/ieee1275/ieee1275.c kern/main.c kern/device.c 		\
 	kern/disk.c kern/dl.c kern/err.c kern/file.c kern/fs.c 		\
-	kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c 	\
+	kern/misc.c kern/mm.c kern/rescue.c kern/term.c 	\
 	kern/list.c kern/handler.c kern/command.c kern/corecmd.c	\
 	kern/ieee1275/init.c 						\
 	kern/ieee1275/mmap.c						\

Modified: trunk/grub2/conf/sparc64-ieee1275.rmk
===================================================================
--- trunk/grub2/conf/sparc64-ieee1275.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/sparc64-ieee1275.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -53,7 +53,7 @@
 #	grub_script.tab.c						\
 #	io/gzio.c                                                       \
 #	kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c 	\
-#	kern/file.c kern/fs.c kern/loader.c kern/main.c kern/misc.c	\
+#	kern/file.c kern/fs.c commands/boot.c kern/main.c kern/misc.c	\
 #	kern/parser.c kern/partition.c kern/rescue.c kern/term.c	\
 #	kern/list.c kern/handler.c					\
 #	normal/arg.c normal/cmdline.c normal/command.c normal/datetime.c \
@@ -73,7 +73,7 @@
 
 kernel_elf_SOURCES = kern/sparc64/ieee1275/init.c kern/ieee1275/ieee1275.c \
 	kern/main.c kern/device.c kern/disk.c kern/dl.c kern/file.c \
-	kern/fs.c kern/err.c kern/misc.c kern/mm.c kern/loader.c \
+	kern/fs.c kern/err.c kern/misc.c kern/mm.c  \
 	kern/rescue.c kern/term.c term/ieee1275/ofconsole.c \
 	kern/sparc64/ieee1275/openfw.c disk/ieee1275/ofdisk.c \
 	kern/partition.c kern/env.c kern/sparc64/dl.c symlist.c \

Modified: trunk/grub2/conf/x86_64-efi.rmk
===================================================================
--- trunk/grub2/conf/x86_64-efi.rmk	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/conf/x86_64-efi.rmk	2009-04-15 12:45:50 UTC (rev 2117)
@@ -52,7 +52,7 @@
 	kern/err.c kern/list.c kern/handler.c				\
 	kern/command.c kern/corecmd.c commands/extcmd.c			\
 	normal/execute.c kern/file.c kern/fs.c normal/lexer.c 		\
-	kern/loader.c kern/main.c kern/misc.c kern/parser.c		\
+	commands/boot.c kern/main.c kern/misc.c kern/parser.c		\
 	grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c	\
 	lib/arg.c normal/cmdline.c normal/command.c normal/function.c\
 	normal/completion.c normal/datetime.c normal/context.c 		\
@@ -90,7 +90,7 @@
 kernel_mod_SOURCES = kern/x86_64/efi/startup.S kern/x86_64/efi/callwrap.S \
 	kern/main.c kern/device.c \
 	kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
-	kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+	kern/misc.c kern/mm.c kern/rescue.c kern/term.c \
 	kern/x86_64/dl.c kern/i386/efi/init.c kern/parser.c kern/partition.c \
 	kern/env.c symlist.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c \
 	kern/time.c kern/list.c kern/handler.c kern/command.c kern/corecmd.c \

Modified: trunk/grub2/include/grub/kernel.h
===================================================================
--- trunk/grub2/include/grub/kernel.h	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/include/grub/kernel.h	2009-04-15 12:45:50 UTC (rev 2117)
@@ -1,6 +1,6 @@
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2002,2005,2006,2007,2008  Free Software Foundation, Inc.
+ *  Copyright (C) 2002,2005,2006,2007,2008,2009  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -64,7 +64,7 @@
 void grub_machine_init (void);
 
 /* The machine-specific finalization.  */
-void grub_machine_fini (void);
+void EXPORT_FUNC(grub_machine_fini) (void);
 
 /* The machine-specific prefix initialization.  */
 void grub_machine_set_prefix (void);

Modified: trunk/grub2/include/grub/loader.h
===================================================================
--- trunk/grub2/include/grub/loader.h	2009-04-15 12:33:46 UTC (rev 2116)
+++ trunk/grub2/include/grub/loader.h	2009-04-15 12:45:50 UTC (rev 2117)
@@ -1,7 +1,7 @@
 /* loader.h - OS loaders */
 /*
  *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2002,2003,2004,2006,2007  Free Software Foundation, Inc.
+ *  Copyright (C) 2002,2003,2004,2006,2007,2009  Free Software Foundation, Inc.
  *
  *  GRUB is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -26,19 +26,19 @@
 #include <grub/types.h>
 
 /* Check if a loader is loaded.  */
-int EXPORT_FUNC(grub_loader_is_loaded) (void);
+int grub_loader_is_loaded (void);
 
 /* Set loader functions. NORETURN must be set to true, if BOOT won't return
    to the original state.  */
-void EXPORT_FUNC(grub_loader_set) (grub_err_t (*boot) (void),
-				   grub_err_t (*unload) (void),
-				   int noreturn);
+void grub_loader_set (grub_err_t (*boot) (void),
+		      grub_err_t (*unload) (void),
+		      int noreturn);
 
 /* Unset current loader, if any.  */
-void EXPORT_FUNC(grub_loader_unset) (void);
+void grub_loader_unset (void);
 
 /* Call the boot hook in current loader. This may or may not return,
    depending on the setting by grub_loader_set.  */
-grub_err_t EXPORT_FUNC(grub_loader_boot) (void);
+grub_err_t grub_loader_boot (void);
 
 #endif /* ! GRUB_LOADER_HEADER */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.