Dan Mick wrote:
>>>   Device drivers that have interrupt routines *MUST* understand they 
>>> are suspended so they don't update their hardware, and return 
>>> DDI_INTR_UNCLAIMED, even if they have disabled their own interrupts.  
>>> The only exception, is if there is a single routine for several 
>>> hardware devices, and in that case it is important for the isr to know 
>>> which devices have been suspended, and service interrupts for those 
>>> that have not.
>>>   
>> I am having trouble understanding this idea.... one ISR for multiple 
>> devices?  
> 
> Maybe, but only if they're multiple instances of the same driver (in which 
> case the argument to the ISR distinguishes the particular instance).  The 
> key is "shared interrupt line"; the system will call all ISRs registered 
> for every interrupt line whenever it sees an interrupt on that source, in 
> order.  The return code indicates whether the driver agrees that this 
> hardware interrupt was caused by its hardware, and that it's responsible 
> for dealing with it.
> 
> Imagine a network card and a disk interface on the same "IRQ".

or, more appropriate to the particular case you were asking about: imagine 
four instances of a NIC driver for four cards of the same type, all sharing 
one IRQ (because the hardware is wired incredibly stupidly, but, it can 
happen and must be handled)
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to