struct irq_desc — interrupt descriptor
struct irq_desc { irq_flow_handler_t handle_irq; struct irq_chip * chip; struct msi_desc * msi_desc; void * handler_data; void * chip_data; struct irqaction * action; unsigned int status; unsigned int depth; unsigned int wake_depth; unsigned int irq_count; unsigned int irqs_unhandled; unsigned long last_unhandled; spinlock_t lock; #ifdef CONFIG_SMP cpumask_t affinity; unsigned int cpu; #endif #if defined(CONFIG_GENERIC_PENDING_IRQ) || defined(CONFIG_IRQBALANCE) cpumask_t pending_mask; #endif #ifdef CONFIG_PROC_FS struct proc_dir_entry * dir; #endif const char * name; };
highlevel irq-events handler [if NULL, __do_IRQ
]
low level interrupt hardware access
MSI descriptor
per-IRQ data for the irq_chip methods
platform-specific per-chip private data for the chip methods, to allow shared chip implementations
the irq action chain
status information
disable-depth, for nested irq_disable
calls
enable depth, for multiple set_irq_wake
callers
stats field to detect stalled irqs
stats field for spurious unhandled interrupts
aging timer for unhandled count
locking for SMP
IRQ affinity on SMP
cpu index useful for balancing
pending rebalanced interrupts
/proc/irq/ procfs entry
flow handler name for /proc/interrupts output