#ifndef __INTERNAL_DEBUG
#define __INTERNAL_DEBUG
-//#define UNIMPLEMENTED do {DbgPrint("%s at %s:%d is unimplemented, have a nice day\n",__FUNCTION__,__FILE__,__LINE__); for(;;); } while(0);
#define UNIMPLEMENTED DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__);
/* FIXME: should probably remove this later */
#endif
#endif
-/* TODO: Make the output of file/line and the debug message atomic */
+/* Print stuff only on Debug Builds*/
#ifdef DBG
-#define DPRINT1 DbgPrint("(%s:%d) ",__FILE__,__LINE__), DbgPrint
-#define CHECKPOINT1 do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
-#else
-#ifdef __GNUC__
-#define DPRINT1(args...)
-#define CHECKPOINT1
-#else
-#define DPRINT1
-#define CHECKPOINT1
-#endif /* __GNUC__ */
-#endif
+
+ /* These are always printed */
+ #define DPRINT1 DbgPrint("(%s:%d) ",__FILE__,__LINE__), DbgPrint
+ #define CHECKPOINT1 do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
+
+ /* These are printed only if NDEBUG is NOT defined */
+ #ifndef NDEBUG
+
+ #define DPRINT DbgPrint("(%s:%d) ",__FILE__,__LINE__), DbgPrint
+ #define CHECKPOINT do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
+
+ #else
+
+ #define DPRINT(...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0)
+ #define CHECKPOINT
+
+ #endif
-#ifndef NDEBUG
-#define DPRINT(...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0)
-#define CHECKPOINT do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);
-#else
-#ifdef __GNUC__
-#define DPRINT(args...)
#else
-#define DPRINT
-#endif /* __GNUC__ */
-#define CHECKPOINT
-#endif /* NDEBUG */
+
+ /* On non-debug builds, we never show these */
+ #define DPRINT1 do { if(0) { DbgPrint(__VA_ARGS__); } } while(0)
+ #define DPRINT(...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0)
+ #define CHECKPOINT1
+ #define CHECKPOINT
+#endif
/*
* FUNCTION: Assert a maximum value for the current irql