diff options
-rw-r--r-- | include/linux/irq.h | 44 |
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 | */ |
47 | struct hw_interrupt_type { | 65 | struct 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 | ||
66 | struct proc_dir_entry; | 84 | struct 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 | */ |