|
cvsdist |
1d1e2d7 |
--- netkit-rusers-0.15/rpc.rstatd/rstat_proc.c.jbj Wed Feb 10 17:01:01 1999
|
|
cvsdist |
1d1e2d7 |
+++ netkit-rusers-0.15/rpc.rstatd/rstat_proc.c Fri Aug 27 13:00:06 1999
|
|
cvsdist |
1d1e2d7 |
@@ -62,10 +62,10 @@
|
|
cvsdist |
1d1e2d7 |
#define CP_USER 0
|
|
cvsdist |
1d1e2d7 |
#define CP_NICE 1
|
|
cvsdist |
1d1e2d7 |
#define CP_SYS 2
|
|
cvsdist |
1d1e2d7 |
-#define CP_INTR 3
|
|
cvsdist |
1d1e2d7 |
-#define CP_IDLE 4
|
|
cvsdist |
1d1e2d7 |
+#define CP_IDLE 3
|
|
cvsdist |
1d1e2d7 |
+#define CP_INTR 4
|
|
cvsdist |
1d1e2d7 |
#define CPUSTATES 5
|
|
cvsdist |
1d1e2d7 |
-static int cp_xlat[4] = { CP_USER, CP_NICE, CP_SYS, CP_IDLE };
|
|
cvsdist |
1d1e2d7 |
+static int cp_xlat[CPUSTATES] = { CP_USER, CP_NICE, CP_SYS, CP_IDLE };
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
/*
|
|
cvsdist |
1d1e2d7 |
* System wide statistics counters.
|
|
cvsdist |
1d1e2d7 |
@@ -317,10 +317,13 @@
|
|
cvsdist |
1d1e2d7 |
stat_init(void)
|
|
cvsdist |
1d1e2d7 |
{
|
|
cvsdist |
1d1e2d7 |
stat_is_init = 1;
|
|
cvsdist |
1d1e2d7 |
- setup();
|
|
cvsdist |
1d1e2d7 |
+
|
|
cvsdist |
1d1e2d7 |
+ /* Prime the pump */
|
|
cvsdist |
1d1e2d7 |
updatestat(0);
|
|
cvsdist |
1d1e2d7 |
+
|
|
cvsdist |
1d1e2d7 |
(void) signal(SIGALRM, updatestat);
|
|
cvsdist |
1d1e2d7 |
alarm(1);
|
|
cvsdist |
1d1e2d7 |
+ pause();
|
|
cvsdist |
1d1e2d7 |
}
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
statstime *
|
|
cvsdist |
1d1e2d7 |
@@ -361,8 +364,8 @@
|
|
cvsdist |
1d1e2d7 |
(void)&arg; (void)&rqstp;
|
|
cvsdist |
1d1e2d7 |
if (!stat_is_init)
|
|
cvsdist |
1d1e2d7 |
stat_init();
|
|
cvsdist |
1d1e2d7 |
- sincelastreq = 0;
|
|
cvsdist |
1d1e2d7 |
have = havedisk();
|
|
cvsdist |
1d1e2d7 |
+ sincelastreq = 0;
|
|
cvsdist |
1d1e2d7 |
return (&have);
|
|
cvsdist |
1d1e2d7 |
}
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
@@ -391,7 +394,7 @@
|
|
cvsdist |
1d1e2d7 |
};
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
static void
|
|
cvsdist |
1d1e2d7 |
-getstat(unsigned *cuse, unsigned *cice, unsigned *csys, unsigned long *cide,
|
|
cvsdist |
1d1e2d7 |
+getstat(unsigned long *cuse, unsigned long *cice, unsigned long *csys, unsigned long *cide,
|
|
cvsdist |
1d1e2d7 |
unsigned *pin, unsigned *pout, unsigned *sin, unsigned *sout,
|
|
cvsdist |
1d1e2d7 |
unsigned *itot, unsigned *i1, unsigned *ct, struct _ldisk *d)
|
|
cvsdist |
1d1e2d7 |
{
|
|
cvsdist |
1d1e2d7 |
@@ -407,7 +410,7 @@
|
|
cvsdist |
1d1e2d7 |
*itot = 0;
|
|
cvsdist |
1d1e2d7 |
*i1 = 1; /* ensure assert below will fail if the sscanf bombs */
|
|
cvsdist |
1d1e2d7 |
b = strstr(buff, "cpu ");
|
|
cvsdist |
1d1e2d7 |
- sscanf(b, "cpu %u %u %u %lu", cuse, cice, csys, cide);
|
|
cvsdist |
1d1e2d7 |
+ sscanf(b, "cpu %lu %lu %lu %lu", cuse, cice, csys, cide);
|
|
cvsdist |
1d1e2d7 |
b = strstr(buff, "disk ");
|
|
cvsdist |
1d1e2d7 |
sscanf(b, "disk %u %u %u %u", d->xfer+0, d->xfer+1, d->xfer+2, d->xfer+3);
|
|
cvsdist |
1d1e2d7 |
b = strstr(buff, "disk_rio ");
|
|
cvsdist |
1d1e2d7 |
@@ -537,12 +540,17 @@
|
|
cvsdist |
1d1e2d7 |
static int hz;
|
|
cvsdist |
1d1e2d7 |
static struct timeval tm, btm;
|
|
cvsdist |
1d1e2d7 |
static double avrun[3];
|
|
cvsdist |
1d1e2d7 |
-static unsigned int cpu_use[2], cpu_nic[2], cpu_sys[2];
|
|
cvsdist |
1d1e2d7 |
+static unsigned long cpu_use[2], cpu_nic[2], cpu_sys[2];
|
|
cvsdist |
1d1e2d7 |
static unsigned long cpu_idl[2];
|
|
cvsdist |
1d1e2d7 |
static struct _ldisk disk[2];
|
|
cvsdist |
1d1e2d7 |
static unsigned int pgpgin[2], pgpgout[2], pswpin[2], pswpout[2];
|
|
cvsdist |
1d1e2d7 |
static unsigned int inter[2], ticks[2], ctxt[2];
|
|
cvsdist |
1d1e2d7 |
+
|
|
cvsdist |
1d1e2d7 |
+#ifdef NOTYET /* XXX noop to match solaris behavior */
|
|
cvsdist |
1d1e2d7 |
#define _DELTA(_x, _i) ( (_x)[(_i)] - (_x)[!(_i)] )
|
|
cvsdist |
1d1e2d7 |
+#else
|
|
cvsdist |
1d1e2d7 |
+#define _DELTA(_x, _i) ( (_x)[(_i)] )
|
|
cvsdist |
1d1e2d7 |
+#endif
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
extern int uptime(double *, double *);
|
|
cvsdist |
1d1e2d7 |
extern void loadavg(double *, double *, double *);
|
|
cvsdist |
1d1e2d7 |
@@ -568,7 +576,6 @@
|
|
cvsdist |
1d1e2d7 |
getstat(cpu_use+tog,cpu_nic+tog,cpu_sys+tog,cpu_idl+tog,
|
|
cvsdist |
1d1e2d7 |
pgpgin+tog,pgpgout+tog,pswpin+tog,pswpout+tog,
|
|
cvsdist |
1d1e2d7 |
inter+tog,ticks+tog,ctxt+tog, disk+tog);
|
|
cvsdist |
1d1e2d7 |
- tog = !tog;
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
dk_ndrive = 0;
|
|
cvsdist |
1d1e2d7 |
for (i = 0; i < 4; i++) {
|
|
cvsdist |
1d1e2d7 |
@@ -578,11 +585,11 @@
|
|
cvsdist |
1d1e2d7 |
dk_ndrive++;
|
|
cvsdist |
1d1e2d7 |
}
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
- cur.cp_time[CP_USER] = _DELTA(cpu_use, tog);
|
|
cvsdist |
1d1e2d7 |
- cur.cp_time[CP_NICE] = _DELTA(cpu_nic, tog);
|
|
cvsdist |
1d1e2d7 |
- cur.cp_time[CP_SYS] = _DELTA(cpu_sys, tog);
|
|
cvsdist |
1d1e2d7 |
+ cur.cp_time[CP_USER] = (_DELTA(cpu_use, tog)) % UINT_MAX;
|
|
cvsdist |
1d1e2d7 |
+ cur.cp_time[CP_NICE] = (_DELTA(cpu_nic, tog)) % UINT_MAX;
|
|
cvsdist |
1d1e2d7 |
+ cur.cp_time[CP_SYS] = (_DELTA(cpu_sys, tog)) % UINT_MAX;
|
|
cvsdist |
1d1e2d7 |
cur.cp_time[CP_INTR] = 0;
|
|
cvsdist |
1d1e2d7 |
- cur.cp_time[CP_SYS] = (_DELTA(cpu_idl, tog)) % UINT_MAX;
|
|
cvsdist |
1d1e2d7 |
+ cur.cp_time[CP_IDLE] = (_DELTA(cpu_idl, tog)) % UINT_MAX;
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
cnt.v_pgpgin = pgpgin[tog];
|
|
cvsdist |
1d1e2d7 |
cnt.v_pgpgout = pgpgout[tog];
|
|
cvsdist |
1d1e2d7 |
@@ -590,6 +597,7 @@
|
|
cvsdist |
1d1e2d7 |
cnt.v_pswpout = pswpout[tog];
|
|
cvsdist |
1d1e2d7 |
cnt.v_intr = inter[tog];
|
|
cvsdist |
1d1e2d7 |
cnt.v_swtch = ctxt[tog];
|
|
cvsdist |
1d1e2d7 |
+ tog = !tog;
|
|
cvsdist |
1d1e2d7 |
}
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
static void
|
|
cvsdist |
1d1e2d7 |
@@ -597,11 +605,10 @@
|
|
cvsdist |
1d1e2d7 |
{
|
|
cvsdist |
1d1e2d7 |
int i, save_errno = errno;
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
- (void)&sign;;
|
|
cvsdist |
1d1e2d7 |
#ifdef DEBUG
|
|
cvsdist |
1d1e2d7 |
syslog(LOG_DEBUG, "entering updatestat");
|
|
cvsdist |
1d1e2d7 |
#endif
|
|
cvsdist |
1d1e2d7 |
- if (sincelastreq >= closedown) {
|
|
cvsdist |
1d1e2d7 |
+ if (signo != 0 && sincelastreq >= closedown) {
|
|
cvsdist |
1d1e2d7 |
#ifdef DEBUG
|
|
cvsdist |
1d1e2d7 |
syslog(LOG_DEBUG, "about to closedown");
|
|
cvsdist |
1d1e2d7 |
#endif
|
|
cvsdist |
1d1e2d7 |
@@ -678,15 +685,6 @@
|
|
cvsdist |
1d1e2d7 |
alarm(1);
|
|
cvsdist |
1d1e2d7 |
errno = save_errno;
|
|
cvsdist |
1d1e2d7 |
}
|
|
cvsdist |
1d1e2d7 |
-
|
|
cvsdist |
1d1e2d7 |
-static void
|
|
cvsdist |
1d1e2d7 |
-setup(void)
|
|
cvsdist |
1d1e2d7 |
-{
|
|
cvsdist |
1d1e2d7 |
- /* Prime the pump */
|
|
cvsdist |
1d1e2d7 |
- convert_stats();
|
|
cvsdist |
1d1e2d7 |
- sleep(1);
|
|
cvsdist |
1d1e2d7 |
-}
|
|
cvsdist |
1d1e2d7 |
-
|
|
cvsdist |
1d1e2d7 |
|
|
cvsdist |
1d1e2d7 |
/*
|
|
cvsdist |
1d1e2d7 |
* returns true if have a disk
|