linux/include/linux/irqnr.h
<<
>>
Prefs
   1#ifndef _LINUX_IRQNR_H
   2#define _LINUX_IRQNR_H
   3
   4/*
   5 * Generic irq_desc iterators:
   6 */
   7#ifdef __KERNEL__
   8
   9#ifndef CONFIG_GENERIC_HARDIRQS
  10#include <asm/irq.h>
  11
  12/*
  13 * Wrappers for non-genirq architectures:
  14 */
  15#define nr_irqs                 NR_IRQS
  16#define irq_to_desc(irq)        (&irq_desc[irq])
  17
  18# define for_each_irq_desc(irq, desc)           \
  19        for (irq = 0; irq < nr_irqs; irq++)
  20
  21# define for_each_irq_desc_reverse(irq, desc)                          \
  22        for (irq = nr_irqs - 1; irq >= 0; irq--)
  23
  24#else /* CONFIG_GENERIC_HARDIRQS */
  25
  26extern int nr_irqs;
  27extern struct irq_desc *irq_to_desc(unsigned int irq);
  28unsigned int irq_get_next_irq(unsigned int offset);
  29
  30# define for_each_irq_desc(irq, desc)                                   \
  31        for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs;           \
  32             irq++, desc = irq_to_desc(irq))                            \
  33                if (!desc)                                              \
  34                        ;                                               \
  35                else
  36
  37
  38# define for_each_irq_desc_reverse(irq, desc)                           \
  39        for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0;      \
  40             irq--, desc = irq_to_desc(irq))                            \
  41                if (!desc)                                              \
  42                        ;                                               \
  43                else
  44
  45#ifdef CONFIG_SMP
  46#define irq_node(irq)   (irq_get_irq_data(irq)->node)
  47#else
  48#define irq_node(irq)   0
  49#endif
  50
  51# define for_each_active_irq(irq)                       \
  52        for (irq = irq_get_next_irq(0); irq < nr_irqs;  \
  53             irq = irq_get_next_irq(irq + 1))
  54
  55#endif /* CONFIG_GENERIC_HARDIRQS */
  56
  57#define for_each_irq_nr(irq)                   \
  58       for (irq = 0; irq < nr_irqs; irq++)
  59
  60#endif /* __KERNEL__ */
  61
  62#endif
  63
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.