xref: /dragonfly/include/rpcsvc/rstat.x (revision ec21d9fb)
1 /*
2  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3  * unrestricted use provided that this legend is included on all tape
4  * media and as a part of the software program in whole or part.  Users
5  * may copy or modify Sun RPC without charge, but are not authorized
6  * to license or distribute it to anyone else except as part of a product or
7  * program developed by the user.
8  *
9  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12  *
13  * Sun RPC is provided with no support and without any obligation on the
14  * part of Sun Microsystems, Inc. to assist in its use, correction,
15  * modification or enhancement.
16  *
17  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19  * OR ANY PART THEREOF.
20  *
21  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22  * or profits or other special, indirect and consequential damages, even if
23  * Sun has been advised of the possibility of such damages.
24  *
25  * Sun Microsystems, Inc.
26  * 2550 Garcia Avenue
27  * Mountain View, California  94043
28  *
29  * @(#)rstat.x 1.2 87/09/18 Copyr 1987 Sun Micro
30  * @(#)rstat.x	2.2 88/08/01 4.0 RPCSRC
31  * $FreeBSD: src/include/rpcsvc/rstat.x,v 1.8 2003/05/04 02:51:42 obrien Exp $
32  * $DragonFly: src/include/rpcsvc/rstat.x,v 1.2 2003/06/17 04:25:58 dillon Exp $
33  */
34 
35 /*
36  * Gather statistics on remote machines
37  */
38 
39 #ifdef RPC_HDR
40 
41 %#ifndef FSCALE
42 %/*
43 % * Scale factor for scaled integers used to count load averages.
44 % */
45 %#define FSHIFT  8               /* bits to right of fixed binary point */
46 %#define FSCALE  (1<<FSHIFT)
47 %
48 %#endif /* ndef FSCALE */
49 
50 #endif
51 
52 const RSTAT_CPUSTATES = 4;
53 const RSTAT_DK_NDRIVE = 4;
54 
55 /*
56  * GMT since 0:00, January 1, 1970
57  */
58 struct rstat_timeval {
59 	unsigned int tv_sec;	/* seconds */
60 	unsigned int tv_usec;	/* and microseconds */
61 };
62 
63 struct statstime {				/* RSTATVERS_TIME */
64 	int cp_time[RSTAT_CPUSTATES];
65 	int dk_xfer[RSTAT_DK_NDRIVE];
66 	unsigned int v_pgpgin;	/* these are cumulative sum */
67 	unsigned int v_pgpgout;
68 	unsigned int v_pswpin;
69 	unsigned int v_pswpout;
70 	unsigned int v_intr;
71 	int if_ipackets;
72 	int if_ierrors;
73 	int if_oerrors;
74 	int if_collisions;
75 	unsigned int v_swtch;
76 	int avenrun[3];         /* scaled by FSCALE */
77 	rstat_timeval boottime;
78 	rstat_timeval curtime;
79 	int if_opackets;
80 };
81 
82 struct statsswtch {			/* RSTATVERS_SWTCH */
83 	int cp_time[RSTAT_CPUSTATES];
84 	int dk_xfer[RSTAT_DK_NDRIVE];
85 	unsigned int v_pgpgin;	/* these are cumulative sum */
86 	unsigned int v_pgpgout;
87 	unsigned int v_pswpin;
88 	unsigned int v_pswpout;
89 	unsigned int v_intr;
90 	int if_ipackets;
91 	int if_ierrors;
92 	int if_oerrors;
93 	int if_collisions;
94 	unsigned int v_swtch;
95 	unsigned int avenrun[3];/* scaled by FSCALE */
96 	rstat_timeval boottime;
97 	int if_opackets;
98 };
99 
100 struct stats {				/* RSTATVERS_ORIG */
101 	int cp_time[RSTAT_CPUSTATES];
102 	int dk_xfer[RSTAT_DK_NDRIVE];
103 	unsigned int v_pgpgin;	/* these are cumulative sum */
104 	unsigned int v_pgpgout;
105 	unsigned int v_pswpin;
106 	unsigned int v_pswpout;
107 	unsigned int v_intr;
108 	int if_ipackets;
109 	int if_ierrors;
110 	int if_oerrors;
111 	int if_collisions;
112 	int if_opackets;
113 };
114 
115 
116 program RSTATPROG {
117 	/*
118 	 * Newest version includes current time and context switching info
119 	 */
120 	version RSTATVERS_TIME {
121 		statstime
122 		RSTATPROC_STATS(void) = 1;
123 
124 		unsigned int
125 		RSTATPROC_HAVEDISK(void) = 2;
126 	} = 3;
127 	/*
128 	 * Does not have current time
129 	 */
130 	version RSTATVERS_SWTCH {
131 		statsswtch
132 		RSTATPROC_STATS(void) = 1;
133 
134 		unsigned int
135 		RSTATPROC_HAVEDISK(void) = 2;
136 	} = 2;
137 	/*
138 	 * Old version has no info about current time or context switching
139 	 */
140 	version RSTATVERS_ORIG {
141 		stats
142 		RSTATPROC_STATS(void) = 1;
143 
144 		unsigned int
145 		RSTATPROC_HAVEDISK(void) = 2;
146 	} = 1;
147 } = 100001;
148 
149 #ifdef RPC_HDR
150 %
151 %enum clnt_stat rstat(char *, struct statstime *);
152 %int havedisk(char *);
153 %
154 #endif
155