xref: /openbmc/linux/arch/parisc/include/asm/hardirq.h (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2deae26bfSKyle McMartin /* hardirq.h: PA-RISC hard IRQ support.
3deae26bfSKyle McMartin  *
4deae26bfSKyle McMartin  * Copyright (C) 2001 Matthew Wilcox <matthew@wil.cx>
5cd85d551SHelge Deller  * Copyright (C) 2013 Helge Deller <deller@gmx.de>
6deae26bfSKyle McMartin  */
7deae26bfSKyle McMartin 
8deae26bfSKyle McMartin #ifndef _PARISC_HARDIRQ_H
9deae26bfSKyle McMartin #define _PARISC_HARDIRQ_H
10deae26bfSKyle McMartin 
11cd85d551SHelge Deller #include <linux/cache.h>
12cd85d551SHelge Deller #include <linux/threads.h>
13cd85d551SHelge Deller #include <linux/irq.h>
14cd85d551SHelge Deller 
15cd85d551SHelge Deller typedef struct {
16cd85d551SHelge Deller 	unsigned int __softirq_pending;
17cd85d551SHelge Deller 	unsigned int kernel_stack_usage;
18416821d3SHelge Deller 	unsigned int irq_stack_usage;
19cd85d551SHelge Deller #ifdef CONFIG_SMP
20cd85d551SHelge Deller 	unsigned int irq_resched_count;
21*b102f29bSHelge Deller 	unsigned int irq_call_count;
22cd85d551SHelge Deller #endif
23d0c3be80SHelge Deller 	unsigned int irq_unaligned_count;
24d0c3be80SHelge Deller 	unsigned int irq_fpassist_count;
250fc537d1SHelge Deller 	unsigned int irq_tlb_count;
26cd85d551SHelge Deller } ____cacheline_aligned irq_cpustat_t;
27cd85d551SHelge Deller 
28cd85d551SHelge Deller DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
29cd85d551SHelge Deller 
30cd85d551SHelge Deller #define __ARCH_IRQ_STAT
31cd85d551SHelge Deller #define inc_irq_stat(member)	this_cpu_inc(irq_stat.member)
32416821d3SHelge Deller #define __inc_irq_stat(member)	__this_cpu_inc(irq_stat.member)
33cd85d551SHelge Deller #define ack_bad_irq(irq) WARN(1, "unexpected IRQ trap at vector %02x\n", irq)
34deae26bfSKyle McMartin 
35deae26bfSKyle McMartin #endif /* _PARISC_HARDIRQ_H */
36