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