blob: 84b92b4ad1c0976d8994b8cb59b61948010b3218 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002/*
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
Linus Torvalds1da177e2005-04-16 15:20:36 -070013#include <linux/proc_fs.h>
14
15struct rpc_stat {
Trond Myklebusta613fa12012-01-20 13:53:56 -050016 const struct rpc_program *program;
Linus Torvalds1da177e2005-04-16 15:20:36 -070017
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
Pavel Emelyanov4f42d0d2010-09-27 14:01:58 +040042struct net;
43#ifdef CONFIG_PROC_FS
44int rpc_proc_init(struct net *);
45void rpc_proc_exit(struct net *);
46#else
47static inline int rpc_proc_init(struct net *net)
48{
49 return 0;
50}
51
52static inline void rpc_proc_exit(struct net *net)
53{
54}
55#endif
56
Linus Torvalds1da177e2005-04-16 15:20:36 -070057#ifdef MODULE
58void rpc_modcount(struct inode *, int);
59#endif
60
61#ifdef CONFIG_PROC_FS
Stanislav Kinsburskyec7652a2011-12-06 16:42:40 +030062struct proc_dir_entry * rpc_proc_register(struct net *,struct rpc_stat *);
63void rpc_proc_unregister(struct net *,const char *);
Trond Myklebusta613fa12012-01-20 13:53:56 -050064void rpc_proc_zero(const struct rpc_program *);
Stanislav Kinsbursky246590f2011-12-06 16:42:49 +030065struct proc_dir_entry * svc_proc_register(struct net *, struct svc_stat *,
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080066 const struct file_operations *);
Stanislav Kinsbursky246590f2011-12-06 16:42:49 +030067void svc_proc_unregister(struct net *, const char *);
Linus Torvalds1da177e2005-04-16 15:20:36 -070068
69void svc_seq_show(struct seq_file *,
70 const struct svc_stat *);
Linus Torvalds1da177e2005-04-16 15:20:36 -070071#else
72
Randy Dunlapcc9f4be2012-01-24 03:28:07 +000073static inline struct proc_dir_entry *rpc_proc_register(struct net *net, struct rpc_stat *s) { return NULL; }
74static inline void rpc_proc_unregister(struct net *net, const char *p) {}
Trond Myklebusta613fa12012-01-20 13:53:56 -050075static inline void rpc_proc_zero(const struct rpc_program *p) {}
Linus Torvalds1da177e2005-04-16 15:20:36 -070076
Stanislav Kinsbursky246590f2011-12-06 16:42:49 +030077static inline struct proc_dir_entry *svc_proc_register(struct net *net, struct svc_stat *s,
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080078 const struct file_operations *f) { return NULL; }
Stanislav Kinsbursky246590f2011-12-06 16:42:49 +030079static inline void svc_proc_unregister(struct net *net, const char *p) {}
Linus Torvalds1da177e2005-04-16 15:20:36 -070080
81static inline void svc_seq_show(struct seq_file *seq,
82 const struct svc_stat *st) {}
Linus Torvalds1da177e2005-04-16 15:20:36 -070083#endif
84
85#endif /* _LINUX_SUNRPC_STATS_H */