xref: /freebsd/include/rpcsvc/rstat.x (revision 75b63130537040a9f7cc2c6dce2e175abc33bf5e)
175b63130SGarrett Wollman /*
275b63130SGarrett Wollman  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
375b63130SGarrett Wollman  * unrestricted use provided that this legend is included on all tape
475b63130SGarrett Wollman  * media and as a part of the software program in whole or part.  Users
575b63130SGarrett Wollman  * may copy or modify Sun RPC without charge, but are not authorized
675b63130SGarrett Wollman  * to license or distribute it to anyone else except as part of a product or
775b63130SGarrett Wollman  * program developed by the user.
875b63130SGarrett Wollman  *
975b63130SGarrett Wollman  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
1075b63130SGarrett Wollman  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
1175b63130SGarrett Wollman  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
1275b63130SGarrett Wollman  *
1375b63130SGarrett Wollman  * Sun RPC is provided with no support and without any obligation on the
1475b63130SGarrett Wollman  * part of Sun Microsystems, Inc. to assist in its use, correction,
1575b63130SGarrett Wollman  * modification or enhancement.
1675b63130SGarrett Wollman  *
1775b63130SGarrett Wollman  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
1875b63130SGarrett Wollman  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
1975b63130SGarrett Wollman  * OR ANY PART THEREOF.
2075b63130SGarrett Wollman  *
2175b63130SGarrett Wollman  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
2275b63130SGarrett Wollman  * or profits or other special, indirect and consequential damages, even if
2375b63130SGarrett Wollman  * Sun has been advised of the possibility of such damages.
2475b63130SGarrett Wollman  *
2575b63130SGarrett Wollman  * Sun Microsystems, Inc.
2675b63130SGarrett Wollman  * 2550 Garcia Avenue
2775b63130SGarrett Wollman  * Mountain View, California  94043
2875b63130SGarrett Wollman  */
2975b63130SGarrett Wollman 
3075b63130SGarrett Wollman /*
3175b63130SGarrett Wollman  * Gather statistics on remote machines
3275b63130SGarrett Wollman  */
3375b63130SGarrett Wollman 
3475b63130SGarrett Wollman #ifdef RPC_HDR
3575b63130SGarrett Wollman 
3675b63130SGarrett Wollman %#ifndef FSCALE
3775b63130SGarrett Wollman %/*
3875b63130SGarrett Wollman % * Scale factor for scaled integers used to count load averages.
3975b63130SGarrett Wollman % */
4075b63130SGarrett Wollman %#define FSHIFT  8               /* bits to right of fixed binary point */
4175b63130SGarrett Wollman %#define FSCALE  (1<<FSHIFT)
4275b63130SGarrett Wollman %
4375b63130SGarrett Wollman %#endif /* ndef FSCALE */
4475b63130SGarrett Wollman 
4575b63130SGarrett Wollman #else
4675b63130SGarrett Wollman 
4775b63130SGarrett Wollman %#ifndef lint
4875b63130SGarrett Wollman %/*static char sccsid[] = "from: @(#)rstat.x 1.2 87/09/18 Copyr 1987 Sun Micro";*/
4975b63130SGarrett Wollman %/*static char sccsid[] = "from: @(#)rstat.x	2.2 88/08/01 4.0 RPCSRC";*/
5075b63130SGarrett Wollman %static char rcsid[] = "$Id: rstat.x,v 1.3 1993/11/30 20:31:41 ats Exp $";
5175b63130SGarrett Wollman %#endif /* not lint */
5275b63130SGarrett Wollman 
5375b63130SGarrett Wollman #endif /* def RPC_HDR */
5475b63130SGarrett Wollman 
5575b63130SGarrett Wollman const RSTAT_CPUSTATES = 4;
5675b63130SGarrett Wollman const RSTAT_DK_NDRIVE = 4;
5775b63130SGarrett Wollman 
5875b63130SGarrett Wollman /*
5975b63130SGarrett Wollman  * GMT since 0:00, January 1, 1970
6075b63130SGarrett Wollman  */
6175b63130SGarrett Wollman struct rstat_timeval {
6275b63130SGarrett Wollman 	unsigned int tv_sec;	/* seconds */
6375b63130SGarrett Wollman 	unsigned int tv_usec;	/* and microseconds */
6475b63130SGarrett Wollman };
6575b63130SGarrett Wollman 
6675b63130SGarrett Wollman struct statstime {				/* RSTATVERS_TIME */
6775b63130SGarrett Wollman 	int cp_time[RSTAT_CPUSTATES];
6875b63130SGarrett Wollman 	int dk_xfer[RSTAT_DK_NDRIVE];
6975b63130SGarrett Wollman 	unsigned int v_pgpgin;	/* these are cumulative sum */
7075b63130SGarrett Wollman 	unsigned int v_pgpgout;
7175b63130SGarrett Wollman 	unsigned int v_pswpin;
7275b63130SGarrett Wollman 	unsigned int v_pswpout;
7375b63130SGarrett Wollman 	unsigned int v_intr;
7475b63130SGarrett Wollman 	int if_ipackets;
7575b63130SGarrett Wollman 	int if_ierrors;
7675b63130SGarrett Wollman 	int if_oerrors;
7775b63130SGarrett Wollman 	int if_collisions;
7875b63130SGarrett Wollman 	unsigned int v_swtch;
7975b63130SGarrett Wollman 	int avenrun[3];         /* scaled by FSCALE */
8075b63130SGarrett Wollman 	rstat_timeval boottime;
8175b63130SGarrett Wollman 	rstat_timeval curtime;
8275b63130SGarrett Wollman 	int if_opackets;
8375b63130SGarrett Wollman };
8475b63130SGarrett Wollman 
8575b63130SGarrett Wollman struct statsswtch {			/* RSTATVERS_SWTCH */
8675b63130SGarrett Wollman 	int cp_time[RSTAT_CPUSTATES];
8775b63130SGarrett Wollman 	int dk_xfer[RSTAT_DK_NDRIVE];
8875b63130SGarrett Wollman 	unsigned int v_pgpgin;	/* these are cumulative sum */
8975b63130SGarrett Wollman 	unsigned int v_pgpgout;
9075b63130SGarrett Wollman 	unsigned int v_pswpin;
9175b63130SGarrett Wollman 	unsigned int v_pswpout;
9275b63130SGarrett Wollman 	unsigned int v_intr;
9375b63130SGarrett Wollman 	int if_ipackets;
9475b63130SGarrett Wollman 	int if_ierrors;
9575b63130SGarrett Wollman 	int if_oerrors;
9675b63130SGarrett Wollman 	int if_collisions;
9775b63130SGarrett Wollman 	unsigned int v_swtch;
9875b63130SGarrett Wollman 	unsigned int avenrun[3];/* scaled by FSCALE */
9975b63130SGarrett Wollman 	rstat_timeval boottime;
10075b63130SGarrett Wollman 	int if_opackets;
10175b63130SGarrett Wollman };
10275b63130SGarrett Wollman 
10375b63130SGarrett Wollman struct stats {				/* RSTATVERS_ORIG */
10475b63130SGarrett Wollman 	int cp_time[RSTAT_CPUSTATES];
10575b63130SGarrett Wollman 	int dk_xfer[RSTAT_DK_NDRIVE];
10675b63130SGarrett Wollman 	unsigned int v_pgpgin;	/* these are cumulative sum */
10775b63130SGarrett Wollman 	unsigned int v_pgpgout;
10875b63130SGarrett Wollman 	unsigned int v_pswpin;
10975b63130SGarrett Wollman 	unsigned int v_pswpout;
11075b63130SGarrett Wollman 	unsigned int v_intr;
11175b63130SGarrett Wollman 	int if_ipackets;
11275b63130SGarrett Wollman 	int if_ierrors;
11375b63130SGarrett Wollman 	int if_oerrors;
11475b63130SGarrett Wollman 	int if_collisions;
11575b63130SGarrett Wollman 	int if_opackets;
11675b63130SGarrett Wollman };
11775b63130SGarrett Wollman 
11875b63130SGarrett Wollman 
11975b63130SGarrett Wollman program RSTATPROG {
12075b63130SGarrett Wollman 	/*
12175b63130SGarrett Wollman 	 * Newest version includes current time and context switching info
12275b63130SGarrett Wollman 	 */
12375b63130SGarrett Wollman 	version RSTATVERS_TIME {
12475b63130SGarrett Wollman 		statstime
12575b63130SGarrett Wollman 		RSTATPROC_STATS(void) = 1;
12675b63130SGarrett Wollman 
12775b63130SGarrett Wollman 		unsigned int
12875b63130SGarrett Wollman 		RSTATPROC_HAVEDISK(void) = 2;
12975b63130SGarrett Wollman 	} = 3;
13075b63130SGarrett Wollman 	/*
13175b63130SGarrett Wollman 	 * Does not have current time
13275b63130SGarrett Wollman 	 */
13375b63130SGarrett Wollman 	version RSTATVERS_SWTCH {
13475b63130SGarrett Wollman 		statsswtch
13575b63130SGarrett Wollman 		RSTATPROC_STATS(void) = 1;
13675b63130SGarrett Wollman 
13775b63130SGarrett Wollman 		unsigned int
13875b63130SGarrett Wollman 		RSTATPROC_HAVEDISK(void) = 2;
13975b63130SGarrett Wollman 	} = 2;
14075b63130SGarrett Wollman 	/*
14175b63130SGarrett Wollman 	 * Old version has no info about current time or context switching
14275b63130SGarrett Wollman 	 */
14375b63130SGarrett Wollman 	version RSTATVERS_ORIG {
14475b63130SGarrett Wollman 		stats
14575b63130SGarrett Wollman 		RSTATPROC_STATS(void) = 1;
14675b63130SGarrett Wollman 
14775b63130SGarrett Wollman 		unsigned int
14875b63130SGarrett Wollman 		RSTATPROC_HAVEDISK(void) = 2;
14975b63130SGarrett Wollman 	} = 1;
15075b63130SGarrett Wollman } = 100001;
151