0001
0002 #ifndef _ASM_POWERPC_HARDIRQ_H
0003 #define _ASM_POWERPC_HARDIRQ_H
0004
0005 #include <linux/threads.h>
0006 #include <linux/irq.h>
0007
0008 typedef struct {
0009 unsigned int __softirq_pending;
0010 unsigned int timer_irqs_event;
0011 unsigned int broadcast_irqs_event;
0012 unsigned int timer_irqs_others;
0013 unsigned int pmu_irqs;
0014 unsigned int mce_exceptions;
0015 unsigned int spurious_irqs;
0016 unsigned int sreset_irqs;
0017 #ifdef CONFIG_PPC_WATCHDOG
0018 unsigned int soft_nmi_irqs;
0019 #endif
0020 #ifdef CONFIG_PPC_DOORBELL
0021 unsigned int doorbell_irqs;
0022 #endif
0023 } ____cacheline_aligned irq_cpustat_t;
0024
0025 DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
0026
0027 #define __ARCH_IRQ_STAT
0028 #define __ARCH_IRQ_EXIT_IRQS_DISABLED
0029
0030 static inline void ack_bad_irq(unsigned int irq)
0031 {
0032 printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
0033 }
0034
0035 extern u64 arch_irq_stat_cpu(unsigned int cpu);
0036 #define arch_irq_stat_cpu arch_irq_stat_cpu
0037
0038 #endif