1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * linux/include/linux/sunrpc/stats.h
4 *
5 * Client statistics collection for SUN RPC
6 *
7 * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
8 */
9
10#ifndef _LINUX_SUNRPC_STATS_H
11#define _LINUX_SUNRPC_STATS_H
12
13#include <linux/proc_fs.h>
14
15struct rpc_stat {
16	const 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
42struct net;
43#ifdef CONFIG_PROC_FS
44int			rpc_proc_init(struct net *);
45void			rpc_proc_exit(struct net *);
46struct proc_dir_entry *	rpc_proc_register(struct net *,struct rpc_stat *);
47void			rpc_proc_unregister(struct net *,const char *);
48void			rpc_proc_zero(const struct rpc_program *);
49struct proc_dir_entry *	svc_proc_register(struct net *, struct svc_stat *,
50					  const struct proc_ops *);
51void			svc_proc_unregister(struct net *, const char *);
52
53void			svc_seq_show(struct seq_file *,
54				     const struct svc_stat *);
55#else
56static inline int rpc_proc_init(struct net *net)
57{
58	return 0;
59}
60
61static inline void rpc_proc_exit(struct net *net)
62{
63}
64static inline struct proc_dir_entry *rpc_proc_register(struct net *net, struct rpc_stat *s) { return NULL; }
65static inline void rpc_proc_unregister(struct net *net, const char *p) {}
66static inline void rpc_proc_zero(const struct rpc_program *p) {}
67
68static inline struct proc_dir_entry *svc_proc_register(struct net *net, struct svc_stat *s,
69						       const struct proc_ops *proc_ops) { return NULL; }
70static inline void svc_proc_unregister(struct net *net, const char *p) {}
71
72static inline void svc_seq_show(struct seq_file *seq,
73				const struct svc_stat *st) {}
74#endif
75
76#endif /* _LINUX_SUNRPC_STATS_H */
77