162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __ASM_GENERIC_HARDIRQ_H 362306a36Sopenharmony_ci#define __ASM_GENERIC_HARDIRQ_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/cache.h> 662306a36Sopenharmony_ci#include <linux/threads.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_citypedef struct { 962306a36Sopenharmony_ci unsigned int __softirq_pending; 1062306a36Sopenharmony_ci#ifdef ARCH_WANTS_NMI_IRQSTAT 1162306a36Sopenharmony_ci unsigned int __nmi_count; 1262306a36Sopenharmony_ci#endif 1362306a36Sopenharmony_ci} ____cacheline_aligned irq_cpustat_t; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciDECLARE_PER_CPU_ALIGNED(irq_cpustat_t, irq_stat); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#include <linux/irq.h> 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#ifndef ack_bad_irq 2062306a36Sopenharmony_cistatic inline void ack_bad_irq(unsigned int irq) 2162306a36Sopenharmony_ci{ 2262306a36Sopenharmony_ci printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq); 2362306a36Sopenharmony_ci} 2462306a36Sopenharmony_ci#endif 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#endif /* __ASM_GENERIC_HARDIRQ_H */ 27