Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / kernel / kprint / kprintf.c
index 512e79702172b263f40314e05566ea0ebe9800c7..4c1ee404a90b8a9355b7579b902ecbb0c2e3f5b4 100644 (file)
@@ -1,6 +1,7 @@
 #include <lunaix/fs/twifs.h>
 #include <lunaix/fs/twimap.h>
 #include <lunaix/syscall.h>
+#include <lunaix/syscall_utils.h>
 #include <lunaix/syslog.h>
 #include <lunaix/device.h>
 #include <lunaix/owloysius.h>
@@ -38,6 +39,16 @@ shift_level(const char* str, int* level)
     return str;
 }
 
+static inline void
+kprintf_put(int level, const char* buf, size_t sz)
+{
+    kprec_put(&kprecs, level, buf, sz);
+
+    if (likely(sysconsole)) {
+        sysconsole->ops.write(sysconsole, buf, 0, sz);
+    }
+}
+
 static inline void
 kprintf_ml(const char* component, int level, const char* fmt, va_list args)
 {
@@ -45,11 +56,7 @@ kprintf_ml(const char* component, int level, const char* fmt, va_list args)
     ksnprintf(buf, MAX_BUFSZ_HLF, "%s: %s\n", component, fmt);
 
     size_t sz = ksnprintfv(tmp_buf, buf, MAX_BUFSZ_HLF, args);
-    kprec_put(&kprecs, level, tmp_buf, sz);
-
-    if (likely(sysconsole)) {
-        sysconsole->ops.write(sysconsole, tmp_buf, 0, sz);
-    }
+    kprintf_put(level, tmp_buf, sz);
 }
 
 void
@@ -100,7 +107,8 @@ kprintf_dump_logs() {
     }
 }
 
-__DEFINE_LXSYSCALL3(void, syslog, int, level, const char*, fmt, va_list, args)
+__DEFINE_LXSYSCALL3(void, syslog, int, level, 
+                    const char*, buf, unsigned int, size)
 {
-    kprintf_ml("syslog", level, fmt, args);
+    kprintf_put(level, buf, size);
 }
\ No newline at end of file