Interrupt API change
Daniel Eischen
eischen at vigrid.com
Fri Jan 9 11:28:49 PST 2004
On Fri, 9 Jan 2004, Scott Long wrote:
> All,
>
> At the September DevSummit, Peter Wemm proposed changing the device
> driver API so that interrupt routines return an INT instead of a VOID.
> The primary purpose of this is two-fold. The first is so interrupt
> handlers can communicate back to the low-level interrupt routines
> whether or not they were able to handle the interrupt. Heuristics
> can then be built on this information to better detect things like
> interrupt storms. This change also paves the way for the proposal
> to make interrupts be multi-tiered. The first level interrupt handler
> can relay back whether it wants the second-level handler to be run
> (similar to filter interrupt handlers in Max OS X).
>
> I'm not ready to go in the multi-level interrupt direction just yet,
> but changing the API now will help that later if needed. The change
> will consist of changing the driver_intr_t typedef in /sys/sys/bus.h
> to return an int, and then doing a sweep of the entire tree. I expect
> no functional change from this right now.
Coming from a background in Solaris device drivers, I think
is a good idea :) Can I suggest that instead of just returning
0 or non-zero, that you use something more indicative like
INTR_CLAIMED / INTR_UNCLAIMED ?
More information about the freebsd-arch
mailing list