xref: /linux/arch/um/include/asm/hardirq.h (revision 2cddfc2e8fc78c13b0f5286ea5dd48cdf527ad41)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_UM_HARDIRQ_H
3 #define __ASM_UM_HARDIRQ_H
4 
5 #include <linux/cache.h>
6 #include <linux/threads.h>
7 
8 #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
9 
10 typedef struct {
11 	unsigned int __softirq_pending;
12 #if IS_ENABLED(CONFIG_SMP)
13 	unsigned int irq_resched_count;
14 	unsigned int irq_call_count;
15 #endif
16 } ____cacheline_aligned irq_cpustat_t;
17 
18 DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
19 
20 #define __ARCH_IRQ_STAT
21 
22 #define inc_irq_stat(member)	this_cpu_inc(irq_stat.member)
23 
24 #include <linux/irq.h>
25 
26 static inline void ack_bad_irq(unsigned int irq)
27 {
28 	pr_crit("unexpected IRQ trap at vector %02x\n", irq);
29 }
30 
31 #endif /* __ASM_UM_HARDIRQ_H */
32