feat: kprintf now goes into dedicated pseudo-dev rather than flooding the framebuffer
[lunaix-os.git] / lunaix-os / includes / lunaix / syslog.h
1 #ifndef __LUNAIX_SYSLOG_H
2 #define __LUNAIX_SYSLOG_H
3
4 #include <lunaix/compiler.h>
5 #include <stdarg.h>
6
7 #define KLOG_DEBUG 0
8 #define KLOG_INFO 1
9 #define KLOG_WARN 2
10 #define KLOG_ERROR 3
11 #define KLOG_FATAL 4
12
13 #define _LEVEL_INFO "0"
14 #define _LEVEL_WARN "1"
15 #define _LEVEL_ERROR "2"
16 #define _LEVEL_DEBUG "3"
17
18 #define KMSG_LVLSTART '\x1b'
19 #define KMSG_LOGLEVEL(c) ((c) - '0')
20
21 #define KDEBUG "\x1b" stringify__(KLOG_DEBUG)
22 #define KINFO "\x1b" stringify__(KLOG_INFO)
23 #define KWARN "\x1b" stringify__(KLOG_WARN)
24 #define KERROR "\x1b" stringify__(KLOG_ERROR)
25 #define KFATAL "\x1b" stringify__(KLOG_FATAL)
26
27 #define LOG_MODULE(module)                                                     \
28     static void kprintf(const char* fmt, ...)                                  \
29     {                                                                          \
30         va_list args;                                                          \
31         va_start(args, fmt);                                                   \
32         __kprintf(module, fmt, args);                                          \
33         va_end(args);                                                          \
34     }
35
36 void
37 __kprintf(const char* component, const char* fmt, va_list args);
38
39 #endif /* __LUNAIX_SYSLOG_H */