| /* |
| * linux/include/linux/sunrpc/debug.h |
| * |
| * Debugging support for sunrpc module |
| * |
| * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de> |
| */ |
| #ifndef _LINUX_SUNRPC_DEBUG_H_ |
| #define _LINUX_SUNRPC_DEBUG_H_ |
| |
| #include <uapi/linux/sunrpc/debug.h> |
| |
| |
| /* |
| * Enable RPC debugging/profiling. |
| */ |
| #ifdef CONFIG_SUNRPC_DEBUG |
| #define RPC_DEBUG |
| #endif |
| #ifdef CONFIG_TRACEPOINTS |
| #define RPC_TRACEPOINTS |
| #endif |
| /* #define RPC_PROFILE */ |
| |
| /* |
| * Debugging macros etc |
| */ |
| #ifdef RPC_DEBUG |
| extern unsigned int rpc_debug; |
| extern unsigned int nfs_debug; |
| extern unsigned int nfsd_debug; |
| extern unsigned int nlm_debug; |
| #endif |
| |
| #define dprintk(args...) dfprintk(FACILITY, ## args) |
| #define dprintk_rcu(args...) dfprintk_rcu(FACILITY, ## args) |
| |
| #undef ifdebug |
| #ifdef RPC_DEBUG |
| # define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac)) |
| |
| # define dfprintk(fac, args...) \ |
| do { \ |
| ifdebug(fac) \ |
| printk(KERN_DEFAULT args); \ |
| } while (0) |
| |
| # define dfprintk_rcu(fac, args...) \ |
| do { \ |
| ifdebug(fac) { \ |
| rcu_read_lock(); \ |
| printk(KERN_DEFAULT args); \ |
| rcu_read_unlock(); \ |
| } \ |
| } while (0) |
| |
| # define RPC_IFDEBUG(x) x |
| #else |
| # define ifdebug(fac) if (0) |
| # define dfprintk(fac, args...) do {} while (0) |
| # define dfprintk_rcu(fac, args...) do {} while (0) |
| # define RPC_IFDEBUG(x) |
| #endif |
| |
| /* |
| * Sysctl interface for RPC debugging |
| */ |
| #ifdef RPC_DEBUG |
| void rpc_register_sysctl(void); |
| void rpc_unregister_sysctl(void); |
| #endif |
| |
| #endif /* _LINUX_SUNRPC_DEBUG_H_ */ |