xref: /openbmc/linux/arch/loongarch/include/asm/hardirq.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
10603839bSHuacai Chen /* SPDX-License-Identifier: GPL-2.0 */
20603839bSHuacai Chen /*
30603839bSHuacai Chen  * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
40603839bSHuacai Chen  */
50603839bSHuacai Chen #ifndef _ASM_HARDIRQ_H
60603839bSHuacai Chen #define _ASM_HARDIRQ_H
70603839bSHuacai Chen 
80603839bSHuacai Chen #include <linux/cache.h>
90603839bSHuacai Chen #include <linux/threads.h>
100603839bSHuacai Chen #include <linux/irq.h>
110603839bSHuacai Chen 
120603839bSHuacai Chen extern void ack_bad_irq(unsigned int irq);
130603839bSHuacai Chen #define ack_bad_irq ack_bad_irq
140603839bSHuacai Chen 
150603839bSHuacai Chen #define NR_IPI	2
160603839bSHuacai Chen 
170603839bSHuacai Chen typedef struct {
180603839bSHuacai Chen 	unsigned int ipi_irqs[NR_IPI];
190603839bSHuacai Chen 	unsigned int __softirq_pending;
200603839bSHuacai Chen } ____cacheline_aligned irq_cpustat_t;
210603839bSHuacai Chen 
22*255b4658SHuacai Chen DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
230603839bSHuacai Chen 
2446859ac8SHuacai Chen #define __ARCH_IRQ_STAT
2546859ac8SHuacai Chen 
260603839bSHuacai Chen #endif /* _ASM_HARDIRQ_H */
27