cvs commit: src/sys/amd64/amd64 intr_machdep.c src/sys/i386/i386 intr_machdep.c src/sys/kern kern_intr.c src/sys/sys interrupt.h

John-Mark Gurney gurney_j at resnet.uoregon.edu
Mon May 7 20:53:25 UTC 2007


John Baldwin wrote this message on Mon, May 07, 2007 at 13:53 -0400:
> On Sunday 06 May 2007 03:10:27 pm Paolo Pisati wrote:
> > On Sun, May 06, 2007 at 10:44:26AM -0700, John-Mark Gurney wrote:
> > > Paolo Pisati wrote this message on Sun, May 06, 2007 at 17:02 +0000:
> > > >   Modified files:
> > > >     sys/amd64/amd64      intr_machdep.c 
> > > >     sys/i386/i386        intr_machdep.c 
> > > >     sys/kern             kern_intr.c 
> > > >     sys/sys              interrupt.h 
> > > >   Log:
> > > >   Bring in the reminaing bits to make interrupt filtering work:
> > > 
> > > When are we going to see man page updates to document this new feature?
> > 
> > didn't prepare any patch for man pages cause the support for some
> > archs is still missing, but i can do that if requested.
> >  
> > > Also, you forgot to update sys/sys/bus.h's comments? or did you fix
> > > the code to behave like the comments?
> > 
> > you mean this comment:
> > 
> > --------8<--------8<--------8<--------8<--------8<--------8<--------
> > 
> > /**
> >  * @brief Driver interrupt filter return values
> >  *
> >  * If a driver provides an interrupt filter routine it must return an
> >  * integer consisting of oring together zero or more of the following
> >  * flags:
> >  *
> >  *      FILTER_STRAY    - this device did not trigger the interrupt
> >  *      FILTER_HANDLED  - the interrupt has been fully handled and can be 
> EOId
> >  *      FILTER_SCHEDULE_THREAD - the threaded interrupt handler should be
> >  *                        scheduled to execute
> >  *
> >  * If the driver does not provide a filter, then the interrupt code will
> >  * act is if the filter had returned FILTER_SCHEDULE_THREAD.  Note that it
> >  * is illegal to specify any other flag with FILTER_STRAY and that it is
> >  * illegal to not specify either of FILTER_HANDLED or FILTER_SCHEDULE_THREAD
> >  * if FILTER_STRAY is not specified.
> >  */
> > #define FILTER_STRAY            0x01
> > #define FILTER_HANDLED          0x02
> > #define FILTER_SCHEDULE_THREAD  0x04
> 
> My suggestion on this a while back btw was to convert this from a bitmask to 
> an "enum" and have FILTER_SCHEDULE_THREAD be 3 and imply FILTER_HANDLED, and 
> filters return 1 of the 3 values.

That's fine w/ me..  as long as it's documented as such...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the cvs-src mailing list