aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irq.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2006-06-29 02:24:45 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-29 10:26:23 -0700
commit8fee5c36177ee098fa41f5fe72999609fef4df6b (patch)
tree92ebb57caa3d0a1c924cab9fc3f2fdaf1a38d382 /include/linux/irq.h
parent[PATCH] genirq: add ->retrigger() irq op to consolidate hw_irq_resend() (diff)
downloadlinux-dev-8fee5c36177ee098fa41f5fe72999609fef4df6b.tar.xz
linux-dev-8fee5c36177ee098fa41f5fe72999609fef4df6b.zip
[PATCH] genirq: doc: comment include/linux/irq.h structures
Better document the hw_interrupt_type and irq_desc structures. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h44
1 files changed, 37 insertions, 7 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index e58cfb9c66a3..b2688157b51b 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -40,9 +40,27 @@
# define CHECK_IRQ_PER_CPU(var) 0
#endif
-/*
- * Interrupt controller descriptor. This is all we need
- * to describe about the low-level hardware.
+/**
+ * struct hw_interrupt_type - hardware interrupt type descriptor
+ *
+ * @name: name for /proc/interrupts
+ * @startup: start up the interrupt (defaults to ->enable if NULL)
+ * @shutdown: shut down the interrupt (defaults to ->disable if NULL)
+ * @enable: enable the interrupt (defaults to chip->unmask if NULL)
+ * @disable: disable the interrupt (defaults to chip->mask if NULL)
+ * @handle_irq: irq flow handler called from the arch IRQ glue code
+ * @ack: start of a new interrupt
+ * @mask: mask an interrupt source
+ * @mask_ack: ack and mask an interrupt source
+ * @unmask: unmask an interrupt source
+ * @hold: same interrupt while the handler is running
+ * @end: end of interrupt
+ * @set_affinity: set the CPU affinity on SMP machines
+ * @retrigger: resend an IRQ to the CPU
+ * @set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
+ * @set_wake: enable/disable power-management wake-on of an IRQ
+ *
+ * @release: release function solely used by UML
*/
struct hw_interrupt_type {
const char *typename;
@@ -65,10 +83,22 @@ typedef struct hw_interrupt_type hw_irq_controller;
struct proc_dir_entry;
-/*
- * This is the "IRQ descriptor", which contains various information
- * about the irq, including what kind of hardware handling it has,
- * whether it is disabled etc etc.
+/**
+ * struct irq_desc - interrupt descriptor
+ *
+ * @handler: interrupt type dependent handler functions
+ * @handler_data: data for the type handlers
+ * @action: the irq action chain
+ * @status: status information
+ * @depth: disable-depth, for nested irq_disable() calls
+ * @irq_count: stats field to detect stalled irqs
+ * @irqs_unhandled: stats field for spurious unhandled interrupts
+ * @lock: locking for SMP
+ * @affinity: IRQ affinity on SMP
+ * @pending_mask: pending rebalanced interrupts
+ * @move_irq: need to re-target IRQ destination
+ * @dir: /proc/irq/ procfs entry
+ * @affinity_entry: /proc/irq/smp_affinity procfs entry on SMP
*
* Pad this out to 32 bytes for cache and indexing reasons.
*/