diff options
author | Brett Weiland <brett_weiland@bpcspace.com> | 2021-08-29 02:52:48 -0500 |
---|---|---|
committer | Brett Weiland <brett_weiland@bpcspace.com> | 2021-08-29 02:52:48 -0500 |
commit | 1f71b9576db536af84155363e14fc49e92de2eef (patch) | |
tree | 23f65a31cc89785befb70517b203625e2296326f /src/kernel/printf.c | |
parent | dc0e84d5779db68e081c667faadc19a20de861ea (diff) |
backup 8.29.21
Diffstat (limited to 'src/kernel/printf.c')
-rw-r--r-- | src/kernel/printf.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/kernel/printf.c b/src/kernel/printf.c index 8267755..b496bce 100644 --- a/src/kernel/printf.c +++ b/src/kernel/printf.c @@ -33,10 +33,11 @@ #include <stdbool.h>
#include <stdint.h>
+
#include "printf.h"
//this is my own ugly library
-#include <serial.h>
+#include <klog.h>
//and my options
/**
@@ -161,12 +162,7 @@ static inline void _out_char(char character, void* buffer, size_t idx, size_t ma {
(void)buffer; (void)idx; (void)maxlen;
if (character) {
-#ifdef SCREEN_OUTPUT
- _putchar_screen(character);
-#else
- _putchar_serial(COM1, character); // later we should figure out a way to not specifify exclusively com1
-#endif
-
+ _putchar(character);
}
}
@@ -874,17 +870,24 @@ static int _vsnprintf(out_fct_type out, char* buffer, const size_t maxlen, const ///////////////////////////////////////////////////////////////////////////////
+#include <smp_sync.h>
+static uint8_t printf_lock = 0;
int printf_(const char* format, ...)
{
+ //BRETT modification
+ lock(&printf_lock);
va_list va;
va_start(va, format);
char buffer[1];
const int ret = _vsnprintf(_out_char, buffer, (size_t)-1, format, va);
va_end(va);
+ unlock(&printf_lock);
return ret;
}
+///////////////////////////////////////////////////////////////////////////////
+
int sprintf_(char* buffer, const char* format, ...)
{
|