]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blob - include/linux/sunrpc/debug.h
Merge branch 'i2c-mux/for-current' of https://github.com/peda-r/i2c-mux into i2c...
[mirror_ubuntu-eoan-kernel.git] / include / linux / sunrpc / debug.h
1 /*
2 * linux/include/linux/sunrpc/debug.h
3 *
4 * Debugging support for sunrpc module
5 *
6 * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
7 */
8 #ifndef _LINUX_SUNRPC_DEBUG_H_
9 #define _LINUX_SUNRPC_DEBUG_H_
10
11 #include <uapi/linux/sunrpc/debug.h>
12
13 /*
14 * Debugging macros etc
15 */
16 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
17 extern unsigned int rpc_debug;
18 extern unsigned int nfs_debug;
19 extern unsigned int nfsd_debug;
20 extern unsigned int nlm_debug;
21 #endif
22
23 #define dprintk(fmt, ...) \
24 dfprintk(FACILITY, fmt, ##__VA_ARGS__)
25 #define dprintk_cont(fmt, ...) \
26 dfprintk_cont(FACILITY, fmt, ##__VA_ARGS__)
27 #define dprintk_rcu(fmt, ...) \
28 dfprintk_rcu(FACILITY, fmt, ##__VA_ARGS__)
29 #define dprintk_rcu_cont(fmt, ...) \
30 dfprintk_rcu_cont(FACILITY, fmt, ##__VA_ARGS__)
31
32 #undef ifdebug
33 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
34 # define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac))
35
36 # define dfprintk(fac, fmt, ...) \
37 do { \
38 ifdebug(fac) \
39 printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
40 } while (0)
41
42 # define dfprintk_cont(fac, fmt, ...) \
43 do { \
44 ifdebug(fac) \
45 printk(KERN_CONT fmt, ##__VA_ARGS__); \
46 } while (0)
47
48 # define dfprintk_rcu(fac, fmt, ...) \
49 do { \
50 ifdebug(fac) { \
51 rcu_read_lock(); \
52 printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
53 rcu_read_unlock(); \
54 } \
55 } while (0)
56
57 # define dfprintk_rcu_cont(fac, fmt, ...) \
58 do { \
59 ifdebug(fac) { \
60 rcu_read_lock(); \
61 printk(KERN_CONT fmt, ##__VA_ARGS__); \
62 rcu_read_unlock(); \
63 } \
64 } while (0)
65
66 # define RPC_IFDEBUG(x) x
67 #else
68 # define ifdebug(fac) if (0)
69 # define dfprintk(fac, fmt, ...) do {} while (0)
70 # define dfprintk_cont(fac, fmt, ...) do {} while (0)
71 # define dfprintk_rcu(fac, fmt, ...) do {} while (0)
72 # define RPC_IFDEBUG(x)
73 #endif
74
75 /*
76 * Sysctl interface for RPC debugging
77 */
78
79 struct rpc_clnt;
80 struct rpc_xprt;
81
82 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
83 void rpc_register_sysctl(void);
84 void rpc_unregister_sysctl(void);
85 void sunrpc_debugfs_init(void);
86 void sunrpc_debugfs_exit(void);
87 void rpc_clnt_debugfs_register(struct rpc_clnt *);
88 void rpc_clnt_debugfs_unregister(struct rpc_clnt *);
89 void rpc_xprt_debugfs_register(struct rpc_xprt *);
90 void rpc_xprt_debugfs_unregister(struct rpc_xprt *);
91 #else
92 static inline void
93 sunrpc_debugfs_init(void)
94 {
95 return;
96 }
97
98 static inline void
99 sunrpc_debugfs_exit(void)
100 {
101 return;
102 }
103
104 static inline void
105 rpc_clnt_debugfs_register(struct rpc_clnt *clnt)
106 {
107 return;
108 }
109
110 static inline void
111 rpc_clnt_debugfs_unregister(struct rpc_clnt *clnt)
112 {
113 return;
114 }
115
116 static inline void
117 rpc_xprt_debugfs_register(struct rpc_xprt *xprt)
118 {
119 return;
120 }
121
122 static inline void
123 rpc_xprt_debugfs_unregister(struct rpc_xprt *xprt)
124 {
125 return;
126 }
127 #endif
128
129 #endif /* _LINUX_SUNRPC_DEBUG_H_ */