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