---
name: "struct_irq_desc"
section: "9"
platform: "linux"
package: "linux-manual-2.6.32"
version: "2.6.32-48squeeze6"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/struct_irq_desc"
---

# struct\_irq\_desc(9)

interrupt descriptor

## NAME

struct\_irq\_desc - interrupt descriptor

## SYNOPSIS

```
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;
};
```

## MEMBERS

irq

interrupt number for this descriptor

timer\_rand\_state

pointer to timer rand state struct

kstat\_irqs

irq stats per cpu

irq\_2\_iommu

iommu with this irq

handle\_irq

highlevel irq-events handler \[if NULL, **\_\_do\_IRQ**\]

chip

low level interrupt hardware access

msi\_desc

MSI descriptor

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

action

the irq action chain

status

status information

depth

disable-depth, for nested **irq\_disable** calls

wake\_depth

enable depth, for multiple **set\_irq\_wake** callers

irq\_count

stats field to detect stalled irqs

last\_unhandled

aging timer for unhandled count

irqs\_unhandled

stats field for spurious unhandled interrupts

lock

locking for SMP

affinity

IRQ affinity on SMP

node

node index useful for balancing

pending\_mask

pending rebalanced interrupts

threads\_active

number of irqaction threads currently running

wait\_for\_threads

wait queue for sync\_irq to wait for threaded handlers

dir

/proc/irq/ procfs entry

name

flow handler name for /proc/interrupts output

## AUTHORS

**Thomas Gleixner** \<tglx@linutronix.de\>

Author.

**Ingo Molnar** \<mingo@elte.hu\>

Author.

## COPYRIGHT
