Date: Fri, 09 Jan 2004 12:33:07 -0700 From: Scott Long <scottl@freebsd.org> To: Daniel Eischen <eischen@vigrid.com> Cc: arch@FreeBSD.org Subject: Re: Interrupt API change Message-ID: <3FFF01F3.7070700@freebsd.org> In-Reply-To: <Pine.GSO.4.10.10401091425550.10482-100000@pcnet5.pcnet.com> References: <Pine.GSO.4.10.10401091425550.10482-100000@pcnet5.pcnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FFF01F3.7070700>