From 0fd089e79b1ddf8077f0b94abd26b5e66a7b3095 Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 16 Sep 2024 21:37:29 -0300 Subject: [PATCH] print: add mutex for smp --- kernel-src/sys/syscalls/print.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/kernel-src/sys/syscalls/print.c b/kernel-src/sys/syscalls/print.c index 979b2c4c..676131ef 100644 --- a/kernel-src/sys/syscalls/print.c +++ b/kernel-src/sys/syscalls/print.c @@ -1,14 +1,25 @@ #include #include #include +#include syscallret_t syscall_print(context_t *context, char *message) { syscallret_t ret = { .ret = 0, .errno = 0 }; - //printf("%s\n", message); + + static mutex_t mutex; + static bool initialized = false; + + if (initialized == false) { + MUTEX_INIT(&mutex); + initialized = true; + } + + MUTEX_ACQUIRE(&mutex, false); arch_e9_puts(message); arch_e9_putc('\n'); + MUTEX_RELEASE(&mutex); return ret; }