Commit | Line | Data |
---|---|---|
8c007bfd AB |
1 | #ifndef _ASM_POWERPC_HARDIRQ_H |
2 | #define _ASM_POWERPC_HARDIRQ_H | |
3 | ||
4 | #include <linux/threads.h> | |
5 | #include <linux/irq.h> | |
6 | ||
7 | typedef struct { | |
8 | unsigned int __softirq_pending; | |
c041cfa2 | 9 | unsigned int timer_irqs_event; |
10 | unsigned int timer_irqs_others; | |
89713ed1 AB |
11 | unsigned int pmu_irqs; |
12 | unsigned int mce_exceptions; | |
17081102 | 13 | unsigned int spurious_irqs; |
0869b6fd | 14 | unsigned int hmi_exceptions; |
a6a058e5 IM |
15 | #ifdef CONFIG_PPC_DOORBELL |
16 | unsigned int doorbell_irqs; | |
17 | #endif | |
8c007bfd AB |
18 | } ____cacheline_aligned irq_cpustat_t; |
19 | ||
20 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); | |
21 | ||
22 | #define __ARCH_IRQ_STAT | |
23 | ||
69111bac CL |
24 | #define local_softirq_pending() __this_cpu_read(irq_stat.__softirq_pending) |
25 | ||
26 | #define __ARCH_SET_SOFTIRQ_PENDING | |
27 | ||
28 | #define set_softirq_pending(x) __this_cpu_write(irq_stat.__softirq_pending, (x)) | |
29 | #define or_softirq_pending(x) __this_cpu_or(irq_stat.__softirq_pending, (x)) | |
8c007bfd AB |
30 | |
31 | static inline void ack_bad_irq(unsigned int irq) | |
32 | { | |
33 | printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq); | |
34 | } | |
35 | ||
89713ed1 AB |
36 | extern u64 arch_irq_stat_cpu(unsigned int cpu); |
37 | #define arch_irq_stat_cpu arch_irq_stat_cpu | |
38 | ||
8c007bfd | 39 | #endif /* _ASM_POWERPC_HARDIRQ_H */ |