mirror of
https://github.com/samba-team/samba.git
synced 2024-12-31 17:18:04 +03:00
04f7d80ac3
#included by VFS modules without bringing in too much other junk.
(This used to be commit 13a2cf80f6
)
104 lines
3.4 KiB
C
104 lines
3.4 KiB
C
/*
|
|
Unix SMB/Netbios implementation.
|
|
Version 1.9.
|
|
SMB debug stuff
|
|
Copyright (C) Andrew Tridgell 1992-1998
|
|
Copyright (C) John H Terpstra 1996-1998
|
|
Copyright (C) Luke Kenneth Casson Leighton 1996-1998
|
|
Copyright (C) Paul Ashton 1998
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#ifndef _DEBUG_H
|
|
#define _DEBUG_H
|
|
|
|
/* -------------------------------------------------------------------------- **
|
|
* Debugging code. See also debug.c
|
|
*/
|
|
|
|
/* mkproto.awk has trouble with ifdef'd function definitions (it ignores
|
|
* the #ifdef directive and will read both definitions, thus creating two
|
|
* diffferent prototype declarations), so we must do these by hand.
|
|
*/
|
|
/* I know the __attribute__ stuff is ugly, but it does ensure we get the
|
|
arguemnts to DEBUG() right. We have got them wrong too often in the
|
|
past.
|
|
*/
|
|
#ifdef HAVE_STDARG_H
|
|
int Debug1( char *, ... )
|
|
#ifdef __GNUC__
|
|
__attribute__ ((format (printf, 1, 2)))
|
|
#endif
|
|
;
|
|
BOOL dbgtext( char *, ... )
|
|
#ifdef __GNUC__
|
|
__attribute__ ((format (printf, 1, 2)))
|
|
#endif
|
|
;
|
|
#else
|
|
int Debug1();
|
|
BOOL dbgtext();
|
|
#endif
|
|
|
|
/* If we have these macros, we can add additional info to the header. */
|
|
#ifdef HAVE_FILE_MACRO
|
|
#define FILE_MACRO (__FILE__)
|
|
#else
|
|
#define FILE_MACRO ("")
|
|
#endif
|
|
|
|
#ifdef HAVE_FUNCTION_MACRO
|
|
#define FUNCTION_MACRO (__FUNCTION__)
|
|
#else
|
|
#define FUNCTION_MACRO ("")
|
|
#endif
|
|
|
|
/* Debugging macros.
|
|
* DEBUGLVL() - If level is <= the system-wide DEBUGLEVEL then generate a
|
|
* header using the default macros for file, line, and
|
|
* function name.
|
|
* Returns True if the debug level was <= DEBUGLEVEL.
|
|
* Example usage:
|
|
* if( DEBUGLVL( 2 ) )
|
|
* dbgtext( "Some text.\n" );
|
|
* DEGUG() - Good old DEBUG(). Each call to DEBUG() will generate a new
|
|
* header *unless* the previous debug output was unterminated
|
|
* (i.e., no '\n'). See debug.c:dbghdr() for more info.
|
|
* Example usage:
|
|
* DEBUG( 2, ("Some text.\n") );
|
|
* DEBUGADD() - If level <= DEBUGLEVEL, then the text is appended to the
|
|
* current message (i.e., no header).
|
|
* Usage:
|
|
* DEBUGADD( 2, ("Some additional text.\n") );
|
|
*/
|
|
#define DEBUGLVL( level ) \
|
|
( (DEBUGLEVEL >= (level)) \
|
|
&& dbghdr( level, FILE_MACRO, FUNCTION_MACRO, (__LINE__) ) )
|
|
|
|
#define DEBUG( level, body ) \
|
|
(void)( (DEBUGLEVEL >= (level)) \
|
|
&& (dbghdr( level, FILE_MACRO, FUNCTION_MACRO, (__LINE__) )) \
|
|
&& (dbgtext body) )
|
|
|
|
#define DEBUGADD( level, body ) \
|
|
(void)( (DEBUGLEVEL >= (level)) && (dbgtext body) )
|
|
|
|
/* End Debugging code section.
|
|
* -------------------------------------------------------------------------- **
|
|
*/
|
|
|
|
#endif
|