From 2e82a695e1407e1bdb4de64c095a076abc2d5d2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gr=C3=A9goire?= Date: Sat, 28 Mar 2026 10:17:18 -0400 Subject: [PATCH] feat(ke): integrate the logger with KConfig --- Kconfig | 5 +++++ src/kern/log.zig | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Kconfig b/Kconfig index 00f7aa6..196b31e 100644 --- a/Kconfig +++ b/Kconfig @@ -57,4 +57,9 @@ config NCPUS help This option sets the maximum number of CPUs the kernel can support. +config LOG_BUFFER_SHIFT + int "Log buffer size shift" + default 14 + help + This option sets the size of the kernel log buffer as a power of two. The actual size is calculated as 2 raised to the power of this value (i.e., 2^LOG_BUFFER_SHIFT bytes). endmenu diff --git a/src/kern/log.zig b/src/kern/log.zig index e4116ea..747234e 100644 --- a/src/kern/log.zig +++ b/src/kern/log.zig @@ -4,6 +4,7 @@ const rtl = @import("rtl"); const pl = b.pl; const ke = b.ke; const ki = ke.private; +const config = @import("config"); const DebugWriter = struct { interface: std.Io.Writer, @@ -31,7 +32,10 @@ const DebugWriter = struct { } }; -var ringbuffer = ki.log_ring.RingBuffer(14, 5).init(); +// Messages are on average 2^5 = 32 bytes. +const avg_msg_size_bits = 5; + +var ringbuffer = ki.log_ring.RingBuffer(config.CONFIG_LOG_BUFFER_SHIFT, avg_msg_size_bits).init(); pub fn log( comptime level: std.log.Level,