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