ca13c4696c4ba73a48ad913c0aa810d999681b33
[akaros.git] / user / parlib / include / ros_debug.h
1 #ifndef PARLIB_ROS_DEBUG_H
2 #define PARLIB_ROS_DEBUG_H
3
4 #include <parlib/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 /* user/parlib/hexdump.c */
30 void hexdump(FILE *f, void *v, int length);
31
32 __END_DECLS
33
34 #endif /* PARLIB_ROS_DEBUG_H */