mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
This allows us to turn on/off the dprintk() debugging interfaces for those distributions that don't ship the 'rpcdebug' utility. It also allows us to add Kbuild dependencies. Specifically, we already know that dprintk() in general relies on CONFIG_SYSCTL. Now it turns out that the NFS dprintks depend on CONFIG_CRC32 after we added support for the filehandle hash. Reported-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
110 lines
2.2 KiB
C
110 lines
2.2 KiB
C
/*
|
|
* 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_
|
|
|
|
/*
|
|
* RPC debug facilities
|
|
*/
|
|
#define RPCDBG_XPRT 0x0001
|
|
#define RPCDBG_CALL 0x0002
|
|
#define RPCDBG_DEBUG 0x0004
|
|
#define RPCDBG_NFS 0x0008
|
|
#define RPCDBG_AUTH 0x0010
|
|
#define RPCDBG_BIND 0x0020
|
|
#define RPCDBG_SCHED 0x0040
|
|
#define RPCDBG_TRANS 0x0080
|
|
#define RPCDBG_SVCXPRT 0x0100
|
|
#define RPCDBG_SVCDSP 0x0200
|
|
#define RPCDBG_MISC 0x0400
|
|
#define RPCDBG_CACHE 0x0800
|
|
#define RPCDBG_ALL 0x7fff
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
/*
|
|
* 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 /* __KERNEL__ */
|
|
|
|
/*
|
|
* Declarations for the sysctl debug interface, which allows to read or
|
|
* change the debug flags for rpc, nfs, nfsd, and lockd. Since the sunrpc
|
|
* module currently registers its sysctl table dynamically, the sysctl path
|
|
* for module FOO is <CTL_SUNRPC, CTL_FOODEBUG>.
|
|
*/
|
|
|
|
enum {
|
|
CTL_RPCDEBUG = 1,
|
|
CTL_NFSDEBUG,
|
|
CTL_NFSDDEBUG,
|
|
CTL_NLMDEBUG,
|
|
CTL_SLOTTABLE_UDP,
|
|
CTL_SLOTTABLE_TCP,
|
|
CTL_MIN_RESVPORT,
|
|
CTL_MAX_RESVPORT,
|
|
};
|
|
|
|
#endif /* _LINUX_SUNRPC_DEBUG_H_ */
|