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 | |
20 | #define RPCDBG_PMAP 0x0020 | |
21 | #define RPCDBG_SCHED 0x0040 | |
9903cd1c | 22 | #define RPCDBG_TRANS 0x0080 |
1da177e4 LT |
23 | #define RPCDBG_SVCSOCK 0x0100 |
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 DW |
30 | |
31 | #include <linux/timer.h> | |
32 | #include <linux/workqueue.h> | |
33 | ||
34 | /* | |
35 | * Enable RPC debugging/profiling. | |
36 | */ | |
37 | #ifdef CONFIG_SYSCTL | |
38 | #define RPC_DEBUG | |
39 | #endif | |
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) | |
53 | ||
54 | #undef ifdebug | |
55 | #ifdef RPC_DEBUG | |
56 | # define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac)) | |
57 | # define dfprintk(fac, args...) do { ifdebug(fac) printk(args); } while(0) | |
58 | # define RPC_IFDEBUG(x) x | |
59 | #else | |
60 | # define ifdebug(fac) if (0) | |
61 | # define dfprintk(fac, args...) do ; while (0) | |
62 | # define RPC_IFDEBUG(x) | |
63 | #endif | |
64 | ||
1da177e4 LT |
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 /* __KERNEL__ */ | |
74 | ||
75 | /* | |
76 | * Declarations for the sysctl debug interface, which allows to read or | |
77 | * change the debug flags for rpc, nfs, nfsd, and lockd. Since the sunrpc | |
78 | * module currently registers its sysctl table dynamically, the sysctl path | |
79 | * for module FOO is <CTL_SUNRPC, CTL_FOODEBUG>. | |
80 | */ | |
81 | #define CTL_SUNRPC 7249 /* arbitrary and hopefully unused */ | |
82 | ||
83 | enum { | |
84 | CTL_RPCDEBUG = 1, | |
85 | CTL_NFSDEBUG, | |
86 | CTL_NFSDDEBUG, | |
87 | CTL_NLMDEBUG, | |
88 | CTL_SLOTTABLE_UDP, | |
89 | CTL_SLOTTABLE_TCP, | |
529b33c6 CL |
90 | CTL_MIN_RESVPORT, |
91 | CTL_MAX_RESVPORT, | |
1da177e4 LT |
92 | }; |
93 | ||
94 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ |