version 1.93, 2004/11/28 14:05:24 |
version 1.94, 2004/12/24 22:38:22 |
|
|
{ "_nselcoll" }, |
{ "_nselcoll" }, |
#define X_POOLHEAD 7 /* sysctl */ |
#define X_POOLHEAD 7 /* sysctl */ |
{ "_pool_head" }, |
{ "_pool_head" }, |
#define X_ALLEVENTS 8 /* no sysctl */ |
#define X_END 8 |
{ "_allevents" }, |
|
#define X_END 9 /* no sysctl */ |
|
{ "" }, |
{ "" }, |
}; |
}; |
|
|
|
|
void |
void |
dointr(void) |
dointr(void) |
{ |
{ |
struct evcntlist allevents; |
|
struct evcnt evcnt, *evptr; |
|
struct device dev; |
struct device dev; |
|
|
time_t uptime; |
time_t uptime; |
|
|
inttotal += cnt; |
inttotal += cnt; |
} |
} |
|
|
kread(X_ALLEVENTS, &allevents, sizeof allevents); |
|
evptr = allevents.tqh_first; |
|
while (evptr) { |
|
if (kvm_read(kd, (long)evptr, (void *)&evcnt, |
|
sizeof evcnt) != sizeof evcnt) |
|
errx(1, "event chain trashed: %s", kvm_geterr(kd)); |
|
if (strcmp(evcnt.ev_name, "intr") == 0) { |
|
if (kvm_read(kd, (long)evcnt.ev_dev, (void *)&dev, |
|
sizeof dev) != sizeof dev) |
|
errx(1, "event chain trashed: %s", kvm_geterr(kd)); |
|
if (evcnt.ev_count) |
|
(void)printf("%-16.16s %20llu %8llu\n", |
|
dev.dv_xname, |
|
evcnt.ev_count, evcnt.ev_count / uptime); |
|
inttotal += evcnt.ev_count; |
|
} |
|
evptr = evcnt.ev_list.tqe_next; |
|
} |
|
(void)printf("%-16s %20llu %8llu\n", "Total", inttotal, |
(void)printf("%-16s %20llu %8llu\n", "Total", inttotal, |
inttotal / uptime); |
inttotal / uptime); |
} |
} |