1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 28c007bfdSAnton Blanchard #ifndef _ASM_POWERPC_HARDIRQ_H 38c007bfdSAnton Blanchard #define _ASM_POWERPC_HARDIRQ_H 48c007bfdSAnton Blanchard 58c007bfdSAnton Blanchard #include <linux/threads.h> 68c007bfdSAnton Blanchard #include <linux/irq.h> 78c007bfdSAnton Blanchard 88c007bfdSAnton Blanchard typedef struct { 98c007bfdSAnton Blanchard unsigned int __softirq_pending; 10c041cfa2Sfan.du unsigned int timer_irqs_event; 11*e360cd37SNicholas Piggin unsigned int broadcast_irqs_event; 12c041cfa2Sfan.du unsigned int timer_irqs_others; 1389713ed1SAnton Blanchard unsigned int pmu_irqs; 1489713ed1SAnton Blanchard unsigned int mce_exceptions; 1517081102SAnton Blanchard unsigned int spurious_irqs; 16ca41ad43SNicholas Piggin unsigned int sreset_irqs; 1704019bf8SNicholas Piggin #ifdef CONFIG_PPC_WATCHDOG 1804019bf8SNicholas Piggin unsigned int soft_nmi_irqs; 1904019bf8SNicholas Piggin #endif 20a6a058e5SIan Munsie #ifdef CONFIG_PPC_DOORBELL 21a6a058e5SIan Munsie unsigned int doorbell_irqs; 22a6a058e5SIan Munsie #endif 238c007bfdSAnton Blanchard } ____cacheline_aligned irq_cpustat_t; 248c007bfdSAnton Blanchard 258c007bfdSAnton Blanchard DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); 268c007bfdSAnton Blanchard 278c007bfdSAnton Blanchard #define __ARCH_IRQ_STAT 28c16bee4bSNicholas Piggin #define __ARCH_IRQ_EXIT_IRQS_DISABLED 2969111bacSChristoph Lameter ack_bad_irq(unsigned int irq)308c007bfdSAnton Blanchardstatic inline void ack_bad_irq(unsigned int irq) 318c007bfdSAnton Blanchard { 328c007bfdSAnton Blanchard printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq); 338c007bfdSAnton Blanchard } 348c007bfdSAnton Blanchard 3589713ed1SAnton Blanchard extern u64 arch_irq_stat_cpu(unsigned int cpu); 3689713ed1SAnton Blanchard #define arch_irq_stat_cpu arch_irq_stat_cpu 3789713ed1SAnton Blanchard 388c007bfdSAnton Blanchard #endif /* _ASM_POWERPC_HARDIRQ_H */ 39