| #ifndef __ASM_HARDIRQ_H |
| #define __ASM_HARDIRQ_H |
| |
| #include <linux/threads.h> |
| #include <linux/irq.h> |
| |
| typedef struct { |
| unsigned int __softirq_pending; |
| unsigned long idle_timestamp; |
| unsigned int __nmi_count; /* arch dependent */ |
| unsigned int apic_timer_irqs; /* arch dependent */ |
| unsigned int irq0_irqs; |
| unsigned int irq_resched_count; |
| unsigned int irq_call_count; |
| unsigned int irq_tlb_count; |
| unsigned int irq_thermal_count; |
| unsigned int irq_spurious_count; |
| } ____cacheline_aligned irq_cpustat_t; |
| |
| DECLARE_PER_CPU(irq_cpustat_t, irq_stat); |
| |
| #define __ARCH_IRQ_STAT |
| #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) |
| |
| void ack_bad_irq(unsigned int irq); |
| #include <linux/irq_cpustat.h> |
| |
| #endif /* __ASM_HARDIRQ_H */ |