From 5341e057d2409467fe668cd322c6d27a8efaae8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gr=C3=A9goire?= Date: Sat, 4 Apr 2026 21:33:03 -0400 Subject: [PATCH] feat(ke+pl): pass boot info to early init --- src/kern/init.zig | 2 +- src/platform/pc/impl.zig | 4 +++- src/platform/root.zig | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/kern/init.zig b/src/kern/init.zig index 00aa9e1..7106692 100644 --- a/src/kern/init.zig +++ b/src/kern/init.zig @@ -12,7 +12,7 @@ var stack: [8192]u8 align(16) = undefined; pub fn init(boot_info: *pl.BootInfo) linksection(b.init) void { std.log.info("hello, world", .{}); ki.impl.early_init(); - pl.early_init(); + pl.early_init(boot_info); ki.cpu.init_cpu(); thread0.init(@intFromPtr(&stack), 8192, ki.sched.idle, null); diff --git a/src/platform/pc/impl.zig b/src/platform/pc/impl.zig index f0c1f68..81a8bba 100644 --- a/src/platform/pc/impl.zig +++ b/src/platform/pc/impl.zig @@ -1,4 +1,5 @@ const b = @import("base"); +const pl = b.pl; const amd64 = b.arch; const std = @import("std"); @@ -25,7 +26,7 @@ fn com1_write(c: u8) void { amd64.outb(com1, c); } -pub fn early_init() linksection(b.init) void { +pub fn early_init(boot_info: *pl.BootInfo) linksection(b.init) void { com1_init(); amd64.detect_cpu_features(); @@ -48,6 +49,7 @@ pub fn early_init() linksection(b.init) void { @intFromBool(f.fxsave), @intFromBool(f.tsc_deadline), }); + _ = boot_info; } pub fn late_init() void {} diff --git a/src/platform/root.zig b/src/platform/root.zig index 07d21e9..98aae91 100644 --- a/src/platform/root.zig +++ b/src/platform/root.zig @@ -11,8 +11,8 @@ else @compileError("unsupported architecture"); /// Early platform-specific initialization, called before anything else. -pub inline fn early_init() void { - return impl.early_init(); +pub inline fn early_init(boot_info: *BootInfo) void { + return impl.early_init(boot_info); } /// Late platform init. Memory allocator is available at this point.