cvs commit: src/sys/dev/em if_em.c if_em.h

Scott Long scottl at samsco.org
Thu Jan 12 16:36:58 PST 2006


Nate Lawson wrote:
> Scott Long wrote:
> 
>> Andrew Gallatin wrote:
>>
>>> Scott Long writes:
>>>  > However, taskqueues are really just a proof of concept for what I 
>>> really
>>>  > want, which is to allow drivers to register both a fast handler 
>>> and an
>>>  > ithread handler.  For drivers doing this, the ithread would be 
>>> private
>>>
>>> Ah, the darwin / MacOSX model.  That would be very cool.
>>
>>
>>
>> Yep.  Working in IOKit was very interesting, and this is one of the few
>> things that transfers well to FreeBSD.  C++ does have a certain elagence
>> for drivers, but the cost of virtual methods in the fast path of the
>> driver and stack is still far too high to justify using it.
> 
> 
> Yeah, that's why newbus is only for configuration but interrupt handlers 
> are called directly.  It's nice to have OO for config and relationships 
> between devices but just direct calls for the fast path.
> 

It's not just the interrupt handlers, everything is abstracted behind 
virtual methods in IOKit.

Scott



More information about the cvs-all mailing list