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 11 #include <uapi/linux/sunrpc/debug.h> 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_ */ 74