Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.1-rc4 52 lines 1.1 kB view raw
1#ifndef __ASM_HARDIRQ_H 2#define __ASM_HARDIRQ_H 3 4#include <linux/cache.h> 5#include <linux/threads.h> 6#include <asm/irq.h> 7 8#define NR_IPI 5 9 10typedef struct { 11 unsigned int __softirq_pending; 12#ifdef CONFIG_LOCAL_TIMERS 13 unsigned int local_timer_irqs; 14#endif 15#ifdef CONFIG_SMP 16 unsigned int ipi_irqs[NR_IPI]; 17#endif 18} ____cacheline_aligned irq_cpustat_t; 19 20#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ 21 22#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++ 23#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member) 24 25#ifdef CONFIG_SMP 26u64 smp_irq_stat_cpu(unsigned int cpu); 27#else 28#define smp_irq_stat_cpu(cpu) 0 29#endif 30 31#define arch_irq_stat_cpu smp_irq_stat_cpu 32 33#if NR_IRQS > 512 34#define HARDIRQ_BITS 10 35#elif NR_IRQS > 256 36#define HARDIRQ_BITS 9 37#else 38#define HARDIRQ_BITS 8 39#endif 40 41/* 42 * The hardirq mask has to be large enough to have space 43 * for potentially all IRQ sources in the system nesting 44 * on a single CPU: 45 */ 46#if (1 << HARDIRQ_BITS) < NR_IRQS 47# error HARDIRQ_BITS is too low! 48#endif 49 50#define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 51 52#endif /* __ASM_HARDIRQ_H */