2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
Support for 64-bit NetBSD. * loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry point when booting non-FreeBSD.
This commit is contained in:
parent
f5ae9f745f
commit
adb29902f3
2 changed files with 19 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
Support for 64-bit NetBSD.
|
||||||
|
|
||||||
|
* loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry
|
||||||
|
point when booting non-FreeBSD.
|
||||||
|
|
||||||
2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
|
2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
Support --no-smp and --no-acpi for NetBSD.
|
Support --no-smp and --no-acpi for NetBSD.
|
||||||
|
|
|
@ -778,8 +778,18 @@ grub_bsd_load_elf (grub_elf_t elf)
|
||||||
else if (grub_elf_is_elf64 (elf))
|
else if (grub_elf_is_elf64 (elf))
|
||||||
{
|
{
|
||||||
is_64bit = 1;
|
is_64bit = 1;
|
||||||
entry = elf->ehdr.ehdr64.e_entry & 0xffffffff;
|
|
||||||
entry_hi = (elf->ehdr.ehdr64.e_entry >> 32) & 0xffffffff;
|
/* FreeBSD has 64-bit entry point. */
|
||||||
|
if (kernel_type == KERNEL_TYPE_FREEBSD)
|
||||||
|
{
|
||||||
|
entry = elf->ehdr.ehdr64.e_entry & 0xffffffff;
|
||||||
|
entry_hi = (elf->ehdr.ehdr64.e_entry >> 32) & 0xffffffff;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
entry = elf->ehdr.ehdr64.e_entry & 0x0fffffff;
|
||||||
|
entry_hi = 0;
|
||||||
|
}
|
||||||
return grub_elf64_load (elf, grub_bsd_elf64_hook, 0, 0);
|
return grub_elf64_load (elf, grub_bsd_elf64_hook, 0, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue