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/config.h>
13#include <linux/proc_fs.h>
14
15struct rpc_stat {
16	struct rpc_program *	program;
17
18	unsigned int		netcnt,
19				netudpcnt,
20				nettcpcnt,
21				nettcpconn,
22				netreconn;
23	unsigned int		rpccnt,
24				rpcretrans,
25				rpcauthrefresh,
26				rpcgarbage;
27};
28
29struct svc_stat {
30	struct svc_program *	program;
31
32	unsigned int		netcnt,
33				netudpcnt,
34				nettcpcnt,
35				nettcpconn;
36	unsigned int		rpccnt,
37				rpcbadfmt,
38				rpcbadauth,
39				rpcbadclnt;
40};
41
42void			rpc_proc_init(void);
43void			rpc_proc_exit(void);
44#ifdef MODULE
45void			rpc_modcount(struct inode *, int);
46#endif
47
48#ifdef CONFIG_PROC_FS
49struct proc_dir_entry *	rpc_proc_register(struct rpc_stat *);
50void			rpc_proc_unregister(const char *);
51int			rpc_proc_read(char *, char **, off_t, int,
52					int *, void *);
53void			rpc_proc_zero(struct rpc_program *);
54struct proc_dir_entry *	svc_proc_register(struct svc_stat *);
55void			svc_proc_unregister(const char *);
56int			svc_proc_read(char *, char **, off_t, int,
57					int *, void *);
58void			svc_proc_zero(struct svc_program *);
59
60#else
61
62static inline void svc_proc_unregister(const char *p) {}
63static inline struct proc_dir_entry*svc_proc_register(struct svc_stat *s)
64{
65	return NULL;
66}
67
68static inline int svc_proc_read(char *a, char **b, off_t c, int d, int *e, void *f)
69{
70	return 0;
71}
72#endif
73
74#endif /* _LINUX_SUNRPC_STATS_H */
75