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>
+
+ 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>
Support --no-smp and --no-acpi for NetBSD.
else if (grub_elf_is_elf64 (elf))
{
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);
}
else