take mux's fix to the next level, scan the names and make the field larger
as necessary... on sparcs where: atapci0 vec1996 is a bit too long
This commit is contained in:
parent
7742522f99
commit
2a6886b365
@ -729,7 +729,9 @@ dointr()
|
|||||||
u_long *intrcnt, uptime;
|
u_long *intrcnt, uptime;
|
||||||
u_int64_t inttotal;
|
u_int64_t inttotal;
|
||||||
int nintr, inamlen;
|
int nintr, inamlen;
|
||||||
char *intrname;
|
int i, istrnamlen;
|
||||||
|
size_t clen;
|
||||||
|
char *intrname, *tintrname;
|
||||||
|
|
||||||
uptime = getuptime();
|
uptime = getuptime();
|
||||||
nintr = namelist[X_EINTRCNT].n_value - namelist[X_INTRCNT].n_value;
|
nintr = namelist[X_EINTRCNT].n_value - namelist[X_INTRCNT].n_value;
|
||||||
@ -741,17 +743,26 @@ dointr()
|
|||||||
errx(1, "malloc");
|
errx(1, "malloc");
|
||||||
kread(X_INTRCNT, intrcnt, (size_t)nintr);
|
kread(X_INTRCNT, intrcnt, (size_t)nintr);
|
||||||
kread(X_INTRNAMES, intrname, (size_t)inamlen);
|
kread(X_INTRNAMES, intrname, (size_t)inamlen);
|
||||||
(void)printf("%-14s %20s %10s\n", "interrupt", "total", "rate");
|
tintrname = intrname;
|
||||||
|
istrnamlen = 14;
|
||||||
|
for (i = 0; i < nintr; i++) {
|
||||||
|
clen = strlen(tintrname);
|
||||||
|
if (clen > istrnamlen)
|
||||||
|
istrnamlen = clen;
|
||||||
|
tintrname += clen + 1;
|
||||||
|
}
|
||||||
|
(void)printf("%-*s %20s %10s\n", istrnamlen, "interrupt", "total",
|
||||||
|
"rate");
|
||||||
inttotal = 0;
|
inttotal = 0;
|
||||||
nintr /= sizeof(long);
|
nintr /= sizeof(long);
|
||||||
while (--nintr >= 0) {
|
while (--nintr >= 0) {
|
||||||
if (*intrcnt)
|
if (*intrcnt)
|
||||||
(void)printf("%-14s %20lu %10lu\n", intrname,
|
(void)printf("%-*s %20lu %10lu\n", istrnamlen, intrname,
|
||||||
*intrcnt, *intrcnt / uptime);
|
*intrcnt, *intrcnt / uptime);
|
||||||
intrname += strlen(intrname) + 1;
|
intrname += strlen(intrname) + 1;
|
||||||
inttotal += *intrcnt++;
|
inttotal += *intrcnt++;
|
||||||
}
|
}
|
||||||
(void)printf("%-14s %20llu %10llu\n", "Total", inttotal,
|
(void)printf("%-*s %20llu %10llu\n", istrnamlen, "Total", inttotal,
|
||||||
inttotal / (u_int64_t) uptime);
|
inttotal / (u_int64_t) uptime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user