/trunk/kernel/arch/ia32/src/boot/boot.S |
---|
104,30 → 104,13 |
call map_kernel # map kernel and turn paging on |
movl grub_eax, %eax |
movl grub_ebx, %ebx |
cmpl $MULTIBOOT_LOADER_MAGIC, %eax # compare GRUB signature |
je valid_boot |
xorl %ecx, %ecx # no memory map available |
movl %ecx, e820counter |
jmp invalid_boot |
valid_boot: |
movl grub_eax, %eax |
movl grub_ebx, %ebx |
# ia32_boot(grub_eax, grub_ebx) |
pushl %ebx |
pushl %eax |
# ia32_cboot(grub_eax, grub_ebx) |
pushl grub_ebx |
pushl grub_eax |
call ia32_cboot # Does not return. |
# Not reached. |
invalid_boot: |
cli |
hlt |
/trunk/kernel/arch/ia32/src/boot/cboot.c |
---|
52,7 → 52,12 |
mb_mod_t *mods; |
uint32_t i; |
flags = mi->flags; |
if (signature == MULTIBOOT_LOADER_MAGIC) { |
flags = mi->flags; |
} else { |
/* No multiboot info available. */ |
flags = 0; |
} |
/* Copy module information. */ |