diff options
-rw-r--r-- | arch/x86/boot/multiboot/head.s | 5 | ||||
-rw-r--r-- | kernel/main.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/boot/multiboot/head.s b/arch/x86/boot/multiboot/head.s index 31051ff..99f8f98 100644 --- a/arch/x86/boot/multiboot/head.s +++ b/arch/x86/boot/multiboot/head.s @@ -81,6 +81,11 @@ _start: runtime support to work as well. */ + /* Push the pointer to the Multiboot information structure. */ + push %ebx + /* Push the magic value. */ + push %eax + /* Enter the high-level kernel. The ABI requires the stack is 16-byte aligned at the time of the call instruction (which afterwards pushes diff --git a/kernel/main.c b/kernel/main.c index 5b146bb..82cb175 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -1,3 +1,4 @@ +#include "multiboot.h" #include "video/console/vgacon.h" #include "gdt.h" @@ -9,7 +10,8 @@ #if !defined(__i386__) #error "This kernel needs to be compiled with a ix86-elf compiler" #endif -void kernel_main(void) + +void kernel_main(uint32_t magic, multiboot_info_t *multiboot) { init_segmentation(); |