hardirq.h 884 B

12345678910111213141516171819202122232425262728293031
  1. #ifdef __KERNEL__
  2. #ifndef __ASM_HARDIRQ_H
  3. #define __ASM_HARDIRQ_H
  4. #include <linux/config.h>
  5. #include <linux/cache.h>
  6. #include <linux/smp_lock.h>
  7. #include <asm/irq.h>
  8. /* The __last_jiffy_stamp field is needed to ensure that no decrementer
  9. * interrupt is lost on SMP machines. Since on most CPUs it is in the same
  10. * cache line as local_irq_count, it is cheap to access and is also used on UP
  11. * for uniformity.
  12. */
  13. typedef struct {
  14. unsigned long __softirq_pending; /* set_bit is used on this */
  15. unsigned int __last_jiffy_stamp;
  16. } ____cacheline_aligned irq_cpustat_t;
  17. #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
  18. #define last_jiffy_stamp(cpu) __IRQ_STAT((cpu), __last_jiffy_stamp)
  19. static inline void ack_bad_irq(int irq)
  20. {
  21. printk(KERN_CRIT "illegal vector %d received!\n", irq);
  22. BUG();
  23. }
  24. #endif /* __ASM_HARDIRQ_H */
  25. #endif /* __KERNEL__ */