Name

struct irq_data — per irq and irq chip data passed down to chip functions

Synopsis

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;
#ifdef CONFIG_IRQ_DOMAIN_HIERARCHY
  struct irq_data * parent_data;
#endif
  void * handler_data;
  void * chip_data;
  struct msi_desc * msi_desc;
  cpumask_var_t affinity;
};  

Members

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.

parent_data

pointer to parent struct irq_data to support hierarchy irq_domain

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

Description

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.