From 825fc8fda2cfee35be5bbea5e4c9cc0046377347 Mon Sep 17 00:00:00 2001 From: robertmh Date: Wed, 17 Oct 2007 09:38:55 +0000 Subject: [PATCH] 2007-10-17 Robert Millan * include/grub/i386/loader.h: New file. * include/grub/i386/pc/loader.h (grub_linux_prot_size) (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr) (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage) (grub_multiboot_real_boot, grub_multiboot2_real_boot) (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ... * include/grub/i386/loader.h (grub_linux_prot_size) (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr) (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage) (grub_multiboot_real_boot, grub_multiboot2_real_boot) (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here. * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'. --- ChangeLog | 17 +++++++++++++ DISTLIST | 1 + include/grub/i386/loader.h | 48 +++++++++++++++++++++++++++++++++++ include/grub/i386/pc/loader.h | 25 +----------------- 4 files changed, 67 insertions(+), 24 deletions(-) create mode 100644 include/grub/i386/loader.h diff --git a/ChangeLog b/ChangeLog index 45a043603..54045b31f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2007-10-17 Robert Millan + + * include/grub/i386/loader.h: New file. + + * include/grub/i386/pc/loader.h (grub_linux_prot_size) + (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr) + (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage) + (grub_multiboot_real_boot, grub_multiboot2_real_boot) + (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ... + * include/grub/i386/loader.h (grub_linux_prot_size) + (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr) + (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage) + (grub_multiboot_real_boot, grub_multiboot2_real_boot) + (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here. + + * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'. + 2007-10-15 Robert Millan * normal/misc.c (grub_normal_print_device_info): Do not probe for diff --git a/DISTLIST b/DISTLIST index ac74511ea..0db50ea17 100644 --- a/DISTLIST +++ b/DISTLIST @@ -137,6 +137,7 @@ include/grub/efi/efi.h include/grub/efi/pe32.h include/grub/efi/time.h include/grub/i386/linux.h +include/grub/i386/loader.h include/grub/i386/setjmp.h include/grub/i386/types.h include/grub/i386/efi/kernel.h diff --git a/include/grub/i386/loader.h b/include/grub/i386/loader.h new file mode 100644 index 000000000..6d9ecb9f0 --- /dev/null +++ b/include/grub/i386/loader.h @@ -0,0 +1,48 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2002,2003,2004,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 . + */ + +#ifndef GRUB_LOADER_CPU_HEADER +#define GRUB_LOADER_CPU_HEADER 1 + +#include +#include +#include + +extern grub_uint32_t EXPORT_VAR(grub_linux_prot_size); +extern char *EXPORT_VAR(grub_linux_tmp_addr); +extern char *EXPORT_VAR(grub_linux_real_addr); +extern grub_addr_t EXPORT_VAR(grub_os_area_addr); +extern grub_size_t EXPORT_VAR(grub_os_area_size); + +void EXPORT_FUNC(grub_linux_boot_zimage) (void) __attribute__ ((noreturn)); +void EXPORT_FUNC(grub_linux_boot_bzimage) (void) __attribute__ ((noreturn)); + +/* The asm part of the multiboot loader. */ +void EXPORT_FUNC(grub_multiboot_real_boot) (grub_addr_t entry, + struct grub_multiboot_info *mbi) + __attribute__ ((noreturn)); +void EXPORT_FUNC(grub_multiboot2_real_boot) (grub_addr_t entry, + struct grub_multiboot_info *mbi) + __attribute__ ((noreturn)); + +/* It is necessary to export these functions, because normal mode commands + reuse rescue mode commands. */ +void grub_rescue_cmd_linux (int argc, char *argv[]); +void grub_rescue_cmd_initrd (int argc, char *argv[]); + +#endif /* ! GRUB_LOADER_CPU_HEADER */ diff --git a/include/grub/i386/pc/loader.h b/include/grub/i386/pc/loader.h index 208b0fafe..3e031413b 100644 --- a/include/grub/i386/pc/loader.h +++ b/include/grub/i386/pc/loader.h @@ -19,33 +19,10 @@ #ifndef GRUB_LOADER_MACHINE_HEADER #define GRUB_LOADER_MACHINE_HEADER 1 -#include #include -#include - -extern grub_uint32_t EXPORT_VAR(grub_linux_prot_size); -extern char *EXPORT_VAR(grub_linux_tmp_addr); -extern char *EXPORT_VAR(grub_linux_real_addr); -extern grub_addr_t EXPORT_VAR(grub_os_area_addr); -extern grub_size_t EXPORT_VAR(grub_os_area_size); - -void EXPORT_FUNC(grub_linux_boot_zimage) (void) __attribute__ ((noreturn)); -void EXPORT_FUNC(grub_linux_boot_bzimage) (void) __attribute__ ((noreturn)); +#include /* This is an asm part of the chainloader. */ void EXPORT_FUNC(grub_chainloader_real_boot) (int drive, void *part_addr) __attribute__ ((noreturn)); -/* The asm part of the multiboot loader. */ -void EXPORT_FUNC(grub_multiboot_real_boot) (grub_addr_t entry, - struct grub_multiboot_info *mbi) - __attribute__ ((noreturn)); -void EXPORT_FUNC(grub_multiboot2_real_boot) (grub_addr_t entry, - struct grub_multiboot_info *mbi) - __attribute__ ((noreturn)); - -/* It is necessary to export these functions, because normal mode commands - reuse rescue mode commands. */ -void grub_rescue_cmd_linux (int argc, char *argv[]); -void grub_rescue_cmd_initrd (int argc, char *argv[]); - #endif /* ! GRUB_LOADER_MACHINE_HEADER */