Loading...
1#ifndef __ASM_HARDIRQ_H
2#define __ASM_HARDIRQ_H
3
4#include <linux/cache.h>
5#include <linux/threads.h>
6#include <asm/irq.h>
7
8#define NR_IPI 8
9
10typedef struct {
11 unsigned int __softirq_pending;
12#ifdef CONFIG_SMP
13 unsigned int ipi_irqs[NR_IPI];
14#endif
15} ____cacheline_aligned irq_cpustat_t;
16
17#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
18
19#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
20#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
21
22#ifdef CONFIG_SMP
23u64 smp_irq_stat_cpu(unsigned int cpu);
24#else
25#define smp_irq_stat_cpu(cpu) 0
26#endif
27
28#define arch_irq_stat_cpu smp_irq_stat_cpu
29
30#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
31
32#endif /* __ASM_HARDIRQ_H */
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_HARDIRQ_H
3#define __ASM_HARDIRQ_H
4
5#include <linux/cache.h>
6#include <linux/threads.h>
7#include <asm/irq.h>
8
9#define NR_IPI 7
10
11typedef struct {
12 unsigned int __softirq_pending;
13#ifdef CONFIG_SMP
14 unsigned int ipi_irqs[NR_IPI];
15#endif
16} ____cacheline_aligned irq_cpustat_t;
17
18#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
19
20#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
21#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
22
23#ifdef CONFIG_SMP
24u64 smp_irq_stat_cpu(unsigned int cpu);
25#else
26#define smp_irq_stat_cpu(cpu) 0
27#endif
28
29#define arch_irq_stat_cpu smp_irq_stat_cpu
30
31#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
32
33#endif /* __ASM_HARDIRQ_H */