hardirq.h 803 B

12345678910111213141516171819202122232425262728293031323334
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ASM_HARDIRQ_H
  3. #define __ASM_HARDIRQ_H
  4. #include <linux/cache.h>
  5. #include <linux/threads.h>
  6. #include <asm/irq.h>
  7. /* number of IPIS _not_ including IPI_CPU_BACKTRACE */
  8. #define NR_IPI 7
  9. typedef struct {
  10. unsigned int __softirq_pending;
  11. #ifdef CONFIG_SMP
  12. unsigned int ipi_irqs[NR_IPI];
  13. #endif
  14. } ____cacheline_aligned irq_cpustat_t;
  15. #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
  16. #define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
  17. #define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
  18. #ifdef CONFIG_SMP
  19. u64 smp_irq_stat_cpu(unsigned int cpu);
  20. #else
  21. #define smp_irq_stat_cpu(cpu) 0
  22. #endif
  23. #define arch_irq_stat_cpu smp_irq_stat_cpu
  24. #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
  25. #endif /* __ASM_HARDIRQ_H */