Home | History | Annotate | Download | only in sunrpc
      1 /*
      2  * linux/include/linux/sunrpc/stats.h
      3  *
      4  * Client statistics collection for SUN RPC
      5  *
      6  * Copyright (C) 1996 Olaf Kirch <okir (at) 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 
     14 struct rpc_stat {
     15 	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 
     28 struct 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 
     41 void			rpc_proc_init(void);
     42 void			rpc_proc_exit(void);
     43 #ifdef MODULE
     44 void			rpc_modcount(struct inode *, int);
     45 #endif
     46 
     47 #ifdef CONFIG_PROC_FS
     48 struct proc_dir_entry *	rpc_proc_register(struct rpc_stat *);
     49 void			rpc_proc_unregister(const char *);
     50 void			rpc_proc_zero(struct rpc_program *);
     51 struct proc_dir_entry *	svc_proc_register(struct svc_stat *,
     52 					  const struct file_operations *);
     53 void			svc_proc_unregister(const char *);
     54 
     55 void			svc_seq_show(struct seq_file *,
     56 				     const struct svc_stat *);
     57 
     58 extern struct proc_dir_entry	*proc_net_rpc;
     59 
     60 #else
     61 
     62 static inline struct proc_dir_entry *rpc_proc_register(struct rpc_stat *s) { return NULL; }
     63 static inline void rpc_proc_unregister(const char *p) {}
     64 static inline void rpc_proc_zero(struct rpc_program *p) {}
     65 
     66 static inline struct proc_dir_entry *svc_proc_register(struct svc_stat *s,
     67 						       const struct file_operations *f) { return NULL; }
     68 static inline void svc_proc_unregister(const char *p) {}
     69 
     70 static inline void svc_seq_show(struct seq_file *seq,
     71 				const struct svc_stat *st) {}
     72 
     73 #define proc_net_rpc NULL
     74 
     75 #endif
     76 
     77 #endif /* _LINUX_SUNRPC_STATS_H */
     78