Name

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

Synopsis

struct irq_data {
  u32 mask;
  unsigned int irq;
  unsigned long hwirq;
  unsigned int node;
  struct irq_common_data * common;
  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

common

point to data shared by all irqchips

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.