2005-04-17 02:20:36 +04:00
/*
*
* Copyright ( c ) International Business Machines Corp . , 2000 , 2002
* Modified by Steve French ( sfrench @ us . ibm . com )
*
* 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 . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*
*/
# ifndef _H_CIFS_DEBUG
# define _H_CIFS_DEBUG
void cifs_dump_mem ( char * label , void * data , int length ) ;
2018-04-22 23:45:53 +03:00
void cifs_dump_detail ( void * buf , struct TCP_Server_Info * ptcp_info ) ;
2006-06-01 02:40:51 +04:00
void cifs_dump_mids ( struct TCP_Server_Info * ) ;
2016-03-18 00:22:54 +03:00
extern bool traceSMB ; /* flag which enables the function below */
2012-03-23 22:28:02 +04:00
void dump_smb ( void * , int ) ;
2005-10-12 06:58:06 +04:00
# define CIFS_INFO 0x01
2010-10-07 22:46:32 +04:00
# define CIFS_RC 0x02
2005-10-12 06:58:06 +04:00
# define CIFS_TIMER 0x04
2005-04-17 02:20:36 +04:00
2013-05-05 07:12:25 +04:00
# define VFS 1
# define FYI 2
2012-12-06 00:42:47 +04:00
extern int cifsFYI ;
2013-05-05 07:12:25 +04:00
# ifdef CONFIG_CIFS_DEBUG2
# define NOISY 4
# else
# define NOISY 0
# endif
2018-04-10 18:01:13 +03:00
# define ONCE 8
2012-12-06 00:42:47 +04:00
2005-04-17 02:20:36 +04:00
/*
* debug ON
* - - - - - - - -
*/
2012-12-06 00:42:58 +04:00
# ifdef CONFIG_CIFS_DEBUG
2005-04-17 02:20:36 +04:00
2018-10-07 21:52:18 +03:00
/*
* When adding tracepoints and debug messages we have various choices .
* Some considerations :
*
* Use cifs_dbg ( VFS , . . . ) for things we always want logged , and the user to see
* cifs_info ( . . . ) slightly less important , admin can filter via loglevel > 6
* cifs_dbg ( FYI , . . . ) minor debugging messages , off by default
* trace_smb3_ * ftrace functions are preferred for complex debug messages
* intended for developers or experienced admins , off by default
*/
2018-10-07 18:21:25 +03:00
/* Information level messages, minor events */
# define cifs_info_func(ratefunc, fmt, ...) \
do { \
pr_info_ # # ratefunc ( " CIFS: " fmt , # # __VA_ARGS__ ) ; \
} while ( 0 )
# define cifs_info(fmt, ...) \
do { \
cifs_info_func ( ratelimited , fmt , # # __VA_ARGS__ ) ; \
} while ( 0 )
2013-05-05 07:12:25 +04:00
/* information message: e.g., configuration, major event */
2018-04-10 18:01:13 +03:00
# define cifs_dbg_func(ratefunc, type, fmt, ...) \
do { \
if ( ( type ) & FYI & & cifsFYI & CIFS_INFO ) { \
pr_debug_ # # ratefunc ( " %s: " \
fmt , __FILE__ , # # __VA_ARGS__ ) ; \
} else if ( ( type ) & VFS ) { \
2018-04-19 11:44:20 +03:00
pr_err_ # # ratefunc ( " CIFS VFS: " \
2018-04-10 18:01:13 +03:00
fmt , # # __VA_ARGS__ ) ; \
} else if ( ( type ) & NOISY & & ( NOISY ! = 0 ) ) { \
pr_debug_ # # ratefunc ( fmt , # # __VA_ARGS__ ) ; \
} \
} while ( 0 )
# define cifs_dbg(type, fmt, ...) \
do { \
if ( ( type ) & ONCE ) \
cifs_dbg_func ( once , \
type , fmt , # # __VA_ARGS__ ) ; \
else \
cifs_dbg_func ( ratelimited , \
type , fmt , # # __VA_ARGS__ ) ; \
2010-04-21 07:50:45 +04:00
} while ( 0 )
2005-04-17 02:20:36 +04:00
/*
* debug OFF
* - - - - - - - - -
*/
# else /* _CIFS_DEBUG */
2013-05-05 07:12:25 +04:00
# define cifs_dbg(type, fmt, ...) \
2012-12-06 00:42:47 +04:00
do { \
if ( 0 ) \
2014-08-27 17:49:44 +04:00
pr_debug ( fmt , # # __VA_ARGS__ ) ; \
2012-12-06 00:42:47 +04:00
} while ( 0 )
2018-10-07 18:21:25 +03:00
# define cifs_info(fmt, ...) \
do { \
pr_info ( " CIFS: " fmt , # # __VA_ARGS__ ) ; \
} while ( 0 )
2013-05-05 07:12:25 +04:00
# endif
2005-04-17 02:20:36 +04:00
# endif /* _H_CIFS_DEBUG */