2019-05-27 09:55:05 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2005-04-17 02:20:36 +04:00
/*
2005-05-05 00:29:35 +04:00
* Copyright ( C ) International Business Machines Corp . , 2000 - 2002
* Portions Copyright ( C ) Christoph Hellwig , 2001 - 2002
2005-04-17 02:20:36 +04:00
*/
# ifndef _H_JFS_DEBUG
# define _H_JFS_DEBUG
/*
* jfs_debug . h
*
* global debug message , data structure / macro definitions
* under control of CONFIG_JFS_DEBUG , CONFIG_JFS_STATISTICS ;
*/
/*
* Create / proc / fs / jfs if procfs is enabled andeither
* CONFIG_JFS_DEBUG or CONFIG_JFS_STATISTICS is defined
*/
# if defined(CONFIG_PROC_FS) && (defined(CONFIG_JFS_DEBUG) || defined(CONFIG_JFS_STATISTICS))
2005-05-05 00:29:35 +04:00
# define PROC_FS_JFS
extern void jfs_proc_init ( void ) ;
extern void jfs_proc_clean ( void ) ;
2005-04-17 02:20:36 +04:00
# endif
/*
* assert with traditional printf / panic
*/
# define assert(p) do { \
if ( ! ( p ) ) { \
printk ( KERN_CRIT " BUG at %s:%d assert(%s) \n " , \
__FILE__ , __LINE__ , # p ) ; \
BUG ( ) ; \
} \
} while ( 0 )
/*
* debug ON
* - - - - - - - -
*/
# ifdef CONFIG_JFS_DEBUG
# define ASSERT(p) assert(p)
/* printk verbosity */
# define JFS_LOGLEVEL_ERR 1
# define JFS_LOGLEVEL_WARN 2
# define JFS_LOGLEVEL_DEBUG 3
# define JFS_LOGLEVEL_INFO 4
extern int jfsloglevel ;
2018-04-11 17:51:18 +03:00
int jfs_txanchor_proc_show ( struct seq_file * m , void * v ) ;
2005-04-17 02:20:36 +04:00
/* information message: e.g., configuration, major event */
# define jfs_info(fmt, arg...) do { \
if ( jfsloglevel > = JFS_LOGLEVEL_INFO ) \
printk ( KERN_INFO fmt " \n " , # # arg ) ; \
} while ( 0 )
/* debug message: ad hoc */
# define jfs_debug(fmt, arg...) do { \
if ( jfsloglevel > = JFS_LOGLEVEL_DEBUG ) \
printk ( KERN_DEBUG fmt " \n " , # # arg ) ; \
} while ( 0 )
/* warn message: */
# define jfs_warn(fmt, arg...) do { \
if ( jfsloglevel > = JFS_LOGLEVEL_WARN ) \
printk ( KERN_WARNING fmt " \n " , # # arg ) ; \
} while ( 0 )
/* error event message: e.g., i/o error */
# define jfs_err(fmt, arg...) do { \
if ( jfsloglevel > = JFS_LOGLEVEL_ERR ) \
printk ( KERN_ERR fmt " \n " , # # arg ) ; \
} while ( 0 )
/*
* debug OFF
* - - - - - - - - -
*/
# else /* CONFIG_JFS_DEBUG */
# define ASSERT(p) do {} while (0)
# define jfs_info(fmt, arg...) do {} while (0)
# define jfs_debug(fmt, arg...) do {} while (0)
# define jfs_warn(fmt, arg...) do {} while (0)
# define jfs_err(fmt, arg...) do {} while (0)
# endif /* CONFIG_JFS_DEBUG */
/*
* statistics
* - - - - - - - - - -
*/
# ifdef CONFIG_JFS_STATISTICS
2018-04-11 17:51:18 +03:00
int jfs_lmstats_proc_show ( struct seq_file * m , void * v ) ;
int jfs_txstats_proc_show ( struct seq_file * m , void * v ) ;
int jfs_mpstat_proc_show ( struct seq_file * m , void * v ) ;
int jfs_xtstat_proc_show ( struct seq_file * m , void * v ) ;
2005-05-05 00:29:35 +04:00
2005-04-17 02:20:36 +04:00
# define INCREMENT(x) ((x)++)
# define DECREMENT(x) ((x)--)
# define HIGHWATERMARK(x,y) ((x) = max((x), (y)))
# else
# define INCREMENT(x)
# define DECREMENT(x)
# define HIGHWATERMARK(x,y)
# endif /* CONFIG_JFS_STATISTICS */
# endif /* _H_JFS_DEBUG */