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