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 | */ |
