1/*
2 * linux/include/linux/sunrpc/stats.h
3 *
4 * Client statistics collection for SUN RPC
5 *
6 * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
7 */
8
9#ifndef _LINUX_SUNRPC_STATS_H
10#define _LINUX_SUNRPC_STATS_H
11
12#include <linux/proc_fs.h>
13
14struct rpc_stat {
15	const struct rpc_program *program;
16
17	unsigned int		netcnt,
18				netudpcnt,
19				nettcpcnt,
20				nettcpconn,
21				netreconn;
22	unsigned int		rpccnt,
23				rpcretrans,
24				rpcauthrefresh,
25				rpcgarbage;
26};
27
28struct svc_stat {
29	struct svc_program *	program;
30
31	unsigned int		netcnt,
32				netudpcnt,
33				nettcpcnt,
34				nettcpconn;
35	unsigned int		rpccnt,
36				rpcbadfmt,
37				rpcbadauth,
38				rpcbadclnt;
39};
40
41struct net;
42#ifdef CONFIG_PROC_FS
43int			rpc_proc_init(struct net *);
44void			rpc_proc_exit(struct net *);
45#else
46static inline int rpc_proc_init(struct net *net)
47{
48	return 0;
49}
50
51static inline void rpc_proc_exit(struct net *net)
52{
53}
54#endif
55
56#ifdef MODULE
57void			rpc_modcount(struct inode *, int);
58#endif
59
60#ifdef CONFIG_PROC_FS
61struct proc_dir_entry *	rpc_proc_register(struct net *,struct rpc_stat *);
62void			rpc_proc_unregister(struct net *,const char *);
63void			rpc_proc_zero(const struct rpc_program *);
64struct proc_dir_entry *	svc_proc_register(struct net *, struct svc_stat *,
65					  const struct file_operations *);
66void			svc_proc_unregister(struct net *, const char *);
67
68void			svc_seq_show(struct seq_file *,
69				     const struct svc_stat *);
70#else
71
72static inline struct proc_dir_entry *rpc_proc_register(struct net *net, struct rpc_stat *s) { return NULL; }
73static inline void rpc_proc_unregister(struct net *net, const char *p) {}
74static inline void rpc_proc_zero(const struct rpc_program *p) {}
75
76static inline struct proc_dir_entry *svc_proc_register(struct net *net, struct svc_stat *s,
77						       const struct file_operations *f) { return NULL; }
78static inline void svc_proc_unregister(struct net *net, const char *p) {}
79
80static inline void svc_seq_show(struct seq_file *seq,
81				const struct svc_stat *st) {}
82#endif
83
84#endif /* _LINUX_SUNRPC_STATS_H */
85