so here it is the code to introduce seriously debugggging classes.
[samba.git] / source3 / include / debug.h
index 235fbf70c4e17f0ab6d81027d6ee06a8048757c3..9cd7c7097d659b15713fc61d1d3cfa675d642455 100644 (file)
  */
 int  Debug1( char *, ... ) PRINTF_ATTRIBUTE(1,2);
 BOOL dbgtext( char *, ... ) PRINTF_ATTRIBUTE(1,2);
+BOOL dbghdr( int level, char *file, char *func, int line );
 
 extern XFILE *dbf;
+extern pstring debugf;
 
 /* If we have these macros, we can add additional info to the header. */
 #ifdef HAVE_FILE_MACRO
@@ -64,7 +66,7 @@ extern XFILE *dbf;
  * because some references would expand incorrectly.
  */
 #define DEBUGLEVEL *debug_level
-
+extern int DEBUGLEVEL;
 
 /*
  * Define all new debug classes here. A class is represented by an entry in
@@ -77,7 +79,6 @@ extern XFILE *dbf;
  * at the start of the file (after #include "includes.h") will default to
  * using index zero, so it will behaive just like it always has. 
  */
-#define DBGC_CLASS            0     /* override as shown above */
 #define DBGC_ALL              0     /* index equivalent to DEBUGLEVEL */
 
 #define DBGC_TDB              1
@@ -86,17 +87,18 @@ extern XFILE *dbf;
 #define DBGC_SMB              4
 #define DBGC_RPC              5
 #define DBGC_RPC_HDR          6
-#define DBGC_BDC              7
+#define DBGC_PASSDB           7
+#define DBGC_AUTH             8
+#define DBGC_BDC              9
 
-#define DBGC_LAST             8     /* MUST be last class value + 1 */
 
-extern int DEBUGLEVEL_CLASS[DBGC_LAST];
-extern BOOL DEBUGLEVEL_CLASS_ISSET[DBGC_LAST];
+/* So you can define DBGC_CLASS before including debug.h */
+#ifndef DBGC_CLASS
+#define DBGC_CLASS            0     /* override as shown above */
+#endif
 
-struct debuglevel_message {
-       int debuglevel_class[DBGC_LAST];
-       BOOL debuglevel_class_isset[DBGC_LAST];
-};
+extern int  *DEBUGLEVEL_CLASS;
+extern BOOL *DEBUGLEVEL_CLASS_ISSET;
 
 /* Debugging macros
  *
@@ -151,7 +153,7 @@ struct debuglevel_message {
 #define DEBUGLVL( level ) \
   ( ((level) <= MAX_DEBUG_LEVEL) && \
      ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))||  \
-     (!DEBUGLEVEL_CLASS[ DBGC_CLASS ] && \
+     (!DEBUGLEVEL_CLASS_ISSET[ DBGC_CLASS ] && \
       DEBUGLEVEL_CLASS[ DBGC_ALL   ] >= (level))  ) \
    && dbghdr( level, FILE_MACRO, FUNCTION_MACRO, (__LINE__) ) )