1 /* @(#)rstat.x 2.2 88/08/01 4.0 RPCSRC */ 2 /* @(#)rstat.x 1.2 87/09/18 Copyr 1987 Sun Micro */ 3 4 /* 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * * Redistributions in binary form must reproduce the above 12 * copyright notice, this list of conditions and the following 13 * disclaimer in the documentation and/or other materials 14 * provided with the distribution. 15 * * Neither the name of Sun Microsystems, Inc. nor the names of its 16 * contributors may be used to endorse or promote products derived 17 * from this software without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 22 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 23 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 24 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 26 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 /* 34 * Gather statistics on remote machines 35 */ 36 37 #ifdef RPC_HDR 38 39 %#ifndef FSCALE 40 %/* 41 % * Scale factor for scaled integers used to count load averages. 42 % */ 43 %#define FSHIFT 8 /* bits to right of fixed binary point */ 44 %#define FSCALE (1<<FSHIFT) 45 % 46 %#endif /* ndef FSCALE */ 47 48 #endif /* def RPC_HDR */ 49 50 const CPUSTATES = 4; 51 const DK_NDRIVE = 4; 52 53 /* 54 * GMT since 0:00, January 1, 1970 55 */ 56 struct rstat_timeval { 57 unsigned int tv_sec; /* seconds */ 58 unsigned int tv_usec; /* and microseconds */ 59 }; 60 61 struct statstime { /* RSTATVERS_TIME */ 62 int cp_time[CPUSTATES]; 63 int dk_xfer[DK_NDRIVE]; 64 unsigned int v_pgpgin; /* these are cumulative sum */ 65 unsigned int v_pgpgout; 66 unsigned int v_pswpin; 67 unsigned int v_pswpout; 68 unsigned int v_intr; 69 int if_ipackets; 70 int if_ierrors; 71 int if_oerrors; 72 int if_collisions; 73 unsigned int v_swtch; 74 int avenrun[3]; /* scaled by FSCALE */ 75 rstat_timeval boottime; 76 rstat_timeval curtime; 77 int if_opackets; 78 }; 79 80 struct statsswtch { /* RSTATVERS_SWTCH */ 81 int cp_time[CPUSTATES]; 82 int dk_xfer[DK_NDRIVE]; 83 unsigned int v_pgpgin; /* these are cumulative sum */ 84 unsigned int v_pgpgout; 85 unsigned int v_pswpin; 86 unsigned int v_pswpout; 87 unsigned int v_intr; 88 int if_ipackets; 89 int if_ierrors; 90 int if_oerrors; 91 int if_collisions; 92 unsigned int v_swtch; 93 unsigned int avenrun[3];/* scaled by FSCALE */ 94 rstat_timeval boottime; 95 int if_opackets; 96 }; 97 98 struct stats { /* RSTATVERS_ORIG */ 99 int cp_time[CPUSTATES]; 100 int dk_xfer[DK_NDRIVE]; 101 unsigned int v_pgpgin; /* these are cumulative sum */ 102 unsigned int v_pgpgout; 103 unsigned int v_pswpin; 104 unsigned int v_pswpout; 105 unsigned int v_intr; 106 int if_ipackets; 107 int if_ierrors; 108 int if_oerrors; 109 int if_collisions; 110 int if_opackets; 111 }; 112 113 114 program RSTATPROG { 115 /* 116 * Newest version includes current time and context switching info 117 */ 118 version RSTATVERS_TIME { 119 statstime 120 RSTATPROC_STATS(void) = 1; 121 122 unsigned int 123 RSTATPROC_HAVEDISK(void) = 2; 124 } = 3; 125 /* 126 * Does not have current time 127 */ 128 version RSTATVERS_SWTCH { 129 statsswtch 130 RSTATPROC_STATS(void) = 1; 131 132 unsigned int 133 RSTATPROC_HAVEDISK(void) = 2; 134 } = 2; 135 /* 136 * Old version has no info about current time or context switching 137 */ 138 version RSTATVERS_ORIG { 139 stats 140 RSTATPROC_STATS(void) = 1; 141 142 unsigned int 143 RSTATPROC_HAVEDISK(void) = 2; 144 } = 1; 145 } = 100001; 146