hardirq.h 733 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef __ASM_HARDIRQ_H
  2. #define __ASM_HARDIRQ_H
  3. #include <linux/cache.h>
  4. #include <linux/threads.h>
  5. #include <asm/irq.h>
  6. typedef struct {
  7. unsigned int __softirq_pending;
  8. unsigned int local_timer_irqs;
  9. } ____cacheline_aligned irq_cpustat_t;
  10. #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
  11. #if NR_IRQS > 512
  12. #define HARDIRQ_BITS 10
  13. #elif NR_IRQS > 256
  14. #define HARDIRQ_BITS 9
  15. #else
  16. #define HARDIRQ_BITS 8
  17. #endif
  18. /*
  19. * The hardirq mask has to be large enough to have space
  20. * for potentially all IRQ sources in the system nesting
  21. * on a single CPU:
  22. */
  23. #if (1 << HARDIRQ_BITS) < NR_IRQS
  24. # error HARDIRQ_BITS is too low!
  25. #endif
  26. #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
  27. #endif /* __ASM_HARDIRQ_H */