Per irq and irq chip data passed down to chip functions
struct irq_data { u32 mask; unsigned int irq; unsigned long hwirq; unsigned int node; unsigned int state_use_accessors; struct irq_chip * chip; struct irq_domain * domain; void * handler_data; void * chip_data; struct msi_desc * msi_desc; cpumask_var_t affinity; };
mask
precomputed bitmask for accessing the chip registers
irq
interrupt number
hwirq
hardware interrupt number, local to the interrupt domain
node
node index useful for balancing
state_use_accessors
status information for irq chip functions. Use accessor functions to deal with it
chip
low level interrupt hardware access
domain
Interrupt translation domain; responsible for mapping between hwirq number and linux irq number.
handler_data
per-IRQ data for the irq_chip methods
chip_data
platform-specific per-chip private data for the chip methods, to allow shared chip implementations
msi_desc
MSI descriptor
affinity
IRQ affinity on SMP
The fields here need to overlay the ones in irq_desc until we cleaned up the direct references and switched everything over to irq_data.