Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 1 | #ifndef _DEBUG_H |
| 2 | #define _DEBUG_H |
| 3 | |
Harald Welte | 3633a6d | 2008-12-26 00:06:02 +0000 | [diff] [blame] | 4 | #define DEBUG |
| 5 | |
Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 6 | #define DRLL 0x0001 |
| 7 | #define DCC 0x0002 |
| 8 | #define DMM 0x0004 |
| 9 | #define DRR 0x0008 |
Harald Welte | 3633a6d | 2008-12-26 00:06:02 +0000 | [diff] [blame] | 10 | #define DRSL 0x0010 |
| 11 | #define DNM 0x0020 |
Harald Welte | b480f41 | 2009-02-18 03:27:39 +0000 | [diff] [blame] | 12 | |
Harald Welte | c125a68 | 2009-05-23 06:42:38 +0000 | [diff] [blame] | 13 | #define DMNCC 0x0080 |
Harald Welte | bcae43f | 2008-12-27 21:45:37 +0000 | [diff] [blame] | 14 | #define DSMS 0x0100 |
Harald Welte | d35b6a7 | 2008-12-29 04:06:41 +0000 | [diff] [blame] | 15 | #define DPAG 0x0200 |
Harald Welte | 10d0e67 | 2009-06-27 02:53:10 +0200 | [diff] [blame] | 16 | #define DMEAS 0x0400 |
Harald Welte | b480f41 | 2009-02-18 03:27:39 +0000 | [diff] [blame] | 17 | |
Harald Welte | 3633a6d | 2008-12-26 00:06:02 +0000 | [diff] [blame] | 18 | #define DMI 0x1000 |
Harald Welte | a3d0438 | 2008-12-27 17:02:56 +0000 | [diff] [blame] | 19 | #define DMIB 0x2000 |
Harald Welte | b480f41 | 2009-02-18 03:27:39 +0000 | [diff] [blame] | 20 | #define DMUX 0x4000 |
Harald Welte | edb3778 | 2009-05-01 14:59:07 +0000 | [diff] [blame] | 21 | #define DINP 0x8000 |
Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 22 | |
Holger Hans Peter Freyther | ed0a47b | 2009-08-01 16:54:45 +0200 | [diff] [blame] | 23 | #define DSCCP 0x10000 |
Holger Hans Peter Freyther | 32201c5 | 2009-08-18 12:54:50 +0200 | [diff] [blame] | 24 | #define DMSC 0x20000 |
Holger Hans Peter Freyther | ed0a47b | 2009-08-01 16:54:45 +0200 | [diff] [blame] | 25 | |
Holger Hans Peter Freyther | ff5fa4e | 2009-11-20 13:05:48 +0100 | [diff] [blame] | 26 | #define DMGCP 0x40000 |
| 27 | |
Harald Welte | 8d77b95 | 2009-12-17 00:31:10 +0100 | [diff] [blame] | 28 | #define DHO 0x80000 |
| 29 | |
Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 30 | #ifdef DEBUG |
Harald Welte | 6ddd168 | 2009-02-06 12:38:29 +0000 | [diff] [blame] | 31 | #define DEBUGP(ss, fmt, args...) debugp(ss, __FILE__, __LINE__, 0, fmt, ## args) |
| 32 | #define DEBUGPC(ss, fmt, args...) debugp(ss, __FILE__, __LINE__, 1, fmt, ## args) |
Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 33 | #else |
Harald Welte | ad38464 | 2008-12-26 10:20:07 +0000 | [diff] [blame] | 34 | #define DEBUGP(xss, fmt, args...) |
Harald Welte | 6ddd168 | 2009-02-06 12:38:29 +0000 | [diff] [blame] | 35 | #define DEBUGPC(ss, fmt, args...) |
Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 36 | #endif |
| 37 | |
Holger Freyther | 1ad732c | 2008-12-28 16:32:41 +0000 | [diff] [blame] | 38 | #define static_assert(exp, name) typedef int dummy##name [(exp) ? 1 : -1]; |
| 39 | |
Holger Hans Peter Freyther | e78074e | 2009-08-20 13:16:26 +0200 | [diff] [blame] | 40 | char *hexdump(const unsigned char *buf, int len); |
Holger Hans Peter Freyther | 02c28a0 | 2009-10-20 08:56:06 +0200 | [diff] [blame] | 41 | void debugp(unsigned int subsys, char *file, int line, int cont, const char *format, ...) __attribute__ ((format (printf, 5, 6))); |
Holger Freyther | 5ee72ee | 2008-12-27 12:46:49 +0000 | [diff] [blame] | 42 | void debug_parse_category_mask(const char* mask); |
Holger Freyther | b332f61 | 2008-12-27 12:46:51 +0000 | [diff] [blame] | 43 | void debug_use_color(int use_color); |
Harald Welte | d3ff51d | 2009-06-09 20:21:57 +0000 | [diff] [blame] | 44 | void debug_timestamp(int enable); |
Harald Welte | c125a68 | 2009-05-23 06:42:38 +0000 | [diff] [blame] | 45 | extern unsigned int debug_mask; |
Harald Welte | ad38464 | 2008-12-26 10:20:07 +0000 | [diff] [blame] | 46 | |
Harald Welte | b1d4c8e | 2009-12-17 23:10:46 +0100 | [diff] [blame^] | 47 | /* new logging interface */ |
| 48 | #define LOGP(ss, level, fmt, args...) debugp(ss, __FILE__, __LINE__, 0, fmt, ##args) |
| 49 | #define LOGPC(ss, level, fmt, args...) debugp(ss, __FILE__, __LINE__, 1, fmt, ##args) |
| 50 | |
| 51 | /* different levels */ |
| 52 | #define LOGL_DEBUG 1 /* debugging information */ |
| 53 | #define LOGL_INFO 3 |
| 54 | #define LOGL_NOTICE 5 /* abnormal/unexpected condition */ |
| 55 | #define LOGL_ERROR 7 /* error condition, requires user action */ |
| 56 | #define LOGL_FATAL 8 /* fatal, program aborted */ |
| 57 | |
Harald Welte | 52b1f98 | 2008-12-23 20:25:15 +0000 | [diff] [blame] | 58 | #endif /* _DEBUG_H */ |