2009-03-22 Robert Millan * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'. (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New variables. Use 16-bit loader. (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit loader. * kern/i386/loader.S (grub_linux_boot): Rename to ... (grub_linux16_boot): ... this. Update all users. * loader/i386/linux.c (grub_linux32_boot): Rename to ... (grub_linux_boot): ... this. Update all users. * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ... (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd' commands to `linux16' and `initrd16'. (GRUB_MOD_FINI(linux)): Rename to ... (GRUB_MOD_FINI(linux16)): ... this. Index: conf/i386-pc.rmk =================================================================== --- conf/i386-pc.rmk (revision 2043) +++ conf/i386-pc.rmk (working copy) @@ -167,7 +167,7 @@ grub_install_SOURCES = util/i386/pc/grub # For grub-mkrescue. grub_mkrescue_SOURCES = util/i386/pc/grub-mkrescue.in -pkglib_MODULES = biosdisk.mod chain.mod linux.mod normal.mod \ +pkglib_MODULES = biosdisk.mod chain.mod normal.mod \ multiboot.mod reboot.mod halt.mod \ vbe.mod vbetest.mod vbeinfo.mod play.mod serial.mod \ ata.mod vga.mod memdisk.mod pci.mod lspci.mod \ @@ -185,8 +185,13 @@ chain_mod_SOURCES = loader/i386/pc/chain chain_mod_CFLAGS = $(COMMON_CFLAGS) chain_mod_LDFLAGS = $(COMMON_LDFLAGS) -# For _linux.mod. -linux_mod_SOURCES = loader/i386/pc/linux.c +pkglib_MODULES += linux16.mod +linux16_mod_SOURCES = loader/i386/pc/linux.c +linux16_mod_CFLAGS = $(COMMON_CFLAGS) +linux16_mod_LDFLAGS = $(COMMON_LDFLAGS) + +pkglib_MODULES += linux.mod +linux_mod_SOURCES = loader/i386/linux.c linux_mod_CFLAGS = $(COMMON_CFLAGS) linux_mod_LDFLAGS = $(COMMON_LDFLAGS) Index: kern/i386/loader.S =================================================================== --- kern/i386/loader.S (revision 2043) +++ kern/i386/loader.S (working copy) @@ -59,7 +59,7 @@ VARIABLE(grub_linux_real_addr) VARIABLE(grub_linux_is_bzimage) .long 0 -FUNCTION(grub_linux_boot) +FUNCTION(grub_linux16_boot) /* Must be done before zImage copy. */ call EXT_C(grub_dl_unload_all) Index: include/grub/i386/loader.h =================================================================== --- include/grub/i386/loader.h (revision 2043) +++ include/grub/i386/loader.h (working copy) @@ -30,7 +30,7 @@ extern grub_int32_t EXPORT_VAR(grub_linu extern grub_addr_t EXPORT_VAR(grub_os_area_addr); extern grub_size_t EXPORT_VAR(grub_os_area_size); -grub_err_t EXPORT_FUNC(grub_linux_boot) (void); +grub_err_t EXPORT_FUNC(grub_linux16_boot) (void); void EXPORT_FUNC(grub_unix_real_boot) (grub_addr_t entry, ...) __attribute__ ((cdecl,noreturn)); Index: loader/i386/linux.c =================================================================== --- loader/i386/linux.c (revision 2043) +++ loader/i386/linux.c (working copy) @@ -263,7 +263,7 @@ struct #endif static grub_err_t -grub_linux32_boot (void) +grub_linux_boot (void) { struct linux_kernel_params *params; int e820_num; @@ -522,7 +522,7 @@ grub_cmd_linux (grub_command_t cmd __att if (grub_errno == GRUB_ERR_NONE) { - grub_loader_set (grub_linux32_boot, grub_linux_unload, + grub_loader_set (grub_linux_boot, grub_linux_unload, 0 /* set noreturn=0 in order to avoid grub_console_fini() */); loaded = 1; } Index: loader/i386/pc/linux.c =================================================================== --- loader/i386/pc/linux.c (revision 2043) +++ loader/i386/pc/linux.c (working copy) @@ -269,7 +269,7 @@ grub_cmd_linux (grub_command_t cmd __att if (grub_errno == GRUB_ERR_NONE) { grub_linux_prot_size = prot_size; - grub_loader_set (grub_linux_boot, grub_linux_unload, 1); + grub_loader_set (grub_linux16_boot, grub_linux_unload, 1); loaded = 1; } @@ -378,18 +378,18 @@ grub_cmd_initrd (grub_command_t cmd __at static grub_command_t cmd_linux, cmd_initrd; -GRUB_MOD_INIT(linux) +GRUB_MOD_INIT(linux16) { cmd_linux = - grub_register_command ("linux", grub_cmd_linux, + grub_register_command ("linux16", grub_cmd_linux, 0, "load linux"); cmd_initrd = - grub_register_command ("initrd", grub_cmd_initrd, + grub_register_command ("initrd16", grub_cmd_initrd, 0, "load initrd"); my_mod = mod; } -GRUB_MOD_FINI(linux) +GRUB_MOD_FINI(linux16) { grub_unregister_command (cmd_linux); grub_unregister_command (cmd_initrd);