xref: /linux/fs/ntfs/debug.h (revision cdd4dc3aebeab43a72ce0bc2b5bab6f0a80b97a5)
11e9ea7e0SNamjae Jeon /* SPDX-License-Identifier: GPL-2.0-or-later */
21e9ea7e0SNamjae Jeon /*
3*40796051SNamjae Jeon  * NTFS kernel debug support.
41e9ea7e0SNamjae Jeon  *
51e9ea7e0SNamjae Jeon  * Copyright (c) 2001-2004 Anton Altaparmakov
61e9ea7e0SNamjae Jeon  */
71e9ea7e0SNamjae Jeon 
81e9ea7e0SNamjae Jeon #ifndef _LINUX_NTFS_DEBUG_H
91e9ea7e0SNamjae Jeon #define _LINUX_NTFS_DEBUG_H
101e9ea7e0SNamjae Jeon 
111e9ea7e0SNamjae Jeon #include <linux/fs.h>
121e9ea7e0SNamjae Jeon 
131e9ea7e0SNamjae Jeon #include "runlist.h"
141e9ea7e0SNamjae Jeon 
151e9ea7e0SNamjae Jeon #ifdef DEBUG
161e9ea7e0SNamjae Jeon 
171e9ea7e0SNamjae Jeon extern int debug_msgs;
181e9ea7e0SNamjae Jeon 
191e9ea7e0SNamjae Jeon extern __printf(4, 5)
201e9ea7e0SNamjae Jeon void __ntfs_debug(const char *file, int line, const char *function,
211e9ea7e0SNamjae Jeon 		  const char *format, ...);
22*40796051SNamjae Jeon /*
231e9ea7e0SNamjae Jeon  * ntfs_debug - write a debug level message to syslog
241e9ea7e0SNamjae Jeon  * @f:		a printf format string containing the message
251e9ea7e0SNamjae Jeon  * @...:	the variables to substitute into @f
261e9ea7e0SNamjae Jeon  *
271e9ea7e0SNamjae Jeon  * ntfs_debug() writes a DEBUG level message to the syslog but only if the
281e9ea7e0SNamjae Jeon  * driver was compiled with -DDEBUG. Otherwise, the call turns into a NOP.
291e9ea7e0SNamjae Jeon  */
301e9ea7e0SNamjae Jeon #define ntfs_debug(f, a...)						\
311e9ea7e0SNamjae Jeon 	__ntfs_debug(__FILE__, __LINE__, __func__, f, ##a)
321e9ea7e0SNamjae Jeon 
33*40796051SNamjae Jeon void ntfs_debug_dump_runlist(const struct runlist_element *rl);
341e9ea7e0SNamjae Jeon 
351e9ea7e0SNamjae Jeon #else	/* !DEBUG */
361e9ea7e0SNamjae Jeon 
371e9ea7e0SNamjae Jeon #define ntfs_debug(fmt, ...)						\
381e9ea7e0SNamjae Jeon do {									\
391e9ea7e0SNamjae Jeon 	if (0)								\
401e9ea7e0SNamjae Jeon 		no_printk(fmt, ##__VA_ARGS__);				\
411e9ea7e0SNamjae Jeon } while (0)
421e9ea7e0SNamjae Jeon 
43*40796051SNamjae Jeon #define ntfs_debug_dump_runlist(rl)					\
44*40796051SNamjae Jeon do {									\
45*40796051SNamjae Jeon 	if (0)								\
46*40796051SNamjae Jeon 		(void)rl;						\
47*40796051SNamjae Jeon } while (0)
481e9ea7e0SNamjae Jeon 
491e9ea7e0SNamjae Jeon #endif	/* !DEBUG */
501e9ea7e0SNamjae Jeon 
511e9ea7e0SNamjae Jeon extern  __printf(3, 4)
521e9ea7e0SNamjae Jeon void __ntfs_warning(const char *function, const struct super_block *sb,
531e9ea7e0SNamjae Jeon 		    const char *fmt, ...);
541e9ea7e0SNamjae Jeon #define ntfs_warning(sb, f, a...)	__ntfs_warning(__func__, sb, f, ##a)
551e9ea7e0SNamjae Jeon 
561e9ea7e0SNamjae Jeon extern  __printf(3, 4)
57*40796051SNamjae Jeon void __ntfs_error(const char *function, struct super_block *sb,
581e9ea7e0SNamjae Jeon 		  const char *fmt, ...);
591e9ea7e0SNamjae Jeon #define ntfs_error(sb, f, a...)		__ntfs_error(__func__, sb, f, ##a)
601e9ea7e0SNamjae Jeon 
61*40796051SNamjae Jeon void ntfs_handle_error(struct super_block *sb);
62*40796051SNamjae Jeon 
631e9ea7e0SNamjae Jeon #endif /* _LINUX_NTFS_DEBUG_H */
64