1/* @(#)rstat.x 2.2 88/08/01 4.0 RPCSRC */ 2 3/* 4 * Copyright (c) 2010, Oracle America, Inc. 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 the "Oracle America, 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 50const CPUSTATES = 4; 51const DK_NDRIVE = 4; 52 53/* 54 * GMT since 0:00, January 1, 1970 55 */ 56struct rstat_timeval { 57 unsigned int tv_sec; /* seconds */ 58 unsigned int tv_usec; /* and microseconds */ 59}; 60 61struct 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 80struct 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 98struct 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 114program 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