Index: sys/kern/subr_intr.c =================================================================== --- sys/kern/subr_intr.c +++ sys/kern/subr_intr.c @@ -511,6 +511,17 @@ return (error); } +/* + * Lookup an interrupt source by irq. + */ +struct intr_irqsrc * +intr_isrc_lookup(u_int irq) +{ + if (irq >= intr_nirq) + return (NULL); + return (irq_sources[irq]); +} + #ifdef SMP /* * A support function for a PIC to decide if provided ISRC should be inited Index: sys/sys/intr.h =================================================================== --- sys/sys/intr.h +++ sys/sys/intr.h @@ -102,6 +102,7 @@ int intr_isrc_deregister(struct intr_irqsrc *); int intr_isrc_register(struct intr_irqsrc *, device_t, u_int, const char *, ...) __printflike(4, 5); +struct intr_irqsrc *intr_isrc_lookup(u_int irq); #ifdef SMP bool intr_isrc_init_on_cpu(struct intr_irqsrc *isrc, u_int cpu);