>> 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". _______________________________________________ driver-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/driver-discuss
