1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __ASM_GENERIC_HARDIRQ_H 3 #define __ASM_GENERIC_HARDIRQ_H 4 5 #include <linux/cache.h> 6 #include <linux/threads.h> 7 8 typedef struct { 9 unsigned int __softirq_pending; 10 #ifdef ARCH_WANTS_NMI_IRQSTAT 11 unsigned int __nmi_count; 12 #endif 13 } ____cacheline_aligned irq_cpustat_t; 14 15 DECLARE_PER_CPU_ALIGNED(irq_cpustat_t, irq_stat); 16 17 #include <linux/irq.h> 18 19 #ifndef ack_bad_irq 20 static inline void ack_bad_irq(unsigned int irq) 21 { 22 printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq); 23 } 24 #endif 25 26 #endif /* __ASM_GENERIC_HARDIRQ_H */ 27