diff options
author | ian <ian@FreeBSD.org> | 2013-01-19 00:50:12 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2013-01-19 00:50:12 +0000 |
commit | 87dd3ff9a4d64b9a26b151e08efe00bffebf9b88 (patch) | |
tree | 6cbe49297c729b138c137e3a77a8e8b5e2c36593 /sys/arm/include/intr.h | |
parent | a1e34841434a947a5784c4c395e887c0faa16543 (diff) | |
download | FreeBSD-src-87dd3ff9a4d64b9a26b151e08efe00bffebf9b88.zip FreeBSD-src-87dd3ff9a4d64b9a26b151e08efe00bffebf9b88.tar.gz |
Eliminate the need for an intermediate array of indices into the arrays of
interrupt counts and names, by making the names into an array of fixed-length
strings that can be directly indexed. This eliminates extra memory accesses
on every interrupt to increment the counts.
As a side effect, it also fixes a bug that would corrupt the names data
if a name was longer than MAXCOMLEN, which led to incorrect vmstat -i output.
Approved by: cognet (mentor)
Diffstat (limited to 'sys/arm/include/intr.h')
-rw-r--r-- | sys/arm/include/intr.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h index 45e36e9..9392969 100644 --- a/sys/arm/include/intr.h +++ b/sys/arm/include/intr.h @@ -70,6 +70,7 @@ int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); +void arm_intrnames_init(void); void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), void *, int, int, void **); int arm_remove_irqhandler(int, void *); |