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