version 1.34, 2002/04/29 17:28:12 |
version 1.35, 2002/06/18 00:46:48 |
|
|
struct utmp utmp; |
struct utmp utmp; |
|
|
WINDOW * |
WINDOW * |
openkre() |
openkre(void) |
{ |
{ |
|
|
ut = open(_PATH_UTMP, O_RDONLY); |
ut = open(_PATH_UTMP, O_RDONLY); |
|
|
} |
} |
|
|
void |
void |
closekre(w) |
closekre(WINDOW *w) |
WINDOW *w; |
|
{ |
{ |
|
|
(void) close(ut); |
(void) close(ut); |
|
|
|
|
|
|
static struct nlist namelist[] = { |
static struct nlist namelist[] = { |
#define X_HZ 0 |
#define X_INTRNAMES 0 |
{ "_hz" }, |
|
#define X_INTRNAMES 1 |
|
{ "_intrnames" }, |
{ "_intrnames" }, |
#define X_EINTRNAMES 2 |
#define X_EINTRNAMES 1 |
{ "_eintrnames" }, |
{ "_eintrnames" }, |
#define X_INTRCNT 3 |
#define X_INTRCNT 2 |
{ "_intrcnt" }, |
{ "_intrcnt" }, |
#define X_EINTRCNT 4 |
#define X_EINTRCNT 3 |
{ "_eintrcnt" }, |
{ "_eintrcnt" }, |
#if defined(__i386__) |
#if defined(__i386__) |
#define X_INTRHAND 5 |
#define X_INTRHAND 4 |
{ "_intrhand" }, |
{ "_intrhand" }, |
#endif |
#endif |
{ "" }, |
{ "" }, |
|
|
#define DRIVESPACE 45 /* max space for drives */ |
#define DRIVESPACE 45 /* max space for drives */ |
|
|
int |
int |
initkre() |
initkre(void) |
{ |
{ |
char *intrnamebuf, *cp; |
char *intrnamebuf, *cp; |
int i, ret; |
int i, ret; |
|
|
} |
} |
|
|
void |
void |
fetchkre() |
fetchkre(void) |
{ |
{ |
time_t now; |
time_t now; |
|
|
|
|
} |
} |
|
|
void |
void |
labelkre() |
labelkre(void) |
{ |
{ |
int i, j, l; |
int i, j, l; |
|
|
|
|
} |
} |
} |
} |
|
|
#define X(fld) {t=s.fld[i]; s.fld[i]-=s1.fld[i]; if(state==TIME) s1.fld[i]=t;} |
#define X(fld) {t=s.fld[i]; s.fld[i]-=s1.fld[i]; if (state==TIME) s1.fld[i]=t;} |
#define Y(fld) {t = s.fld; s.fld -= s1.fld; if(state == TIME) s1.fld = t;} |
#define Y(fld) {t = s.fld; s.fld -= s1.fld; if (state == TIME) s1.fld = t;} |
#define Z(fld) {t = s.nchstats.fld; s.nchstats.fld -= s1.nchstats.fld; \ |
#define Z(fld) {t = s.nchstats.fld; s.nchstats.fld -= s1.nchstats.fld; \ |
if(state == TIME) s1.nchstats.fld = t;} |
if (state == TIME) s1.nchstats.fld = t;} |
#define PUTRATE(fld, l, c, w) \ |
#define PUTRATE(fld, l, c, w) \ |
Y(fld); \ |
Y(fld); \ |
putint((int)((float)s.fld/etime + 0.5), l, c, w) |
putint((int)((float)s.fld/etime + 0.5), l, c, w) |
|
|
static char cpuorder[CPUSTATES] = { CP_SYS, CP_USER, CP_NICE, CP_IDLE }; |
static char cpuorder[CPUSTATES] = { CP_SYS, CP_USER, CP_NICE, CP_IDLE }; |
|
|
void |
void |
showkre() |
showkre(void) |
{ |
{ |
float f1, f2; |
float f1, f2; |
int psiz, inttotal; |
int psiz, inttotal; |
|
|
if (state == TIME) |
if (state == TIME) |
dkswap(); |
dkswap(); |
etime = 0; |
etime = 0; |
for(i = 0; i < CPUSTATES; i++) { |
for (i = 0; i < CPUSTATES; i++) { |
X(time); |
X(time); |
etime += s.time[i]; |
etime += s.time[i]; |
} |
} |
|
|
c += 1 + l; |
c += 1 + l; |
dinfo(i, c); |
dinfo(i, c); |
} |
} |
/* and pad the DRIVESPACE */ |
/* and pad the DRIVESPACE */ |
l = DRIVESPACE - c; |
l = DRIVESPACE - c; |
for (i = 0; i < 5; i++) |
for (i = 0; i < 5; i++) |
mvprintw(DISKROW + i, DISKCOL + 5 + c, "%*s", l, ""); |
mvprintw(DISKROW + i, DISKCOL + 5 + c, "%*s", l, ""); |
|
|
} |
} |
|
|
int |
int |
cmdkre(cmd, args) |
cmdkre(char *cmd, char *args) |
char *cmd, *args; |
|
{ |
{ |
|
|
if (prefix(cmd, "run")) { |
if (prefix(cmd, "run")) { |
|
|
|
|
/* calculate number of users on the system */ |
/* calculate number of users on the system */ |
static int |
static int |
ucount() |
ucount(void) |
{ |
{ |
int nusers = 0; |
int nusers = 0; |
|
|
|
|
} |
} |
|
|
static float |
static float |
cputime(indx) |
cputime(int indx) |
int indx; |
|
{ |
{ |
double t; |
double t; |
int i; |
int i; |
|
|
} |
} |
|
|
static void |
static void |
putint(n, l, c, w) |
putint(int n, int l, int c, int w) |
int n, l, c, w; |
|
{ |
{ |
char b[128]; |
char b[128]; |
|
|
|
|
} |
} |
|
|
static void |
static void |
putfloat(f, l, c, w, d, nz) |
putfloat(double f, int l, int c, int w, int d, int nz) |
double f; |
|
int l, c, w, d, nz; |
|
{ |
{ |
char b[128]; |
char b[128]; |
|
|
|
|
} |
} |
|
|
static void |
static void |
getinfo(s, st) |
getinfo(struct Info *s, enum state st) |
struct Info *s; |
|
enum state st; |
|
{ |
{ |
static int cp_time_mib[] = { CTL_KERN, KERN_CPTIME }; |
static int cp_time_mib[] = { CTL_KERN, KERN_CPTIME }; |
static int nchstats_mib[2] = { CTL_KERN, KERN_NCHSTATS }; |
static int nchstats_mib[2] = { CTL_KERN, KERN_NCHSTATS }; |
|
|
} |
} |
|
|
static void |
static void |
allocinfo(s) |
allocinfo(struct Info *s) |
struct Info *s; |
|
{ |
{ |
|
|
s->intrcnt = (long *) malloc(nintr * sizeof(long)); |
s->intrcnt = (long *) malloc(nintr * sizeof(long)); |
|
|
} |
} |
|
|
static void |
static void |
copyinfo(from, to) |
copyinfo(struct Info *from, struct Info *to) |
struct Info *from, *to; |
|
{ |
{ |
long *intrcnt; |
long *intrcnt; |
|
|
|
|
} |
} |
|
|
static void |
static void |
dinfo(dn, c) |
dinfo(int dn, int c) |
int dn, c; |
|
{ |
{ |
double words, atime; |
double words, atime; |
|
|