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
make irq specifier to be provided when assigining irq
[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 310b1f67d1b8ba8da48a3b90fa88255ce42bd392..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>
@@
-23,7
+24,7
@@
static struct kp_records kprecs = {
.max_recs = MAX_KPENT_NUM,
.kp_ent_wp = &kprecs.kp_ents.ents
};
.max_recs = MAX_KPENT_NUM,
.kp_ent_wp = &kprecs.kp_ents.ents
};
-export_symbol(debug, kprecs);
+export_symbol(debug, kpr
intf, kpr
ecs);
static char*
shift_level(const char* str, int* level)
static char*
shift_level(const char* str, int* level)
@@
-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)
{
@@
-87,7
+103,8
@@
kprintf_mapping_init()
EXPORT_TWIFS_PLUGIN(kprintf, kprintf_mapping_init);
EXPORT_TWIFS_PLUGIN(kprintf, kprintf_mapping_init);
-static void kprintf_init() {
+void
+kprintf_dump_logs() {
if (unlikely(!sysconsole)) {
return;
}
if (unlikely(!sysconsole)) {
return;
}
@@
-98,9
+115,9
@@
static void kprintf_init() {
sysconsole->ops.write(sysconsole, pos->content, 0, pos->len);
}
}
sysconsole->ops.write(sysconsole, pos->content, 0, pos->len);
}
}
-lunaix_initfn(kprintf_init, call_on_postboot);
-__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