turns on IRQ detection. It operates by enabling all interrupts which have
no handlers, while keeping the handlers for those interrupts NULL. The
kernel's generic interrupt handling routine will disable these IRQs when
an interrupt is received on them.
adds each of these IRQ numbers to a vector which it will return. It waits
approximately 100ms for any spurious interrupts that may occur, and masks
these from its vector; it then returns this vector to its caller.
tests an internal list of enabled IRQs against its
parameter, which should be the value returned by the last
This function basically detects which IRQs have been switched off, and thus
which ones have received interrupts.
This explanation may seem a bit confusing, so here is an example of code
the mythical FUBAR 2000 driver could use to probe for IRQs:
returns a bitmap of all unhandled IRQs (except those which are receiving
spurious interrupts). This value should only be used as a parameter to
the next call to
returns the IRQ number of whichever unhandled interrupt has occurred since
If no interrupts have occurred on any of the marked IRQs, 0 is returned;
if interrupts have occurred on more than one of these IRQs, -1 is returned.
Linux 1.2+. These functions are not available on m68k-based machines.