xref: /linux-6.15/include/linux/sunrpc/debug.h (revision 93f14468)
1 /*
2  * linux/include/linux/sunrpc/debug.h
3  *
4  * Debugging support for sunrpc module
5  *
6  * Copyright (C) 1996, Olaf Kirch <[email protected]>
7  */
8 #ifndef _LINUX_SUNRPC_DEBUG_H_
9 #define _LINUX_SUNRPC_DEBUG_H_
10 
11 #include <uapi/linux/sunrpc/debug.h>
12 
13 
14 /*
15  * Enable RPC debugging/profiling.
16  */
17 #ifdef CONFIG_SUNRPC_DEBUG
18 #define  RPC_DEBUG
19 #endif
20 #ifdef CONFIG_TRACEPOINTS
21 #define RPC_TRACEPOINTS
22 #endif
23 /* #define  RPC_PROFILE */
24 
25 /*
26  * Debugging macros etc
27  */
28 #ifdef RPC_DEBUG
29 extern unsigned int		rpc_debug;
30 extern unsigned int		nfs_debug;
31 extern unsigned int		nfsd_debug;
32 extern unsigned int		nlm_debug;
33 #endif
34 
35 #define dprintk(args...)	dfprintk(FACILITY, ## args)
36 #define dprintk_rcu(args...)	dfprintk_rcu(FACILITY, ## args)
37 
38 #undef ifdebug
39 #ifdef RPC_DEBUG
40 # define ifdebug(fac)		if (unlikely(rpc_debug & RPCDBG_##fac))
41 
42 # define dfprintk(fac, args...)	\
43 	do { \
44 		ifdebug(fac) \
45 			printk(KERN_DEFAULT args); \
46 	} while (0)
47 
48 # define dfprintk_rcu(fac, args...)	\
49 	do { \
50 		ifdebug(fac) { \
51 			rcu_read_lock(); \
52 			printk(KERN_DEFAULT args); \
53 			rcu_read_unlock(); \
54 		} \
55 	} while (0)
56 
57 # define RPC_IFDEBUG(x)		x
58 #else
59 # define ifdebug(fac)		if (0)
60 # define dfprintk(fac, args...)	do {} while (0)
61 # define dfprintk_rcu(fac, args...)	do {} while (0)
62 # define RPC_IFDEBUG(x)
63 #endif
64 
65 /*
66  * Sysctl interface for RPC debugging
67  */
68 #ifdef RPC_DEBUG
69 void		rpc_register_sysctl(void);
70 void		rpc_unregister_sysctl(void);
71 #endif
72 
73 #endif /* _LINUX_SUNRPC_DEBUG_H_ */
74