From 5fdd893728a6506cd7980b85b9862523e841877d Mon Sep 17 00:00:00 2001 From: Joursoir Date: Mon, 10 Oct 2022 18:50:00 +0300 Subject: pass multiboot information to the kernel --- arch/x86/boot/multiboot/head.s | 5 +++++ kernel/main.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) 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(); -- cgit v1.2.3-18-g5258