Fix compilation errors

This commit is contained in:
phcoder 2011-01-03 02:28:14 +01:00
parent 0718f66d12
commit c18271ed00
8 changed files with 31 additions and 11 deletions

View file

@ -130,7 +130,6 @@ if COND_ia64_efi
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/time.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/time.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ia64/efi/misc.h
endif endif
if COND_mips_yeeloong if COND_mips_yeeloong

View file

@ -126,8 +126,8 @@ kernel = {
x86_64_efi = kern/i386/efi/init.c; x86_64_efi = kern/i386/efi/init.c;
ia64_efi = kern/ia64/efi/startup.S; ia64_efi = kern/ia64/efi/startup.S;
ia64_efi = kern/ia64/trampoline.S;
ia64_efi = kern/ia64/efi/init.c; ia64_efi = kern/ia64/efi/init.c;
ia64_efi = kern/ia64/dl.c;
i386_pc = kern/i386/pc/init.c; i386_pc = kern/i386/pc/init.c;
i386_pc = kern/i386/pc/mmap.c; i386_pc = kern/i386/pc/mmap.c;
@ -575,7 +575,8 @@ module = {
i386_pc = commands/acpihalt.c; i386_pc = commands/acpihalt.c;
i386_coreboot = commands/acpihalt.c; i386_coreboot = commands/acpihalt.c;
i386_multiboot = commands/acpihalt.c; i386_multiboot = commands/acpihalt.c;
x86_efi = commands/acpihalt.c; i386_efi = commands/acpihalt.c;
x86_64_efi = commands/acpihalt.c;
i386_multiboot = lib/i386/halt.c; i386_multiboot = lib/i386/halt.c;
i386_coreboot = lib/i386/halt.c; i386_coreboot = lib/i386/halt.c;
i386_qemu = lib/i386/halt.c; i386_qemu = lib/i386/halt.c;
@ -1244,6 +1245,7 @@ module = {
mips_yeeloong = mmap/mips/yeeloong/uppermem.c; mips_yeeloong = mmap/mips/yeeloong/uppermem.c;
enable = x86; enable = x86;
enable = ia64_efi;
enable = mips_yeeloong; enable = mips_yeeloong;
}; };
@ -1435,7 +1437,8 @@ module = {
module = { module = {
name = efi_uga; name = efi_uga;
efi = video/efi_uga.c; efi = video/efi_uga.c;
enable = efi; enable = i386_efi;
enable = x86_64_efi;
}; };
module = { module = {

View file

@ -25,13 +25,11 @@
#include <grub/cache.h> #include <grub/cache.h>
#include <grub/kernel.h> #include <grub/kernel.h>
#include <grub/efi/efi.h> #include <grub/efi/efi.h>
#include <grub/machine/misc.h>
void void
grub_machine_init (void) grub_machine_init (void)
{ {
grub_efi_init (); grub_efi_init ();
grub_init_modules ();
} }
void void

View file

@ -15,6 +15,10 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with GRUB. If not, see <http://www.gnu.org/licenses/>. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <config.h>
#include <grub/symbol.h>
#include <grub/offsets.h>
.text .text
.psr abi64 .psr abi64
.psr lsb .psr lsb
@ -38,3 +42,12 @@ _start:
br.ret.sptk.few rp br.ret.sptk.few rp
.endp _start .endp _start
. = _start + GRUB_KERNEL_MACHINE_PREFIX
VARIABLE(grub_prefix)
/* to be filled by grub-mkimage */
/*
* Leave some breathing room for the prefix.
*/
. = _start + GRUB_KERNEL_MACHINE_PREFIX_END

View file

@ -28,7 +28,9 @@ void
grub_halt (void) grub_halt (void)
{ {
grub_machine_fini (); grub_machine_fini ();
#ifndef __ia64__
grub_acpi_halt (); grub_acpi_halt ();
#endif
efi_call_4 (grub_efi_system_table->runtime_services->reset_system, efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
GRUB_EFI_RESET_SHUTDOWN, GRUB_EFI_SUCCESS, 0, NULL); GRUB_EFI_RESET_SHUTDOWN, GRUB_EFI_SUCCESS, 0, NULL);

View file

@ -30,7 +30,6 @@
#include <grub/efi/api.h> #include <grub/efi/api.h>
#include <grub/efi/efi.h> #include <grub/efi/efi.h>
#include <grub/elf.h> #include <grub/elf.h>
#include <grub/gzio.h>
#define ALIGN_MIN (256*1024*1024) #define ALIGN_MIN (256*1024*1024)
@ -512,7 +511,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
goto fail; goto fail;
} }
file = grub_gzfile_open (argv[0], 1); file = grub_file_open (argv[0]);
if (! file) if (! file)
{ {
grub_error (GRUB_ERR_BAD_ARGUMENT, "Couldn't open file"); grub_error (GRUB_ERR_BAD_ARGUMENT, "Couldn't open file");
@ -594,7 +593,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
goto fail; goto fail;
} }
file = grub_gzfile_open (argv[0], 1); file = grub_file_open (argv[0]);
if (! file) if (! file)
goto fail; goto fail;
@ -644,7 +643,7 @@ grub_cmd_payload (grub_command_t cmd __attribute__ ((unused)),
goto fail; goto fail;
} }
file = grub_gzfile_open (argv[0], 1); file = grub_file_open (argv[0]);
if (! file) if (! file)
goto fail; goto fail;

View file

@ -1234,7 +1234,7 @@ struct grub_efi_block_io
}; };
typedef struct grub_efi_block_io grub_efi_block_io_t; typedef struct grub_efi_block_io grub_efi_block_io_t;
#if GRUB_TARGET_SIZEOF_VOID_P == 4 #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__)
#define efi_call_0(func) func() #define efi_call_0(func) func()
#define efi_call_1(func, a) func(a) #define efi_call_1(func, a) func(a)

View file

@ -117,6 +117,12 @@
/* End of the data section. */ /* End of the data section. */
#define GRUB_KERNEL_I386_EFI_PREFIX_END 0x50 #define GRUB_KERNEL_I386_EFI_PREFIX_END 0x50
/* The offset of GRUB_PREFIX. */
#define GRUB_KERNEL_IA64_EFI_PREFIX 0x50
/* End of the data section. */
#define GRUB_KERNEL_IA64_EFI_PREFIX_END 0xa0
/* The offset of GRUB_PREFIX. */ /* The offset of GRUB_PREFIX. */
#define GRUB_KERNEL_X86_64_EFI_PREFIX 0x8 #define GRUB_KERNEL_X86_64_EFI_PREFIX 0x8