Debug library

Dependents:   NetworkingCoreLib LwIPNetworking yeswecancoap lwip

Committer:
donatien
Date:
Thu May 31 15:09:00 2012 +0000
Revision:
1:bd1844de60f1
Parent:
0:3ac250c92185
Child:
3:53f6e0430d8e
Newline characters can be setup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:3ac250c92185 1 /* dbg.h */
donatien 0:3ac250c92185 2 /*
donatien 0:3ac250c92185 3 Copyright (C) 2012 ARM Limited.
donatien 0:3ac250c92185 4
donatien 0:3ac250c92185 5 Permission is hereby granted, free of charge, to any person obtaining a copy of
donatien 0:3ac250c92185 6 this software and associated documentation files (the "Software"), to deal in
donatien 0:3ac250c92185 7 the Software without restriction, including without limitation the rights to
donatien 0:3ac250c92185 8 use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
donatien 0:3ac250c92185 9 of the Software, and to permit persons to whom the Software is furnished to do
donatien 0:3ac250c92185 10 so, subject to the following conditions:
donatien 0:3ac250c92185 11
donatien 0:3ac250c92185 12 The above copyright notice and this permission notice shall be included in all
donatien 0:3ac250c92185 13 copies or substantial portions of the Software.
donatien 0:3ac250c92185 14
donatien 0:3ac250c92185 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
donatien 0:3ac250c92185 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
donatien 0:3ac250c92185 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
donatien 0:3ac250c92185 18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
donatien 0:3ac250c92185 19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
donatien 0:3ac250c92185 20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
donatien 0:3ac250c92185 21 SOFTWARE.
donatien 0:3ac250c92185 22 */
donatien 0:3ac250c92185 23
donatien 0:3ac250c92185 24 #ifndef DBG_H_
donatien 0:3ac250c92185 25 #define DBG_H_
donatien 0:3ac250c92185 26
donatien 0:3ac250c92185 27 #ifdef __cplusplus
donatien 0:3ac250c92185 28 extern "C" {
donatien 0:3ac250c92185 29 #endif
donatien 0:3ac250c92185 30
donatien 0:3ac250c92185 31
donatien 0:3ac250c92185 32 void debug_init(void);
donatien 0:3ac250c92185 33 void debug(int level, const char* module, int line, const char* fmt, ...);
donatien 1:bd1844de60f1 34 void debug_set_newline(const char* newline);
donatien 0:3ac250c92185 35 void debug_error(const char* module, int line, int ret);
donatien 1:bd1844de60f1 36 void debug_exact(const char* fmt, ...);
donatien 0:3ac250c92185 37
donatien 0:3ac250c92185 38 #define DBG_INIT() do{ debug_init(); }while(0)
donatien 0:3ac250c92185 39
donatien 1:bd1844de60f1 40 #define DBG_SET_NEWLINE( x ) do{ debug_set_newline(x); }while(0)
donatien 1:bd1844de60f1 41
donatien 0:3ac250c92185 42 #if __DEBUG__ > 0
donatien 0:3ac250c92185 43 #ifndef __MODULE__
donatien 0:3ac250c92185 44 #error "__MODULE__ must be defined"
donatien 0:3ac250c92185 45 #endif
donatien 0:3ac250c92185 46 #endif
donatien 0:3ac250c92185 47
donatien 0:3ac250c92185 48 #if __DEBUG__ >= 1
donatien 0:3ac250c92185 49 #define ERR(...) do{ debug(1, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 0:3ac250c92185 50 #else
donatien 0:3ac250c92185 51 #define ERR(...) do{ }while(0)
donatien 0:3ac250c92185 52 #endif
donatien 0:3ac250c92185 53
donatien 0:3ac250c92185 54 #if __DEBUG__ >= 2
donatien 0:3ac250c92185 55 #define WARN(...) do{ debug(2, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 0:3ac250c92185 56 #else
donatien 0:3ac250c92185 57 #define WARN(...) do{ }while(0)
donatien 0:3ac250c92185 58 #endif
donatien 0:3ac250c92185 59
donatien 0:3ac250c92185 60 #if __DEBUG__ >= 3
donatien 0:3ac250c92185 61 #define INFO(...) do{ debug(3, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 0:3ac250c92185 62 #define CHECK(ret) do{ if(ret){ debug_error(__MODULE__, __LINE__, ret); } }while(0)
donatien 0:3ac250c92185 63 #else
donatien 0:3ac250c92185 64 #define INFO(...) do{ }while(0)
donatien 0:3ac250c92185 65 #define CHECK(ret) do{ }while(0)
donatien 0:3ac250c92185 66 #endif
donatien 0:3ac250c92185 67
donatien 0:3ac250c92185 68 #if __DEBUG__ >= 4
donatien 0:3ac250c92185 69 #define DBG(...) do{ debug(4, __MODULE__, __LINE__, __VA_ARGS__); }while(0)
donatien 1:bd1844de60f1 70 #define DBGX(...) do{ debug_exact(__VA_ARGS__); }while(0)
donatien 0:3ac250c92185 71 #else
donatien 0:3ac250c92185 72 #define DBG(...) do{ }while(0)
donatien 1:bd1844de60f1 73 #define DBGX(...) do{ }while(0)
donatien 0:3ac250c92185 74 #endif
donatien 0:3ac250c92185 75
donatien 0:3ac250c92185 76 #ifdef __cplusplus
donatien 0:3ac250c92185 77 }
donatien 0:3ac250c92185 78 #endif
donatien 0:3ac250c92185 79
donatien 0:3ac250c92185 80 #endif /* DBG_H_ */