1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 4 */ 5 #ifndef _ASM_HARDIRQ_H 6 #define _ASM_HARDIRQ_H 7 8 #include <linux/cache.h> 9 #include <linux/threads.h> 10 #include <linux/irq.h> 11 12 extern void ack_bad_irq(unsigned int irq); 13 #define ack_bad_irq ack_bad_irq 14 15 #define NR_IPI 4 16 17 enum ipi_msg_type { 18 IPI_RESCHEDULE, 19 IPI_CALL_FUNCTION, 20 IPI_IRQ_WORK, 21 IPI_CLEAR_VECTOR, 22 }; 23 24 typedef struct { 25 unsigned int ipi_irqs[NR_IPI]; 26 unsigned int __softirq_pending; 27 atomic_t message ____cacheline_aligned_in_smp; 28 } ____cacheline_aligned irq_cpustat_t; 29 30 DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); 31 32 #define __ARCH_IRQ_STAT 33 34 #endif /* _ASM_HARDIRQ_H */ 35