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
