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