diff options
Diffstat (limited to 'common/debug.h')
| -rw-r--r-- | common/debug.h | 112 |
1 files changed, 84 insertions, 28 deletions
diff --git a/common/debug.h b/common/debug.h index 8ca2569a4..26472c8fa 100644 --- a/common/debug.h +++ b/common/debug.h | |||
| @@ -19,44 +19,100 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 19 | #define DEBUG_H 1 | 19 | #define DEBUG_H 1 |
| 20 | 20 | ||
| 21 | #include "print.h" | 21 | #include "print.h" |
| 22 | #include "debug_config.h" | ||
| 23 | 22 | ||
| 24 | 23 | ||
| 24 | /* | ||
| 25 | * Debug output control | ||
| 26 | */ | ||
| 27 | #ifdef __cplusplus | ||
| 28 | extern "C" { | ||
| 29 | #endif | ||
| 30 | |||
| 31 | typedef union { | ||
| 32 | uint8_t raw; | ||
| 33 | struct { | ||
| 34 | bool enable:1; | ||
| 35 | bool matrix:1; | ||
| 36 | bool keyboard:1; | ||
| 37 | bool mouse:1; | ||
| 38 | uint8_t reserved:4; | ||
| 39 | }; | ||
| 40 | } debug_config_t; | ||
| 41 | |||
| 42 | extern debug_config_t debug_config; | ||
| 43 | debug_config_t debug_config __attribute__ ((weak)) = {}; | ||
| 44 | |||
| 45 | #ifdef __cplusplus | ||
| 46 | } | ||
| 47 | #endif | ||
| 48 | |||
| 49 | #define debug_enable (debug_config.enable) | ||
| 50 | #define debug_matrix (debug_config.matrix) | ||
| 51 | #define debug_keyboard (debug_config.keyboard) | ||
| 52 | #define debug_mouse (debug_config.mouse) | ||
| 53 | |||
| 54 | |||
| 55 | |||
| 56 | /* | ||
| 57 | * Debug print utils | ||
| 58 | */ | ||
| 25 | #ifndef NO_DEBUG | 59 | #ifndef NO_DEBUG |
| 26 | 60 | ||
| 27 | #define dprint(s) do { if (debug_enable) print(s); } while (0) | 61 | #define dprint(s) do { if (debug_enable) print(s); } while (0) |
| 28 | #define dprintln(s) do { if (debug_enable) println(s); } while (0) | 62 | #define dprintln(s) do { if (debug_enable) println(s); } while (0) |
| 29 | #define dprintf(fmt, ...) do { if (debug_enable) xprintf(fmt, ##__VA_ARGS__); } while (0) | 63 | #define dprintf(fmt, ...) do { if (debug_enable) xprintf(fmt, ##__VA_ARGS__); } while (0) |
| 30 | #define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s)) | 64 | #define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s)) |
| 31 | 65 | ||
| 32 | /* DO NOT USE these anymore */ | 66 | /* Deprecated. DO NOT USE these anymore, use dprintf instead. */ |
| 33 | #define debug(s) do { if (debug_enable) print(s); } while (0) | 67 | #define debug(s) do { if (debug_enable) print(s); } while (0) |
| 34 | #define debugln(s) do { if (debug_enable) println(s); } while (0) | 68 | #define debugln(s) do { if (debug_enable) println(s); } while (0) |
| 35 | #define debug_S(s) do { if (debug_enable) print_S(s); } while (0) | 69 | #define debug_msg(s) do { \ |
| 36 | #define debug_P(s) do { if (debug_enable) print_P(s); } while (0) | ||
| 37 | #define debug_msg(s) do { \ | ||
| 38 | if (debug_enable) { \ | 70 | if (debug_enable) { \ |
| 39 | print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \ | 71 | print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \ |
| 40 | } \ | 72 | } \ |
| 41 | } while (0) | 73 | } while (0) |
| 42 | #define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0) | 74 | #define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0) |
| 43 | #define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0) | 75 | #define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0) |
| 44 | #define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0) | 76 | #define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0) |
| 45 | #define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0) | 77 | #define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0) |
| 46 | #define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0) | 78 | #define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0) |
| 47 | #define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0) | 79 | #define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0) |
| 48 | #define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0) | 80 | #define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0) |
| 49 | #define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0) | 81 | #define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0) |
| 50 | #define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0) | 82 | #define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0) |
| 51 | #define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0) | 83 | #define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0) |
| 52 | #define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0) | 84 | #define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0) |
| 53 | #define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0) | 85 | #define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0) |
| 54 | #define debug_hex(data) debug_hex8(data) | 86 | #define debug_hex(data) debug_hex8(data) |
| 55 | #define debug_bin(data) debug_bin8(data) | 87 | #define debug_bin(data) debug_bin8(data) |
| 56 | #define debug_bin_reverse(data) debug_bin8(data) | 88 | #define debug_bin_reverse(data) debug_bin8(data) |
| 57 | 89 | ||
| 58 | #else | 90 | #else |
| 59 | #include "nodebug.h" | 91 | |
| 92 | /* NO_DEBUG */ | ||
| 93 | #define dprint(s) | ||
| 94 | #define dprintln(s) | ||
| 95 | #define dprintf(fmt, ...) | ||
| 96 | #define dmsg(s) | ||
| 97 | #define debug(s) | ||
| 98 | #define debugln(s) | ||
| 99 | #define debug_msg(s) | ||
| 100 | #define debug_dec(data) | ||
| 101 | #define debug_decs(data) | ||
| 102 | #define debug_hex4(data) | ||
| 103 | #define debug_hex8(data) | ||
| 104 | #define debug_hex16(data) | ||
| 105 | #define debug_hex32(data) | ||
| 106 | #define debug_bin8(data) | ||
| 107 | #define debug_bin16(data) | ||
| 108 | #define debug_bin32(data) | ||
| 109 | #define debug_bin_reverse8(data) | ||
| 110 | #define debug_bin_reverse16(data) | ||
| 111 | #define debug_bin_reverse32(data) | ||
| 112 | #define debug_hex(data) | ||
| 113 | #define debug_bin(data) | ||
| 114 | #define debug_bin_reverse(data) | ||
| 115 | |||
| 60 | #endif | 116 | #endif |
| 61 | 117 | ||
| 62 | #endif | 118 | #endif |
