Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | ||
9 | #ifndef _LINUX_SUNRPC_DEBUG_H_ | |
10 | #define _LINUX_SUNRPC_DEBUG_H_ | |
11 | ||
1da177e4 LT |
12 | /* |
13 | * RPC debug facilities | |
14 | */ | |
15 | #define RPCDBG_XPRT 0x0001 | |
16 | #define RPCDBG_CALL 0x0002 | |
17 | #define RPCDBG_DEBUG 0x0004 | |
18 | #define RPCDBG_NFS 0x0008 | |
19 | #define RPCDBG_AUTH 0x0010 | |
a509050b | 20 | #define RPCDBG_BIND 0x0020 |
1da177e4 | 21 | #define RPCDBG_SCHED 0x0040 |
9903cd1c | 22 | #define RPCDBG_TRANS 0x0080 |
1d8206b9 | 23 | #define RPCDBG_SVCXPRT 0x0100 |
1da177e4 LT |
24 | #define RPCDBG_SVCDSP 0x0200 |
25 | #define RPCDBG_MISC 0x0400 | |
26 | #define RPCDBG_CACHE 0x0800 | |
27 | #define RPCDBG_ALL 0x7fff | |
28 | ||
29 | #ifdef __KERNEL__ | |
1af04227 | 30 | |
1af04227 DW |
31 | /* |
32 | * Enable RPC debugging/profiling. | |
33 | */ | |
e27d359e | 34 | #ifdef CONFIG_SUNRPC_DEBUG |
1af04227 DW |
35 | #define RPC_DEBUG |
36 | #endif | |
2f09c242 TM |
37 | #ifdef CONFIG_TRACEPOINTS |
38 | #define RPC_TRACEPOINTS | |
39 | #endif | |
1af04227 | 40 | /* #define RPC_PROFILE */ |
1da177e4 LT |
41 | |
42 | /* | |
43 | * Debugging macros etc | |
44 | */ | |
45 | #ifdef RPC_DEBUG | |
46 | extern unsigned int rpc_debug; | |
47 | extern unsigned int nfs_debug; | |
48 | extern unsigned int nfsd_debug; | |
49 | extern unsigned int nlm_debug; | |
50 | #endif | |
51 | ||
52 | #define dprintk(args...) dfprintk(FACILITY, ## args) | |
2446ab60 | 53 | #define dprintk_rcu(args...) dfprintk_rcu(FACILITY, ## args) |
1da177e4 LT |
54 | |
55 | #undef ifdebug | |
56 | #ifdef RPC_DEBUG | |
57 | # define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac)) | |
2446ab60 | 58 | |
dbb9c2a2 CL |
59 | # define dfprintk(fac, args...) \ |
60 | do { \ | |
61 | ifdebug(fac) \ | |
62 | printk(KERN_DEFAULT args); \ | |
63 | } while (0) | |
2446ab60 TM |
64 | |
65 | # define dfprintk_rcu(fac, args...) \ | |
66 | do { \ | |
67 | ifdebug(fac) { \ | |
68 | rcu_read_lock(); \ | |
69 | printk(KERN_DEFAULT args); \ | |
70 | rcu_read_unlock(); \ | |
71 | } \ | |
72 | } while (0) | |
73 | ||
1da177e4 LT |
74 | # define RPC_IFDEBUG(x) x |
75 | #else | |
76 | # define ifdebug(fac) if (0) | |
b3b536a1 CL |
77 | # define dfprintk(fac, args...) do {} while (0) |
78 | # define dfprintk_rcu(fac, args...) do {} while (0) | |
1da177e4 LT |
79 | # define RPC_IFDEBUG(x) |
80 | #endif | |
81 | ||
1da177e4 LT |
82 | /* |
83 | * Sysctl interface for RPC debugging | |
84 | */ | |
85 | #ifdef RPC_DEBUG | |
86 | void rpc_register_sysctl(void); | |
87 | void rpc_unregister_sysctl(void); | |
88 | #endif | |
89 | ||
90 | #endif /* __KERNEL__ */ | |
91 | ||
92 | /* | |
93 | * Declarations for the sysctl debug interface, which allows to read or | |
94 | * change the debug flags for rpc, nfs, nfsd, and lockd. Since the sunrpc | |
95 | * module currently registers its sysctl table dynamically, the sysctl path | |
96 | * for module FOO is <CTL_SUNRPC, CTL_FOODEBUG>. | |
97 | */ | |
1da177e4 LT |
98 | |
99 | enum { | |
100 | CTL_RPCDEBUG = 1, | |
101 | CTL_NFSDEBUG, | |
102 | CTL_NFSDDEBUG, | |
103 | CTL_NLMDEBUG, | |
104 | CTL_SLOTTABLE_UDP, | |
105 | CTL_SLOTTABLE_TCP, | |
529b33c6 CL |
106 | CTL_MIN_RESVPORT, |
107 | CTL_MAX_RESVPORT, | |
1da177e4 LT |
108 | }; |
109 | ||
110 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ |