blob: fe3ea776dc34267724f377465134e52b39434fed [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ASM_HARDIRQ_H
2#define __ASM_HARDIRQ_H
3
Linus Torvalds1da177e2005-04-16 15:20:36 -07004#include <linux/cache.h>
5#include <linux/threads.h>
6#include <asm/irq.h>
7
Russell Kingdf762ec2013-11-12 10:58:59 +00008#define NR_IPI 8
Russell King4a88abd2010-11-15 14:40:29 +00009
Linus Torvalds1da177e2005-04-16 15:20:36 -070010typedef struct {
11 unsigned int __softirq_pending;
Russell Kingcab8c6f2010-11-15 14:20:41 +000012#ifdef CONFIG_SMP
Russell King4a88abd2010-11-15 14:40:29 +000013 unsigned int ipi_irqs[NR_IPI];
Russell Kingcab8c6f2010-11-15 14:20:41 +000014#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070015} ____cacheline_aligned irq_cpustat_t;
16
17#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
18
Russell King46c48f22010-11-15 14:15:03 +000019#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
20#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
21
Russell Kingb54992f2010-11-15 14:46:46 +000022#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
Linus Torvalds1da177e2005-04-16 15:20:36 -070030#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1
31
32#endif /* __ASM_HARDIRQ_H */