32 #if !defined(__RELFILE__)
33 #define __RELFILE__ __FILE__
122 #define DISABLED_LEVEL 0x0
123 #define ERR_LEVEL 0x1
124 #define FIXME_LEVEL 0x2
125 #define WARN_LEVEL 0x4
126 #define TRACE_LEVEL 0x8
128 #define MAX_LEVEL ERR_LEVEL | FIXME_LEVEL | WARN_LEVEL | TRACE_LEVEL
130 #define DBG_GET_PPI ((PPROCESSINFO)PsGetCurrentProcessWin32Process())
131 #define DBG_DEFAULT_CHANNEL(x) static int DbgDefaultChannel = DbgCh##x;
133 #define DBG_ENABLE_CHANNEL(ppi,ch,level) ((ppi)->DbgChannelLevel[ch] |= level)
134 #define DBG_DISABLE_CHANNEL(ppi,ch,level) ((ppi)->DbgChannelLevel[ch] &= ~level)
135 #define DBG_IS_CHANNEL_ENABLED(ppi,ch,level) (((ppi)->DbgChannelLevel[ch] & level) == level)
137 #define DBG_PRINT(ppi,ch,level,fmt, ...) \
139 if ((level == ERR_LEVEL) || (ppi && DBG_IS_CHANNEL_ENABLED(ppi,ch,level))) \
140 DbgPrint("(%s:%d) " fmt, __RELFILE__, __LINE__, ##__VA_ARGS__); \
143 #define ERR(fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgDefaultChannel, ERR_LEVEL,"err: " fmt, ##__VA_ARGS__)
144 #define FIXME(fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgDefaultChannel, FIXME_LEVEL,"fixme: " fmt, ##__VA_ARGS__)
145 #define WARN(fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgDefaultChannel, WARN_LEVEL,"warn: " fmt, ##__VA_ARGS__)
146 #define TRACE(fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgDefaultChannel, TRACE_LEVEL,"trace: " fmt, ##__VA_ARGS__)
148 #define ERR_CH(ch,fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgCh##ch, ERR_LEVEL, "err: " fmt, ##__VA_ARGS__)
149 #define FIXME_CH(ch,fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgCh##ch, FIXME_LEVEL, "fixme: " fmt, ##__VA_ARGS__)
150 #define WARN_CH(ch,fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgCh##ch, WARN_LEVEL, "warn: " fmt, ##__VA_ARGS__)
151 #define TRACE_CH(ch,fmt, ...) DBG_PRINT(DBG_GET_PPI, DbgCh##ch, TRACE_LEVEL, "trace: " fmt, ##__VA_ARGS__)
153 #define ERR_PPI(ppi,ch,fmt, ...) DBG_PRINT(ppi, DbgCh##ch, ERR_LEVEL,"err: " fmt, ##__VA_ARGS__)
154 #define FIXME_PPI(ppi,ch,fmt, ...) DBG_PRINT(ppi, DbgCh##ch, FIXME_LEVEL,"fixme: " fmt, ##__VA_ARGS__)
155 #define WARN_PPI(ppi,ch,fmt, ...) DBG_PRINT(ppi, DbgCh##ch, WARN_LEVEL,"warn: " fmt, ##__VA_ARGS__)
156 #define TRACE_PPI(ppi,ch,fmt, ...) DBG_PRINT(ppi, DbgCh##ch, TRACE_LEVEL,"trace: " fmt, ##__VA_ARGS__)
158 #define STUB DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__RELFILE__,__LINE__);
162 #define DBG_DEFAULT_CHANNEL(x)
164 #define DBG_ENABLE_CHANNEL(ppi,ch,level)
165 #define DBG_DISABLE_CHANNEL(ppi,ch,level)
166 #define DBG_IS_CHANNEL_ENABLED(ppi,ch,level)
168 #define DBG_PRINT(ppi,ch,level)
170 #define ERR(fmt, ...)
171 #define FIXME(fmt, ...)
172 #define WARN(fmt, ...)
173 #define TRACE(fmt, ...)
175 #define ERR_CH(ch,fmt, ...)
176 #define FIXME_CH(ch,fmt, ...)
177 #define WARN_CH(ch,fmt, ...)
178 #define TRACE_CH(ch,fmt, ...)
180 #define ERR_PPI(ppi,ch,fmt, ...)
181 #define FIXME_PPI(ppi,ch,fmt, ...)
182 #define WARN_PPI(ppi,ch,fmt, ...)
183 #define TRACE_PPI(ppi,ch,fmt, ...)
BOOL DbgInitDebugChannels()