blob: 7317e8258b4866f500a94f992097ba7c00b360ca [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Arnd Bergmannaafe4db2009-05-13 22:56:33 +00002#ifndef __ASM_GENERIC_HARDIRQ_H
3#define __ASM_GENERIC_HARDIRQ_H
4
5#include <linux/cache.h>
6#include <linux/threads.h>
Arnd Bergmannaafe4db2009-05-13 22:56:33 +00007
8typedef struct {
Ralf Baechlecc9b0b92009-10-09 12:41:30 +02009 unsigned int __softirq_pending;
Thomas Gleixner1adb99e2020-11-13 15:02:14 +010010#ifdef ARCH_WANTS_NMI_IRQSTAT
11 unsigned int __nmi_count;
12#endif
Arnd Bergmannaafe4db2009-05-13 22:56:33 +000013} ____cacheline_aligned irq_cpustat_t;
14
Thomas Gleixnere091bc92020-11-13 15:02:16 +010015DECLARE_PER_CPU_ALIGNED(irq_cpustat_t, irq_stat);
16
Frederic Weisbecker3b8fad32010-09-08 14:26:00 +020017#include <linux/irq.h>
Arnd Bergmannaafe4db2009-05-13 22:56:33 +000018
Arnd Bergmannaafe4db2009-05-13 22:56:33 +000019#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 */