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
8typedef 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
15DECLARE_PER_CPU_ALIGNED(irq_cpustat_t, irq_stat);
16
17#include <linux/irq.h>
18
19#ifndef ack_bad_irq
20static 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