struct irq_desc — interrupt descriptor
struct irq_desc { unsigned int irq; struct timer_rand_state * timer_rand_state; unsigned int * kstat_irqs; #ifdef CONFIG_INTR_REMAP struct irq_2_iommu * irq_2_iommu; #endif 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 long last_unhandled; unsigned int irqs_unhandled; spinlock_t lock; #ifdef CONFIG_SMP cpumask_var_t affinity; unsigned int node; #ifdef CONFIG_GENERIC_PENDING_IRQ cpumask_var_t pending_mask; #endif #endif atomic_t threads_active; wait_queue_head_t wait_for_threads; #ifdef CONFIG_PROC_FS struct proc_dir_entry * dir; #endif const char * name; };
interrupt number for this descriptor
pointer to timer rand state struct
irq stats per cpu
iommu with this irq
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
aging timer for unhandled count
stats field for spurious unhandled interrupts
locking for SMP
IRQ affinity on SMP
node index useful for balancing
pending rebalanced interrupts
number of irqaction threads currently running
wait queue for sync_irq to wait for threaded handlers
/proc/irq/ procfs entry
flow handler name for /proc/interrupts output