67 lines
1.1 KiB
C
67 lines
1.1 KiB
C
#include "std.h"
|
|
#include "lpc_incl.h"
|
|
|
|
#ifdef DEBUG_MACRO
|
|
|
|
mapping_t *debug_levels (void);
|
|
|
|
typedef struct {
|
|
char *name;
|
|
int bit;
|
|
} debug_t;
|
|
|
|
#define E(x) { #x, DBG_##x }
|
|
|
|
debug_t levels[] = {
|
|
E(call_out),
|
|
E(d_flag),
|
|
E(connections),
|
|
E(mapping),
|
|
E(sockets),
|
|
E(comp_func_tab),
|
|
E(LPC),
|
|
E(LPC_line)
|
|
};
|
|
|
|
#define NELEM(x) (sizeof(x)/sizeof(x[0]))
|
|
|
|
mapping_t *debug_levels() {
|
|
int dl = debug_level;
|
|
mapping_t *ret = allocate_mapping(10);
|
|
int i;
|
|
|
|
for (i = 0; i < NELEM(levels); i++) {
|
|
add_mapping_pair(ret, levels[i].name, dl & levels[i].bit);
|
|
dl &= ~levels[i].bit;
|
|
}
|
|
|
|
if (dl)
|
|
add_mapping_pair(ret, "unknown", dl);
|
|
|
|
return ret;
|
|
}
|
|
|
|
void debug_level_set (char * level) {
|
|
int i;
|
|
|
|
for (i = 0; i < NELEM(levels); i++) {
|
|
if (strcmp(level, levels[i].name) == 0) {
|
|
debug_level |= levels[i].bit;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
void debug_level_clear (char * level) {
|
|
int i;
|
|
|
|
for (i = 0; i < NELEM(levels); i++) {
|
|
if (strcmp(level, levels[i].name) == 0) {
|
|
debug_level &= ~levels[i].bit;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|