blob: 13754f8135894a717fc710a1637113ffee756a24 [file] [log] [blame]
Thomas Gleixnerdd3a1db2008-10-16 18:20:58 +02001#ifndef _LINUX_IRQNR_H
2#define _LINUX_IRQNR_H
3
4#ifndef CONFIG_GENERIC_HARDIRQS
5#include <asm/irq.h>
6# define nr_irqs NR_IRQS
7
8# define for_each_irq_desc(irq, desc) \
9 for (irq = 0; irq < nr_irqs; irq++)
Thomas Gleixnerdd3a1db2008-10-16 18:20:58 +020010
Yinghai Lu240d3672008-12-08 14:06:17 -080011# define for_each_irq_desc_reverse(irq, desc) \
12 for (irq = nr_irqs - 1; irq >= 0; irq--)
13#else
14#ifndef CONFIG_SPARSE_IRQ
15
16struct irq_desc;
17extern int nr_irqs;
18# define for_each_irq_desc(irq, desc) \
19 for (irq = 0, desc = irq_desc; irq < nr_irqs; irq++, desc++)
20# define for_each_irq_desc_reverse(irq, desc) \
21 for (irq = nr_irqs - 1, desc = irq_desc + (nr_irqs - 1); \
22 irq >= 0; irq--, desc--)
Thomas Gleixnerdd3a1db2008-10-16 18:20:58 +020023#endif
Yinghai Lu240d3672008-12-08 14:06:17 -080024#endif
25
26#define for_each_irq_nr(irq) \
27 for (irq = 0; irq < nr_irqs; irq++)
Thomas Gleixnerdd3a1db2008-10-16 18:20:58 +020028
Thomas Gleixnerdd3a1db2008-10-16 18:20:58 +020029#endif