]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blame - arch/arm/include/asm/hardirq.h
ARM: 7267/1: Remove BUILD_BUG_ON from asm/bug.h
[mirror_ubuntu-eoan-kernel.git] / arch / arm / include / asm / hardirq.h
CommitLineData
1da177e4
LT
1#ifndef __ASM_HARDIRQ_H
2#define __ASM_HARDIRQ_H
3
1da177e4
LT
4#include <linux/cache.h>
5#include <linux/threads.h>
6#include <asm/irq.h>
7
4a88abd7
RK
8#define NR_IPI 5
9
1da177e4
LT
10typedef struct {
11 unsigned int __softirq_pending;
cab8c6f3 12#ifdef CONFIG_SMP
4a88abd7 13 unsigned int ipi_irqs[NR_IPI];
cab8c6f3 14#endif
1da177e4
LT
15} ____cacheline_aligned irq_cpustat_t;
16
17#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
18
46c48f22
RK
19#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
20#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
21
b54992fe
RK
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
27ada410
MD
30#if NR_IRQS > 512
31#define HARDIRQ_BITS 10
32#elif NR_IRQS > 256
1da177e4
LT
33#define HARDIRQ_BITS 9
34#else
35#define HARDIRQ_BITS 8
36#endif
37
38/*
39 * The hardirq mask has to be large enough to have space
40 * for potentially all IRQ sources in the system nesting
41 * on a single CPU:
42 */
43#if (1 << HARDIRQ_BITS) < NR_IRQS
44# error HARDIRQ_BITS is too low!
45#endif
46
47#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
48
49#endif /* __ASM_HARDIRQ_H */