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