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 2 16 17 enum ipi_msg_type { 18 IPI_RESCHEDULE, 19 IPI_CALL_FUNCTION, 20 }; 21 22 typedef struct { 23 unsigned int ipi_irqs[NR_IPI]; 24 unsigned int __softirq_pending; 25 atomic_t message ____cacheline_aligned_in_smp; 26 } ____cacheline_aligned irq_cpustat_t; 27 28 DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); 29 30 #define __ARCH_IRQ_STAT 31 32 #endif /* _ASM_HARDIRQ_H */ 33