xref: /openbmc/linux/fs/jfs/jfs_debug.h (revision 1a59d1b8)
11a59d1b8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds /*
31868f4aaSDave Kleikamp  *   Copyright (C) International Business Machines Corp., 2000-2002
41868f4aaSDave Kleikamp  *   Portions Copyright (C) Christoph Hellwig, 2001-2002
51da177e4SLinus Torvalds  */
61da177e4SLinus Torvalds #ifndef _H_JFS_DEBUG
71da177e4SLinus Torvalds #define _H_JFS_DEBUG
81da177e4SLinus Torvalds 
91da177e4SLinus Torvalds /*
101da177e4SLinus Torvalds  *	jfs_debug.h
111da177e4SLinus Torvalds  *
121da177e4SLinus Torvalds  * global debug message, data structure/macro definitions
131da177e4SLinus Torvalds  * under control of CONFIG_JFS_DEBUG, CONFIG_JFS_STATISTICS;
141da177e4SLinus Torvalds  */
151da177e4SLinus Torvalds 
161da177e4SLinus Torvalds /*
171da177e4SLinus Torvalds  * Create /proc/fs/jfs if procfs is enabled andeither
181da177e4SLinus Torvalds  * CONFIG_JFS_DEBUG or CONFIG_JFS_STATISTICS is defined
191da177e4SLinus Torvalds  */
201da177e4SLinus Torvalds #if defined(CONFIG_PROC_FS) && (defined(CONFIG_JFS_DEBUG) || defined(CONFIG_JFS_STATISTICS))
211da177e4SLinus Torvalds #define PROC_FS_JFS
221868f4aaSDave Kleikamp extern void jfs_proc_init(void);
231868f4aaSDave Kleikamp extern void jfs_proc_clean(void);
241da177e4SLinus Torvalds #endif
251da177e4SLinus Torvalds 
261da177e4SLinus Torvalds /*
271da177e4SLinus Torvalds  *	assert with traditional printf/panic
281da177e4SLinus Torvalds  */
291da177e4SLinus Torvalds #define assert(p) do {	\
301da177e4SLinus Torvalds 	if (!(p)) {	\
311da177e4SLinus Torvalds 		printk(KERN_CRIT "BUG at %s:%d assert(%s)\n",	\
321da177e4SLinus Torvalds 		       __FILE__, __LINE__, #p);			\
331da177e4SLinus Torvalds 		BUG();	\
341da177e4SLinus Torvalds 	}		\
351da177e4SLinus Torvalds } while (0)
361da177e4SLinus Torvalds 
371da177e4SLinus Torvalds /*
381da177e4SLinus Torvalds  *	debug ON
391da177e4SLinus Torvalds  *	--------
401da177e4SLinus Torvalds  */
411da177e4SLinus Torvalds #ifdef CONFIG_JFS_DEBUG
421da177e4SLinus Torvalds #define ASSERT(p) assert(p)
431da177e4SLinus Torvalds 
441da177e4SLinus Torvalds /* printk verbosity */
451da177e4SLinus Torvalds #define JFS_LOGLEVEL_ERR 1
461da177e4SLinus Torvalds #define JFS_LOGLEVEL_WARN 2
471da177e4SLinus Torvalds #define JFS_LOGLEVEL_DEBUG 3
481da177e4SLinus Torvalds #define JFS_LOGLEVEL_INFO 4
491da177e4SLinus Torvalds 
501da177e4SLinus Torvalds extern int jfsloglevel;
511da177e4SLinus Torvalds 
5207a3b8edSChristoph Hellwig int jfs_txanchor_proc_show(struct seq_file *m, void *v);
531da177e4SLinus Torvalds 
541da177e4SLinus Torvalds /* information message: e.g., configuration, major event */
551da177e4SLinus Torvalds #define jfs_info(fmt, arg...) do {			\
561da177e4SLinus Torvalds 	if (jfsloglevel >= JFS_LOGLEVEL_INFO)		\
571da177e4SLinus Torvalds 		printk(KERN_INFO fmt "\n", ## arg);	\
581da177e4SLinus Torvalds } while (0)
591da177e4SLinus Torvalds 
601da177e4SLinus Torvalds /* debug message: ad hoc */
611da177e4SLinus Torvalds #define jfs_debug(fmt, arg...) do {			\
621da177e4SLinus Torvalds 	if (jfsloglevel >= JFS_LOGLEVEL_DEBUG)		\
631da177e4SLinus Torvalds 		printk(KERN_DEBUG fmt "\n", ## arg);	\
641da177e4SLinus Torvalds } while (0)
651da177e4SLinus Torvalds 
661da177e4SLinus Torvalds /* warn message: */
671da177e4SLinus Torvalds #define jfs_warn(fmt, arg...) do {			\
681da177e4SLinus Torvalds 	if (jfsloglevel >= JFS_LOGLEVEL_WARN)		\
691da177e4SLinus Torvalds 		printk(KERN_WARNING fmt "\n", ## arg);	\
701da177e4SLinus Torvalds } while (0)
711da177e4SLinus Torvalds 
721da177e4SLinus Torvalds /* error event message: e.g., i/o error */
731da177e4SLinus Torvalds #define jfs_err(fmt, arg...) do {			\
741da177e4SLinus Torvalds 	if (jfsloglevel >= JFS_LOGLEVEL_ERR)		\
751da177e4SLinus Torvalds 		printk(KERN_ERR fmt "\n", ## arg);	\
761da177e4SLinus Torvalds } while (0)
771da177e4SLinus Torvalds 
781da177e4SLinus Torvalds /*
791da177e4SLinus Torvalds  *	debug OFF
801da177e4SLinus Torvalds  *	---------
811da177e4SLinus Torvalds  */
821da177e4SLinus Torvalds #else				/* CONFIG_JFS_DEBUG */
831da177e4SLinus Torvalds #define ASSERT(p) do {} while (0)
841da177e4SLinus Torvalds #define jfs_info(fmt, arg...) do {} while (0)
851da177e4SLinus Torvalds #define jfs_debug(fmt, arg...) do {} while (0)
861da177e4SLinus Torvalds #define jfs_warn(fmt, arg...) do {} while (0)
871da177e4SLinus Torvalds #define jfs_err(fmt, arg...) do {} while (0)
881da177e4SLinus Torvalds #endif				/* CONFIG_JFS_DEBUG */
891da177e4SLinus Torvalds 
901da177e4SLinus Torvalds /*
911da177e4SLinus Torvalds  *	statistics
921da177e4SLinus Torvalds  *	----------
931da177e4SLinus Torvalds  */
941da177e4SLinus Torvalds #ifdef	CONFIG_JFS_STATISTICS
9507a3b8edSChristoph Hellwig int jfs_lmstats_proc_show(struct seq_file *m, void *v);
9607a3b8edSChristoph Hellwig int jfs_txstats_proc_show(struct seq_file *m, void *v);
9707a3b8edSChristoph Hellwig int jfs_mpstat_proc_show(struct seq_file *m, void *v);
9807a3b8edSChristoph Hellwig int jfs_xtstat_proc_show(struct seq_file *m, void *v);
991868f4aaSDave Kleikamp 
1001da177e4SLinus Torvalds #define	INCREMENT(x)		((x)++)
1011da177e4SLinus Torvalds #define	DECREMENT(x)		((x)--)
1021da177e4SLinus Torvalds #define	HIGHWATERMARK(x,y)	((x) = max((x), (y)))
1031da177e4SLinus Torvalds #else
1041da177e4SLinus Torvalds #define	INCREMENT(x)
1051da177e4SLinus Torvalds #define	DECREMENT(x)
1061da177e4SLinus Torvalds #define	HIGHWATERMARK(x,y)
1071da177e4SLinus Torvalds #endif				/* CONFIG_JFS_STATISTICS */
1081da177e4SLinus Torvalds 
1091da177e4SLinus Torvalds #endif				/* _H_JFS_DEBUG */
110