Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
debug.h
Go to the documentation of this file.
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 
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_ */