#include #include #define DEBUG_OFF 1 #define DEBUG_ON 2 #define DEFAULT_DEBUG 1 #define DEFAULT_DEBUG_LEVEL 0 #define DLEVELX 0xFFFF /* 1 */ #define DLEVEL1 0x0002 /* 2 */ #define DLEVEL2 0x0004 /* 4 */ #define DLEVEL3 0x0008 /* 8 */ #define DLEVEL4 0x0010 /* 16 */ #define DLEVEL5 0x0020 /* 32 */ #define DLEVEL6 0x0040 /* 64 */ #define DLEVEL7 0x0080 /* 128 */ #define DLEVEL8 0x0100 /* ALL */ #define DLEVEL9 0x0200 /* ALL */ #define DLEVEL10 0x0400 /* ALL */ #define DLEVEL11 0x0800 /* ALL */ #define DLEVEL12 0x1000 /* ALL */ #define DLEVEL13 0x2000 /* ALL */ #define DLEVEL14 0x4000 /* ALL */ #define DLEVEL15 0x8000 /* ALL */ #ifdef DEBUG typedef struct debug_set_st { char level; int flag; char *name; } debug_set_t; extern debug_set_t debug_set[]; extern int debug_levels; extern pthread_mutex_t debug_lock; extern int debug_flag; #define DP(level, string, arg) { \ if (debug_flag == DEBUG_ON) { \ pthread_mutex_lock(&debug_lock); \ if (debug_levels & level) { \ printf("%s (%d): ", debug_set[ffs(level)-1].name, pthread_self()); \ printf(string, arg); \ } \ pthread_mutex_unlock(&debug_lock); } \ } #else #define DP(level, string, arg) {} #endif