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