jfs_debug.h (2727B)
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 */