linux/include/linux/sunrpc/debug.h
<<
>>
Prefs
   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(fmt, ...)                                               \
  24        dfprintk(FACILITY, fmt, ##__VA_ARGS__)
  25#define dprintk_cont(fmt, ...)                                          \
  26        dfprintk_cont(FACILITY, fmt, ##__VA_ARGS__)
  27#define dprintk_rcu(fmt, ...)                                           \
  28        dfprintk_rcu(FACILITY, fmt, ##__VA_ARGS__)
  29#define dprintk_rcu_cont(fmt, ...)                                      \
  30        dfprintk_rcu_cont(FACILITY, fmt, ##__VA_ARGS__)
  31
  32#undef ifdebug
  33#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
  34# define ifdebug(fac)           if (unlikely(rpc_debug & RPCDBG_##fac))
  35
  36# define dfprintk(fac, fmt, ...)                                        \
  37do {                                                                    \
  38        ifdebug(fac)                                                    \
  39                printk(KERN_DEFAULT fmt, ##__VA_ARGS__);                \
  40} while (0)
  41
  42# define dfprintk_cont(fac, fmt, ...)                                   \
  43do {                                                                    \
  44        ifdebug(fac)                                                    \
  45                printk(KERN_CONT fmt, ##__VA_ARGS__);                   \
  46} while (0)
  47
  48# define dfprintk_rcu(fac, fmt, ...)                                    \
  49do {                                                                    \
  50        ifdebug(fac) {                                                  \
  51                rcu_read_lock();                                        \
  52                printk(KERN_DEFAULT fmt, ##__VA_ARGS__);                \
  53                rcu_read_unlock();                                      \
  54        }                                                               \
  55} while (0)
  56
  57# define dfprintk_rcu_cont(fac, fmt, ...)                               \
  58do {                                                                    \
  59        ifdebug(fac) {                                                  \
  60                rcu_read_lock();                                        \
  61                printk(KERN_CONT fmt, ##__VA_ARGS__);                   \
  62                rcu_read_unlock();                                      \
  63        }                                                               \
  64} while (0)
  65
  66# define RPC_IFDEBUG(x)         x
  67#else
  68# define ifdebug(fac)           if (0)
  69# define dfprintk(fac, fmt, ...)        do {} while (0)
  70# define dfprintk_cont(fac, fmt, ...)   do {} while (0)
  71# define dfprintk_rcu(fac, fmt, ...)    do {} while (0)
  72# define RPC_IFDEBUG(x)
  73#endif
  74
  75/*
  76 * Sysctl interface for RPC debugging
  77 */
  78
  79struct rpc_clnt;
  80struct rpc_xprt;
  81
  82#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
  83void            rpc_register_sysctl(void);
  84void            rpc_unregister_sysctl(void);
  85void            sunrpc_debugfs_init(void);
  86void            sunrpc_debugfs_exit(void);
  87void            rpc_clnt_debugfs_register(struct rpc_clnt *);
  88void            rpc_clnt_debugfs_unregister(struct rpc_clnt *);
  89void            rpc_xprt_debugfs_register(struct rpc_xprt *);
  90void            rpc_xprt_debugfs_unregister(struct rpc_xprt *);
  91#else
  92static inline void
  93sunrpc_debugfs_init(void)
  94{
  95        return;
  96}
  97
  98static inline void
  99sunrpc_debugfs_exit(void)
 100{
 101        return;
 102}
 103
 104static inline void
 105rpc_clnt_debugfs_register(struct rpc_clnt *clnt)
 106{
 107        return;
 108}
 109
 110static inline void
 111rpc_clnt_debugfs_unregister(struct rpc_clnt *clnt)
 112{
 113        return;
 114}
 115
 116static inline void
 117rpc_xprt_debugfs_register(struct rpc_xprt *xprt)
 118{
 119        return;
 120}
 121
 122static inline void
 123rpc_xprt_debugfs_unregister(struct rpc_xprt *xprt)
 124{
 125        return;
 126}
 127#endif
 128
 129#endif /* _LINUX_SUNRPC_DEBUG_H_ */
 130