1 /* 2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 3 * unrestricted use provided that this legend is included on all tape 4 * media and as a part of the software program in whole or part. Users 5 * may copy or modify Sun RPC without charge, but are not authorized 6 * to license or distribute it to anyone else except as part of a product or 7 * program developed by the user. 8 * 9 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE 10 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR 11 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. 12 * 13 * Sun RPC is provided with no support and without any obligation on the 14 * part of Sun Microsystems, Inc. to assist in its use, correction, 15 * modification or enhancement. 16 * 17 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE 18 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC 19 * OR ANY PART THEREOF. 20 * 21 * In no event will Sun Microsystems, Inc. be liable for any lost revenue 22 * or profits or other special, indirect and consequential damages, even if 23 * Sun has been advised of the possibility of such damages. 24 * 25 * Sun Microsystems, Inc. 26 * 2550 Garcia Avenue 27 * Mountain View, California 94043 28 * 29 * @(#)rstat.x 1.2 87/09/18 Copyr 1987 Sun Micro 30 * @(#)rstat.x 2.2 88/08/01 4.0 RPCSRC 31 * $FreeBSD: src/include/rpcsvc/rstat.x,v 1.8 2003/05/04 02:51:42 obrien Exp $ 32 * $DragonFly: src/include/rpcsvc/rstat.x,v 1.2 2003/06/17 04:25:58 dillon Exp $ 33 */ 34 35 /* 36 * Gather statistics on remote machines 37 */ 38 39 #ifdef RPC_HDR 40 41 %#ifndef FSCALE 42 %/* 43 % * Scale factor for scaled integers used to count load averages. 44 % */ 45 %#define FSHIFT 8 /* bits to right of fixed binary point */ 46 %#define FSCALE (1<<FSHIFT) 47 % 48 %#endif /* ndef FSCALE */ 49 50 #endif 51 52 const RSTAT_CPUSTATES = 4; 53 const RSTAT_DK_NDRIVE = 4; 54 55 /* 56 * GMT since 0:00, January 1, 1970 57 */ 58 struct rstat_timeval { 59 unsigned int tv_sec; /* seconds */ 60 unsigned int tv_usec; /* and microseconds */ 61 }; 62 63 struct statstime { /* RSTATVERS_TIME */ 64 int cp_time[RSTAT_CPUSTATES]; 65 int dk_xfer[RSTAT_DK_NDRIVE]; 66 unsigned int v_pgpgin; /* these are cumulative sum */ 67 unsigned int v_pgpgout; 68 unsigned int v_pswpin; 69 unsigned int v_pswpout; 70 unsigned int v_intr; 71 int if_ipackets; 72 int if_ierrors; 73 int if_oerrors; 74 int if_collisions; 75 unsigned int v_swtch; 76 int avenrun[3]; /* scaled by FSCALE */ 77 rstat_timeval boottime; 78 rstat_timeval curtime; 79 int if_opackets; 80 }; 81 82 struct statsswtch { /* RSTATVERS_SWTCH */ 83 int cp_time[RSTAT_CPUSTATES]; 84 int dk_xfer[RSTAT_DK_NDRIVE]; 85 unsigned int v_pgpgin; /* these are cumulative sum */ 86 unsigned int v_pgpgout; 87 unsigned int v_pswpin; 88 unsigned int v_pswpout; 89 unsigned int v_intr; 90 int if_ipackets; 91 int if_ierrors; 92 int if_oerrors; 93 int if_collisions; 94 unsigned int v_swtch; 95 unsigned int avenrun[3];/* scaled by FSCALE */ 96 rstat_timeval boottime; 97 int if_opackets; 98 }; 99 100 struct stats { /* RSTATVERS_ORIG */ 101 int cp_time[RSTAT_CPUSTATES]; 102 int dk_xfer[RSTAT_DK_NDRIVE]; 103 unsigned int v_pgpgin; /* these are cumulative sum */ 104 unsigned int v_pgpgout; 105 unsigned int v_pswpin; 106 unsigned int v_pswpout; 107 unsigned int v_intr; 108 int if_ipackets; 109 int if_ierrors; 110 int if_oerrors; 111 int if_collisions; 112 int if_opackets; 113 }; 114 115 116 program RSTATPROG { 117 /* 118 * Newest version includes current time and context switching info 119 */ 120 version RSTATVERS_TIME { 121 statstime 122 RSTATPROC_STATS(void) = 1; 123 124 unsigned int 125 RSTATPROC_HAVEDISK(void) = 2; 126 } = 3; 127 /* 128 * Does not have current time 129 */ 130 version RSTATVERS_SWTCH { 131 statsswtch 132 RSTATPROC_STATS(void) = 1; 133 134 unsigned int 135 RSTATPROC_HAVEDISK(void) = 2; 136 } = 2; 137 /* 138 * Old version has no info about current time or context switching 139 */ 140 version RSTATVERS_ORIG { 141 stats 142 RSTATPROC_STATS(void) = 1; 143 144 unsigned int 145 RSTATPROC_HAVEDISK(void) = 2; 146 } = 1; 147 } = 100001; 148 149 #ifdef RPC_HDR 150 % 151 %enum clnt_stat rstat(char *, struct statstime *); 152 %int havedisk(char *); 153 % 154 #endif 155