linux/fs/jfs/jfs_debug.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 *   Copyright (C) International Business Machines Corp., 2000-2002
   4 *   Portions Copyright (C) Christoph Hellwig, 2001-2002
   5 */
   6#ifndef _H_JFS_DEBUG
   7#define _H_JFS_DEBUG
   8
   9/*
  10 *      jfs_debug.h
  11 *
  12 * global debug message, data structure/macro definitions
  13 * under control of CONFIG_JFS_DEBUG, CONFIG_JFS_STATISTICS;
  14 */
  15
  16/*
  17 * Create /proc/fs/jfs if procfs is enabled andeither
  18 * CONFIG_JFS_DEBUG or CONFIG_JFS_STATISTICS is defined
  19 */
  20#if defined(CONFIG_PROC_FS) && (defined(CONFIG_JFS_DEBUG) || defined(CONFIG_JFS_STATISTICS))
  21#define PROC_FS_JFS
  22extern void jfs_proc_init(void);
  23extern void jfs_proc_clean(void);
  24#endif
  25
  26/*
  27 *      assert with traditional printf/panic
  28 */
  29#define assert(p) do {  \
  30        if (!(p)) {     \
  31                printk(KERN_CRIT "BUG at %s:%d assert(%s)\n",   \
  32                       __FILE__, __LINE__, #p);                 \
  33                BUG();  \
  34        }               \
  35} while (0)
  36
  37/*
  38 *      debug ON
  39 *      --------
  40 */
  41#ifdef CONFIG_JFS_DEBUG
  42#define ASSERT(p) assert(p)
  43
  44/* printk verbosity */
  45#define JFS_LOGLEVEL_ERR 1
  46#define JFS_LOGLEVEL_WARN 2
  47#define JFS_LOGLEVEL_DEBUG 3
  48#define JFS_LOGLEVEL_INFO 4
  49
  50extern int jfsloglevel;
  51
  52int jfs_txanchor_proc_show(struct seq_file *m, void *v);
  53
  54/* information message: e.g., configuration, major event */
  55#define jfs_info(fmt, arg...) do {                      \
  56        if (jfsloglevel >= JFS_LOGLEVEL_INFO)           \
  57                printk(KERN_INFO fmt "\n", ## arg);     \
  58} while (0)
  59
  60/* debug message: ad hoc */
  61#define jfs_debug(fmt, arg...) do {                     \
  62        if (jfsloglevel >= JFS_LOGLEVEL_DEBUG)          \
  63                printk(KERN_DEBUG fmt "\n", ## arg);    \
  64} while (0)
  65
  66/* warn message: */
  67#define jfs_warn(fmt, arg...) do {                      \
  68        if (jfsloglevel >= JFS_LOGLEVEL_WARN)           \
  69                printk(KERN_WARNING fmt "\n", ## arg);  \
  70} while (0)
  71
  72/* error event message: e.g., i/o error */
  73#define jfs_err(fmt, arg...) do {                       \
  74        if (jfsloglevel >= JFS_LOGLEVEL_ERR)            \
  75                printk(KERN_ERR fmt "\n", ## arg);      \
  76} while (0)
  77
  78/*
  79 *      debug OFF
  80 *      ---------
  81 */
  82#else                           /* CONFIG_JFS_DEBUG */
  83#define ASSERT(p) do {} while (0)
  84#define jfs_info(fmt, arg...) do {} while (0)
  85#define jfs_debug(fmt, arg...) do {} while (0)
  86#define jfs_warn(fmt, arg...) do {} while (0)
  87#define jfs_err(fmt, arg...) do {} while (0)
  88#endif                          /* CONFIG_JFS_DEBUG */
  89
  90/*
  91 *      statistics
  92 *      ----------
  93 */
  94#ifdef  CONFIG_JFS_STATISTICS
  95int jfs_lmstats_proc_show(struct seq_file *m, void *v);
  96int jfs_txstats_proc_show(struct seq_file *m, void *v);
  97int jfs_mpstat_proc_show(struct seq_file *m, void *v);
  98int jfs_xtstat_proc_show(struct seq_file *m, void *v);
  99
 100#define INCREMENT(x)            ((x)++)
 101#define DECREMENT(x)            ((x)--)
 102#define HIGHWATERMARK(x,y)      ((x) = max((x), (y)))
 103#else
 104#define INCREMENT(x)
 105#define DECREMENT(x)
 106#define HIGHWATERMARK(x,y)
 107#endif                          /* CONFIG_JFS_STATISTICS */
 108
 109#endif                          /* _H_JFS_DEBUG */
 110