From 659f98910d02698d29df080a71719b648dd427a0 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Sun, 7 Sep 2025 22:23:41 +0200 Subject: [PATCH] Terminal lock --- kernel/kprintf.h | 2 ++ kernel/term/term.c | 1 + kernel/term/term.h | 1 + 3 files changed, 4 insertions(+) diff --git a/kernel/kprintf.h b/kernel/kprintf.h index bc9f395..ec8bdcf 100644 --- a/kernel/kprintf.h +++ b/kernel/kprintf.h @@ -7,7 +7,9 @@ #define kprintf(fmt, ...) \ do { \ + spinlock_acquire(&TERM.spinlock); \ printf_(fmt, ##__VA_ARGS__); \ + spinlock_release(&TERM.spinlock); \ } while(0) #define ksprintf sprintf_ diff --git a/kernel/term/term.c b/kernel/term/term.c index 5ec9065..14f6065 100644 --- a/kernel/term/term.c +++ b/kernel/term/term.c @@ -32,6 +32,7 @@ void term_doinit(void *addr) { void term_init(void *addr) { term_doinit(addr); + spinlock_init(&TERM.spinlock); } void term_write_unsafe(const char *s, size_t len) { diff --git a/kernel/term/term.h b/kernel/term/term.h index cf1d5c3..fe91fe2 100644 --- a/kernel/term/term.h +++ b/kernel/term/term.h @@ -7,6 +7,7 @@ typedef struct { struct flanterm_context *ftctx; + SpinLock spinlock; } Term; extern Term TERM;