summaryrefslogtreecommitdiff
path: root/kernel/log.h
blob: 930aa53c4b3bbf10ab8775bd5895a7cc352453a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef FOOLOS_LOG_H
#define FOOLOS_LOG_H

#include "kernel.h"

#include <stdbool.h>

#define FOOLOS_LOG_ERROR 5
#define FOOLOS_LOG_WARNING 4
#define FOOLOS_LOG_INFO 3
#define FOOLOS_LOG_DEBUG 2
#define FOOLOS_LOG_FINE 1

void log(bool color,char *module_name, int prio, char *format_string, ...);

// __FUNCTION__ ?
#ifndef FOOLOS_LOG_OFF

#ifdef FOOLOS_COLORLESS
#define FOOLOS_LOG_COLOR false
#define LOG_LABEL_INFO  " [INFO]  "
#define LOG_LABEL_PANIC " [PANIC] "
#define LOG_LABEL_FIX   " [FIXME] "
#define LOG_LABEL_TEST  " [TEST]  "
#endif

#ifndef FOOLOS_COLORLESS
#define FOOLOS_LOG_COLOR true
#define LOG_LABEL_INFO   " \033[46;37m [INFO]  \033[37;40m "
#define LOG_LABEL_PANIC  " \033[41;37m [PANIC] \033[37;40m "
#define LOG_LABEL_FIX    " \033[44;37m [FIXME] \033[37;40m "
#define LOG_LABEL_TEST   " \033[42;37m [TEST]  \033[37;40m "
#endif

#define klog(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__), 10,    LOG_LABEL_INFO  __VA_ARGS__)
#define kpanic(...) {log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) ,0,  LOG_LABEL_PANIC __VA_ARGS__ ); while(1);}

#ifdef HIDE_FIXME
#define fixme(...) {}
#else
#define fixme(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) , 10,  LOG_LABEL_FIX __VA_ARGS__)
#endif

#define testlog(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) , 10,LOG_LABEL_TEST __VA_ARGS__)

#endif


#ifdef FOOLOS_LOG_OFF
#define kpanic(...) {while(1);}
#define klog(...) {}
#define fixme(...) {}
#define testlog(...) {}
#endif



#endif