irqnr.h 863 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef _LINUX_IRQNR_H
  2. #define _LINUX_IRQNR_H
  3. /*
  4. * Generic irq_desc iterators:
  5. */
  6. #ifdef __KERNEL__
  7. #ifndef CONFIG_GENERIC_HARDIRQS
  8. #include <asm/irq.h>
  9. # define nr_irqs NR_IRQS
  10. # define for_each_irq_desc(irq, desc) \
  11. for (irq = 0; irq < nr_irqs; irq++)
  12. # define for_each_irq_desc_reverse(irq, desc) \
  13. for (irq = nr_irqs - 1; irq >= 0; irq--)
  14. #else
  15. extern int nr_irqs;
  16. #ifndef CONFIG_SPARSE_IRQ
  17. struct irq_desc;
  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--)
  23. #endif
  24. #endif
  25. #define for_each_irq_nr(irq) \
  26. for (irq = 0; irq < nr_irqs; irq++)
  27. #endif /* __KERNEL__ */
  28. #endif