]>
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 | ||
12 | #include <linux/config.h> | |
13 | ||
14 | #include <linux/timer.h> | |
15 | #include <linux/workqueue.h> | |
16 | ||
17 | /* | |
18 | * Enable RPC debugging/profiling. | |
19 | */ | |
20 | #ifdef CONFIG_SYSCTL | |
21 | #define RPC_DEBUG | |
22 | #endif | |
23 | /* #define RPC_PROFILE */ | |
24 | ||
25 | /* | |
26 | * RPC debug facilities | |
27 | */ | |
28 | #define RPCDBG_XPRT 0x0001 | |
29 | #define RPCDBG_CALL 0x0002 | |
30 | #define RPCDBG_DEBUG 0x0004 | |
31 | #define RPCDBG_NFS 0x0008 | |
32 | #define RPCDBG_AUTH 0x0010 | |
33 | #define RPCDBG_PMAP 0x0020 | |
34 | #define RPCDBG_SCHED 0x0040 | |
9903cd1c | 35 | #define RPCDBG_TRANS 0x0080 |
1da177e4 LT |
36 | #define RPCDBG_SVCSOCK 0x0100 |
37 | #define RPCDBG_SVCDSP 0x0200 | |
38 | #define RPCDBG_MISC 0x0400 | |
39 | #define RPCDBG_CACHE 0x0800 | |
40 | #define RPCDBG_ALL 0x7fff | |
41 | ||
42 | #ifdef __KERNEL__ | |
43 | ||
44 | /* | |
45 | * Debugging macros etc | |
46 | */ | |
47 | #ifdef RPC_DEBUG | |
48 | extern unsigned int rpc_debug; | |
49 | extern unsigned int nfs_debug; | |
50 | extern unsigned int nfsd_debug; | |
51 | extern unsigned int nlm_debug; | |
52 | #endif | |
53 | ||
54 | #define dprintk(args...) dfprintk(FACILITY, ## args) | |
55 | ||
56 | #undef ifdebug | |
57 | #ifdef RPC_DEBUG | |
58 | # define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac)) | |
59 | # define dfprintk(fac, args...) do { ifdebug(fac) printk(args); } while(0) | |
60 | # define RPC_IFDEBUG(x) x | |
61 | #else | |
62 | # define ifdebug(fac) if (0) | |
63 | # define dfprintk(fac, args...) do ; while (0) | |
64 | # define RPC_IFDEBUG(x) | |
65 | #endif | |
66 | ||
67 | #ifdef RPC_PROFILE | |
68 | # define pprintk(args...) printk(## args) | |
69 | #else | |
70 | # define pprintk(args...) do ; while (0) | |
71 | #endif | |
72 | ||
73 | /* | |
74 | * Sysctl interface for RPC debugging | |
75 | */ | |
76 | #ifdef RPC_DEBUG | |
77 | void rpc_register_sysctl(void); | |
78 | void rpc_unregister_sysctl(void); | |
79 | #endif | |
80 | ||
81 | #endif /* __KERNEL__ */ | |
82 | ||
83 | /* | |
84 | * Declarations for the sysctl debug interface, which allows to read or | |
85 | * change the debug flags for rpc, nfs, nfsd, and lockd. Since the sunrpc | |
86 | * module currently registers its sysctl table dynamically, the sysctl path | |
87 | * for module FOO is <CTL_SUNRPC, CTL_FOODEBUG>. | |
88 | */ | |
89 | #define CTL_SUNRPC 7249 /* arbitrary and hopefully unused */ | |
90 | ||
91 | enum { | |
92 | CTL_RPCDEBUG = 1, | |
93 | CTL_NFSDEBUG, | |
94 | CTL_NFSDDEBUG, | |
95 | CTL_NLMDEBUG, | |
96 | CTL_SLOTTABLE_UDP, | |
97 | CTL_SLOTTABLE_TCP, | |
98 | }; | |
99 | ||
100 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ |