hardirq.h 762 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef __ASM_GENERIC_HARDIRQ_H
  2. #define __ASM_GENERIC_HARDIRQ_H
  3. #include <linux/cache.h>
  4. #include <linux/threads.h>
  5. #include <linux/irq.h>
  6. typedef struct {
  7. unsigned long __softirq_pending;
  8. } ____cacheline_aligned irq_cpustat_t;
  9. #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
  10. #ifndef HARDIRQ_BITS
  11. #define HARDIRQ_BITS 8
  12. #endif
  13. /*
  14. * The hardirq mask has to be large enough to have
  15. * space for potentially all IRQ sources in the system
  16. * nesting on a single CPU:
  17. */
  18. #if (1 << HARDIRQ_BITS) < NR_IRQS
  19. # error HARDIRQ_BITS is too low!
  20. #endif
  21. #ifndef ack_bad_irq
  22. static inline void ack_bad_irq(unsigned int irq)
  23. {
  24. printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
  25. }
  26. #endif
  27. #endif /* __ASM_GENERIC_HARDIRQ_H */