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#ifndef _LINUX_SUNRPC_DEBUG_H_ 9#define _LINUX_SUNRPC_DEBUG_H_ 10 11#include <uapi/linux/sunrpc/debug.h> 12 13/* 14 * Debugging macros etc 15 */ 16#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) 17extern unsigned int rpc_debug; 18extern unsigned int nfs_debug; 19extern unsigned int nfsd_debug; 20extern unsigned int nlm_debug; 21#endif 22 23#define dprintk(args...) dfprintk(FACILITY, ## args) 24#define dprintk_rcu(args...) dfprintk_rcu(FACILITY, ## args) 25 26#undef ifdebug 27#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) 28# define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac)) 29 30# define dfprintk(fac, args...) \ 31 do { \ 32 ifdebug(fac) \ 33 printk(KERN_DEFAULT args); \ 34 } while (0) 35 36# define dfprintk_rcu(fac, args...) \ 37 do { \ 38 ifdebug(fac) { \ 39 rcu_read_lock(); \ 40 printk(KERN_DEFAULT args); \ 41 rcu_read_unlock(); \ 42 } \ 43 } while (0) 44 45# define RPC_IFDEBUG(x) x 46#else 47# define ifdebug(fac) if (0) 48# define dfprintk(fac, args...) do {} while (0) 49# define dfprintk_rcu(fac, args...) do {} while (0) 50# define RPC_IFDEBUG(x) 51#endif 52 53/* 54 * Sysctl interface for RPC debugging 55 */ 56 57struct rpc_clnt; 58struct rpc_xprt; 59 60#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) 61void rpc_register_sysctl(void); 62void rpc_unregister_sysctl(void); 63void sunrpc_debugfs_init(void); 64void sunrpc_debugfs_exit(void); 65void rpc_clnt_debugfs_register(struct rpc_clnt *); 66void rpc_clnt_debugfs_unregister(struct rpc_clnt *); 67void rpc_xprt_debugfs_register(struct rpc_xprt *); 68void rpc_xprt_debugfs_unregister(struct rpc_xprt *); 69#else 70static inline void 71sunrpc_debugfs_init(void) 72{ 73 return; 74} 75 76static inline void 77sunrpc_debugfs_exit(void) 78{ 79 return; 80} 81 82static inline void 83rpc_clnt_debugfs_register(struct rpc_clnt *clnt) 84{ 85 return; 86} 87 88static inline void 89rpc_clnt_debugfs_unregister(struct rpc_clnt *clnt) 90{ 91 return; 92} 93 94static inline void 95rpc_xprt_debugfs_register(struct rpc_xprt *xprt) 96{ 97 return; 98} 99 100static inline void 101rpc_xprt_debugfs_unregister(struct rpc_xprt *xprt) 102{ 103 return; 104} 105#endif 106 107#endif /* _LINUX_SUNRPC_DEBUG_H_ */ 108