xref: /linux/arch/loongarch/include/asm/hardirq.h (revision af8e51644a70f612974a6e767fa7d896d3c23f88)
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