6ab66c48376645e74d9e88684d7d41797d98fbae
[akaros.git] / user / parlib / include / ros_debug.h
1 #ifndef PARLIB_INC_DEBUG_H
2 #define PARLIB_INC_DEBUG_H
3
4 #include <ros/common.h>
5 #include <stdio.h>
6 #include <stdarg.h>
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 void ros_debugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...);
13 void ros_vdebugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_list);
14
15 int     ros_debug(const char *fmt, ...);
16 int     ros_vdebug(const char *fmt, va_list);
17
18 //#define PRINTD_DEBUG
19 #ifdef PRINTD_DEBUG
20 #define printd(args...) printf(args)
21 #else
22 #define printd(args...) {}
23 #endif
24
25 /* For a poor-mans function tracer (can add these with spatch) */
26 void __print_func_entry(const char *func, const char *file);
27 void __print_func_exit(const char *func, const char *file);
28 #define print_func_entry() __print_func_entry(__FUNCTION__, __FILE__)
29 #define print_func_exit() __print_func_exit(__FUNCTION__, __FILE__)
30
31 #ifdef __cplusplus
32 }
33 #endif
34
35 #endif /* !PARLIB_INC_DEBUG_H */