aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2006-06-29 05:24:45 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-29 13:26:23 -0400
commit8fee5c36177ee098fa41f5fe72999609fef4df6b (patch)
tree92ebb57caa3d0a1c924cab9fc3f2fdaf1a38d382
parentc0ad90a32fb60f4129d0e24dfd5fd7128e2e09f2 (diff)
[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>
-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 @@
40# define CHECK_IRQ_PER_CPU(var) 0 40# define CHECK_IRQ_PER_CPU(var) 0
41#endif 41#endif
42 42
43/* 43/**
44 * Interrupt controller descriptor. This is all we need 44 * struct hw_interrupt_type - hardware interrupt type descriptor
45 * to describe about the low-level hardware. 45 *
46 * @name: name for /proc/interrupts
47 * @startup: start up the interrupt (defaults to ->enable if NULL)
48 * @shutdown: shut down the interrupt (defaults to ->disable if NULL)
49 * @enable: enable the interrupt (defaults to chip->unmask if NULL)
50 * @disable: disable the interrupt (defaults to chip->mask if NULL)
51 * @handle_irq: irq flow handler called from the arch IRQ glue code
52 * @ack: start of a new interrupt
53 * @mask: mask an interrupt source
54 * @mask_ack: ack and mask an interrupt source
55 * @unmask: unmask an interrupt source
56 * @hold: same interrupt while the handler is running
57 * @end: end of interrupt
58 * @set_affinity: set the CPU affinity on SMP machines
59 * @retrigger: resend an IRQ to the CPU
60 * @set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
61 * @set_wake: enable/disable power-management wake-on of an IRQ
62 *
63 * @release: release function solely used by UML
46 */ 64 */
47struct hw_interrupt_type { 65struct hw_interrupt_type {
48 const char *typename; 66 const char *typename;
@@ -65,10 +83,22 @@ typedef struct hw_interrupt_type hw_irq_controller;
65 83
66struct proc_dir_entry; 84struct proc_dir_entry;
67 85
68/* 86/**
69 * This is the "IRQ descriptor", which contains various information 87 * struct irq_desc - interrupt descriptor
70 * about the irq, including what kind of hardware handling it has, 88 *
71 * whether it is disabled etc etc. 89 * @handler: interrupt type dependent handler functions
90 * @handler_data: data for the type handlers
91 * @action: the irq action chain
92 * @status: status information
93 * @depth: disable-depth, for nested irq_disable() calls
94 * @irq_count: stats field to detect stalled irqs
95 * @irqs_unhandled: stats field for spurious unhandled interrupts
96 * @lock: locking for SMP
97 * @affinity: IRQ affinity on SMP
98 * @pending_mask: pending rebalanced interrupts
99 * @move_irq: need to re-target IRQ destination
100 * @dir: /proc/irq/ procfs entry
101 * @affinity_entry: /proc/irq/smp_affinity procfs entry on SMP
72 * 102 *
73 * Pad this out to 32 bytes for cache and indexing reasons. 103 * Pad this out to 32 bytes for cache and indexing reasons.
74 */ 104 */