Interrupt API change

Scott Long scottl at freebsd.org
Fri Jan 9 11:34:51 PST 2004


Daniel Eischen wrote:
> 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 ?
> 
> 
> 

Yes, right after I hit the Send button I realized that I had forgotten
to mention this.  There will be an enumeration of return codes, but I
haven't thought up a good name for them yet.

Scott



More information about the freebsd-arch mailing list