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