10.7. Quick Reference
These symbols related to interrupt management were introduced in this
chapter:
- #include <linux/interrupt.h>
- int request_irq(unsigned int irq, irqreturn_t (*handler)( ), unsigned long
- flags, const char *dev_name, void *dev_id);
- void free_irq(unsigned int irq, void *dev_id);
-
Calls that register
and
unregister an interrupt handler.
- #include <linux/irq.h.h>
- int can_request_irq(unsigned int irq, unsigned long flags);
-
This function, available on the i386 and x86_64 architectures,
returns a nonzero value if an attempt to allocate the given interrupt
line succeeds.
- #include <asm/signal.h>
- SA_INTERRUPT
- SA_SHIRQ
- SA_SAMPLE_RANDOM
-
Flags for request_irq.
SA_INTERRUPT requests installation of a fast
handler (as opposed to a slow one). SA_SHIRQ
installs a shared handler, and the third flag asserts that interrupt
timestamps can be used to generate system entropy.
- /proc/interrupts
- /proc/stat
-
Filesystem nodes that report information about hardware interrupts
and installed handlers.
- unsigned long probe_irq_on(void);
- int probe_irq_off(unsigned long);
-
Functions used by the driver when it has to probe to determine which
interrupt line is being used by a device. The result of
probe_irq_on must be passed back to
probe_irq_off after the interrupt has been
generated. The return value of probe_irq_off is
the detected interrupt number.
- IRQ_NONE
- IRQ_HANDLED
- IRQ_RETVAL(int x)
-
The possible return values from an interrupt handler, indicating
whether an actual interrupt from the device was present.
- void disable_irq(int irq);
- void disable_irq_nosync(int irq);
- void enable_irq(int irq);
-
A driver can enable and disable interrupt reporting. If the hardware
tries to generate an interrupt while interrupts are disabled, the
interrupt is lost forever. A driver using a shared handler must not
use these functions.
- void local_irq_save(unsigned long flags);
- void local_irq_restore(unsigned long flags);
-
Use local_irq_save to disable interrupts on the
local processor and remember their previous state. The
flags can be passed to
local_irq_restore to restore the previous
interrupt state.
- void local_irq_disable(void);
- void local_irq_enable(void);
-
Functions that unconditionally disable and enable interrupts on the
current processor.
|