Home | History | Annotate | Download | only in rpcsvc
      1  0  stevel /*
      2  0  stevel  * CDDL HEADER START
      3  0  stevel  *
      4  0  stevel  * The contents of this file are subject to the terms of the
      5  0  stevel  * Common Development and Distribution License, Version 1.0 only
      6  0  stevel  * (the "License").  You may not use this file except in compliance
      7  0  stevel  * with the License.
      8  0  stevel  *
      9  0  stevel  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  0  stevel  * or http://www.opensolaris.org/os/licensing.
     11  0  stevel  * See the License for the specific language governing permissions
     12  0  stevel  * and limitations under the License.
     13  0  stevel  *
     14  0  stevel  * When distributing Covered Code, include this CDDL HEADER in each
     15  0  stevel  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  0  stevel  * If applicable, add the following below this CDDL HEADER, with the
     17  0  stevel  * fields enclosed by brackets "[]" replaced with your own identifying
     18  0  stevel  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  0  stevel  *
     20  0  stevel  * CDDL HEADER END
     21  0  stevel  */
     22  0  stevel %/*
     23  0  stevel % * Copyright (c) 1985, 1990, 1991 by Sun Microsystems, Inc.
     24  0  stevel % */
     25  0  stevel 
     26  0  stevel %/* from rstat.x */
     27  0  stevel 
     28  0  stevel /*
     29  0  stevel  * Gather statistics on remote machines
     30  0  stevel  */
     31  0  stevel 
     32  0  stevel #ifdef RPC_HDR
     33  0  stevel %
     34  0  stevel %#pragma ident	"%Z%%M%	%I%	%E% SMI"
     35  0  stevel %
     36  0  stevel %/*
     37  0  stevel % * Scale factor for scaled integers used to count load averages.
     38  0  stevel % */
     39  0  stevel %#ifndef	FSCALE
     40  0  stevel %#define	FSHIFT	8	/* bits to right of fixed binary point */
     41  0  stevel %#define	FSCALE	(1<<FSHIFT)
     42  0  stevel %#endif	/* ndef FSCALE */
     43  0  stevel %
     44  0  stevel %#ifndef DST_NONE
     45  0  stevel %#include <sys/time.h>		/* The time struct defined below is	*/
     46  0  stevel %#endif				/* meant to match struct timeval.	*/
     47  0  stevel %
     48  0  stevel %
     49  0  stevel %
     50  0  stevel %
     51  0  stevel %
     52  0  stevel %
     53  0  stevel #elif RPC_SVC
     54  0  stevel %
     55  0  stevel %/*
     56  0  stevel % *  Server side stub routines for the rstat daemon
     57  0  stevel % */
     58  0  stevel %
     59  0  stevel #elif RPC_CLNT
     60  0  stevel %
     61  0  stevel %/*
     62  0  stevel % *  Client side stub routines for the rstat daemon
     63  0  stevel % */
     64  0  stevel %
     65  0  stevel #elif RPC_XDR
     66  0  stevel %/*
     67  0  stevel % * XDR routines for the rstat daemon, rup and perfmeter.
     68  0  stevel % */
     69  0  stevel %
     70  0  stevel %/*
     71  0  stevel % * xdr_timeval was used in previous releases.
     72  0  stevel % */
     73  0  stevel %
     74  0  stevel %bool_t
     75  0  stevel %#ifdef __STDC__
     76  0  stevel %xdr_timeval(XDR *xdrs, struct timeval *tvp)
     77  0  stevel %#else /* K&R C */
     78  0  stevel %xdr_timeval(xdrs, tvp)
     79  0  stevel %	XDR *xdrs;
     80  0  stevel %	struct timeval *tvp;
     81  0  stevel %#endif /* K&R C */
     82  0  stevel %{
     83  0  stevel %	return (xdr_rstat_timeval(xdrs, (rstat_timeval *)tvp));
     84  0  stevel %}
     85  0  stevel 
     86  0  stevel %
     87  0  stevel #endif
     88  0  stevel 
     89  0  stevel const RSTAT_CPUSTATES = 4;
     90  0  stevel const RSTAT_DK_NDRIVE = 4;
     91  0  stevel 
     92  0  stevel /*
     93  0  stevel  * the cpu stat values
     94  0  stevel  */
     95  0  stevel 
     96  0  stevel const RSTAT_CPU_USER = 0;
     97  0  stevel const RSTAT_CPU_NICE = 1;
     98  0  stevel const RSTAT_CPU_SYS = 2;
     99  0  stevel const RSTAT_CPU_IDLE = 3;
    100  0  stevel 
    101  0  stevel /*
    102  0  stevel  * GMT since 0:00, January 1, 1970
    103  0  stevel  */
    104  0  stevel struct rstat_timeval {
    105  0  stevel 	int tv_sec;	/* seconds */
    106  0  stevel 	int tv_usec;	/* and microseconds */
    107  0  stevel };
    108  0  stevel 
    109  0  stevel struct statsvar {				/* RSTATVERS_VAR */
    110  0  stevel 	int cp_time<>; 		/* variable number of CPU states */
    111  0  stevel 	int dk_xfer<>;		/* variable number of disks */
    112  0  stevel 	unsigned v_pgpgin;	/* these are cumulative sum */
    113  0  stevel 	unsigned v_pgpgout;
    114  0  stevel 	unsigned v_pswpin;
    115  0  stevel 	unsigned v_pswpout;
    116  0  stevel 	unsigned v_intr;
    117  0  stevel 	int if_ipackets;
    118  0  stevel 	int if_ierrors;
    119  0  stevel 	int if_opackets;
    120  0  stevel 	int if_oerrors;
    121  0  stevel 	int if_collisions;
    122  0  stevel 	unsigned v_swtch;
    123  0  stevel 	int avenrun[3];
    124  0  stevel 	rstat_timeval boottime;
    125  0  stevel 	rstat_timeval curtime;
    126  0  stevel };
    127  0  stevel 
    128  0  stevel struct statstime {				/* RSTATVERS_TIME */
    129  0  stevel 	int cp_time[RSTAT_CPUSTATES];
    130  0  stevel 	int dk_xfer[RSTAT_DK_NDRIVE];
    131  0  stevel 	unsigned int v_pgpgin;	/* these are cumulative sum */
    132  0  stevel 	unsigned int v_pgpgout;
    133  0  stevel 	unsigned int v_pswpin;
    134  0  stevel 	unsigned int v_pswpout;
    135  0  stevel 	unsigned int v_intr;
    136  0  stevel 	int if_ipackets;
    137  0  stevel 	int if_ierrors;
    138  0  stevel 	int if_oerrors;
    139  0  stevel 	int if_collisions;
    140  0  stevel 	unsigned int v_swtch;
    141  0  stevel 	int avenrun[3];
    142  0  stevel 	rstat_timeval boottime;
    143  0  stevel 	rstat_timeval curtime;
    144  0  stevel 	int if_opackets;
    145  0  stevel };
    146  0  stevel 
    147  0  stevel program RSTATPROG {
    148  0  stevel         /*
    149  0  stevel          * Version 4 allows for variable number of disk and RSTAT_CPU states.
    150  0  stevel          */
    151  0  stevel 	version RSTATVERS_VAR {
    152  0  stevel 		statsvar
    153  0  stevel 		RSTATPROC_STATS (void) = 1;
    154  0  stevel 		unsigned int
    155  0  stevel 		RSTATPROC_HAVEDISK (void) = 2;
    156  0  stevel 	} = 4;
    157  0  stevel 	/*
    158  0  stevel 	 * Newest version includes current time and context switching info
    159  0  stevel 	 */
    160  0  stevel 	version RSTATVERS_TIME {
    161  0  stevel 		statstime
    162  0  stevel 		RSTATPROC_STATS(void) = 1;
    163  0  stevel 		unsigned int
    164  0  stevel 		RSTATPROC_HAVEDISK(void) = 2;
    165  0  stevel 	} = 3;
    166  0  stevel } = 100001;
    167  0  stevel 
    168  0  stevel #ifdef RPC_HDR
    169  0  stevel %
    170  0  stevel %#if defined(__STDC__) || defined(__cplusplus)
    171  0  stevel %enum clnt_stat rstat(char *, struct statstime *);
    172  0  stevel %int havedisk(char *);
    173  0  stevel %#else
    174  0  stevel %enum clnt_stat rstat();
    175  0  stevel %int havedisk();
    176  0  stevel %#endif
    177  0  stevel %
    178  0  stevel #endif
    179