Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* _ASM_POWERPC_HARDIRQ_H */