14baa9922SRussell King #ifndef __ASM_HARDIRQ_H 24baa9922SRussell King #define __ASM_HARDIRQ_H 34baa9922SRussell King 44baa9922SRussell King #include <linux/cache.h> 54baa9922SRussell King #include <linux/threads.h> 64baa9922SRussell King #include <asm/irq.h> 74baa9922SRussell King 84baa9922SRussell King typedef struct { 94baa9922SRussell King unsigned int __softirq_pending; 104baa9922SRussell King unsigned int local_timer_irqs; 114baa9922SRussell King } ____cacheline_aligned irq_cpustat_t; 124baa9922SRussell King 134baa9922SRussell King #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ 144baa9922SRussell King 154baa9922SRussell King #if NR_IRQS > 256 164baa9922SRussell King #define HARDIRQ_BITS 9 174baa9922SRussell King #else 184baa9922SRussell King #define HARDIRQ_BITS 8 194baa9922SRussell King #endif 204baa9922SRussell King 214baa9922SRussell King /* 224baa9922SRussell King * The hardirq mask has to be large enough to have space 234baa9922SRussell King * for potentially all IRQ sources in the system nesting 244baa9922SRussell King * on a single CPU: 254baa9922SRussell King */ 264baa9922SRussell King #if (1 << HARDIRQ_BITS) < NR_IRQS 274baa9922SRussell King # error HARDIRQ_BITS is too low! 284baa9922SRussell King #endif 294baa9922SRussell King 304baa9922SRussell King #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 314baa9922SRussell King 324baa9922SRussell King #endif /* __ASM_HARDIRQ_H */ 33