git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Second Extended Filesystem (ext2) and other improvements (#33)
[lunaix-os.git]
/
lunaix-os
/
kernel
/
kprint
/
kprintf.c
diff --git
a/lunaix-os/kernel/kprint/kprintf.c
b/lunaix-os/kernel/kprint/kprintf.c
index 512e79702172b263f40314e05566ea0ebe9800c7..02bc0ee9feca75a2cbca921372be3e44db26b0a1 100644
(file)
--- a/
lunaix-os/kernel/kprint/kprintf.c
+++ b/
lunaix-os/kernel/kprint/kprintf.c
@@
-1,6
+1,7
@@
#include <lunaix/fs/twifs.h>
#include <lunaix/fs/twimap.h>
#include <lunaix/syscall.h>
#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>
#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;
}
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)
{
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);
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
}
void
@@
-61,6
+68,15
@@
kprintf_m(const char* component, const char* fmt, va_list args)
kprintf_ml(component, level, fmt, args);
}
kprintf_ml(component, level, fmt, args);
}
+void
+kprintf_v(const char* component, const char* fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+ kprintf_m(component, fmt, args);
+ va_end(args);
+}
+
static void
__twimap_kprintf_read(struct twimap* map)
{
static void
__twimap_kprintf_read(struct twimap* map)
{
@@
-100,7
+116,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
}
\ No newline at end of file