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; }