[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Interrupt API change



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 ?