| #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 */ |