diff options
Diffstat (limited to 'include/rpcsvc/rstat.x')
| -rw-r--r-- | include/rpcsvc/rstat.x | 151 | 
1 files changed, 151 insertions, 0 deletions
diff --git a/include/rpcsvc/rstat.x b/include/rpcsvc/rstat.x new file mode 100644 index 000000000000..17e9c9fedf3a --- /dev/null +++ b/include/rpcsvc/rstat.x @@ -0,0 +1,151 @@ +/*- + * Copyright (c) 2010, Oracle America, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + *     * Redistributions of source code must retain the above copyright + *       notice, this list of conditions and the following disclaimer. + *     * Redistributions in binary form must reproduce the above + *       copyright notice, this list of conditions and the following + *       disclaimer in the documentation and/or other materials + *       provided with the distribution. + *     * Neither the name of the "Oracle America, Inc." nor the names of its + *       contributors may be used to endorse or promote products derived + *       from this software without specific prior written permission. + * + *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Gather statistics on remote machines + */ + +#ifdef RPC_HDR + +%#ifndef FSCALE +%/* +% * Scale factor for scaled integers used to count load averages. +% */ +%#define FSHIFT  8               /* bits to right of fixed binary point */ +%#define FSCALE  (1<<FSHIFT) +% +%#endif /* ndef FSCALE */ + +#endif /* def RPC_HDR */ + +const RSTAT_CPUSTATES = 4; +const RSTAT_DK_NDRIVE = 4; + +/* + * GMT since 0:00, January 1, 1970 + */ +struct rstat_timeval { +	unsigned int tv_sec;	/* seconds */ +	unsigned int tv_usec;	/* and microseconds */ +}; + +struct statstime {				/* RSTATVERS_TIME */ +	int cp_time[RSTAT_CPUSTATES]; +	int dk_xfer[RSTAT_DK_NDRIVE]; +	unsigned int v_pgpgin;	/* these are cumulative sum */ +	unsigned int v_pgpgout; +	unsigned int v_pswpin; +	unsigned int v_pswpout; +	unsigned int v_intr; +	int if_ipackets; +	int if_ierrors; +	int if_oerrors; +	int if_collisions; +	unsigned int v_swtch; +	int avenrun[3];         /* scaled by FSCALE */ +	rstat_timeval boottime; +	rstat_timeval curtime; +	int if_opackets; +}; + +struct statsswtch {			/* RSTATVERS_SWTCH */ +	int cp_time[RSTAT_CPUSTATES]; +	int dk_xfer[RSTAT_DK_NDRIVE]; +	unsigned int v_pgpgin;	/* these are cumulative sum */ +	unsigned int v_pgpgout; +	unsigned int v_pswpin; +	unsigned int v_pswpout; +	unsigned int v_intr; +	int if_ipackets; +	int if_ierrors; +	int if_oerrors; +	int if_collisions; +	unsigned int v_swtch; +	unsigned int avenrun[3];/* scaled by FSCALE */ +	rstat_timeval boottime; +	int if_opackets; +}; + +struct stats {				/* RSTATVERS_ORIG */ +	int cp_time[RSTAT_CPUSTATES]; +	int dk_xfer[RSTAT_DK_NDRIVE]; +	unsigned int v_pgpgin;	/* these are cumulative sum */ +	unsigned int v_pgpgout; +	unsigned int v_pswpin; +	unsigned int v_pswpout; +	unsigned int v_intr; +	int if_ipackets; +	int if_ierrors; +	int if_oerrors; +	int if_collisions; +	int if_opackets; +}; + + +program RSTATPROG { +	/* +	 * Newest version includes current time and context switching info +	 */ +	version RSTATVERS_TIME { +		statstime +		RSTATPROC_STATS(void) = 1; + +		unsigned int +		RSTATPROC_HAVEDISK(void) = 2; +	} = 3; +	/* +	 * Does not have current time +	 */ +	version RSTATVERS_SWTCH { +		statsswtch +		RSTATPROC_STATS(void) = 1; + +		unsigned int +		RSTATPROC_HAVEDISK(void) = 2; +	} = 2; +	/* +	 * Old version has no info about current time or context switching +	 */ +	version RSTATVERS_ORIG { +		stats +		RSTATPROC_STATS(void) = 1; + +		unsigned int +		RSTATPROC_HAVEDISK(void) = 2; +	} = 1; +} = 100001; + +#ifdef RPC_HDR +% +%enum clnt_stat rstat(char *, struct statstime *); +%int havedisk(char *); +% +#endif  | 
