diff options
Diffstat (limited to 'arch/blackfin/include/asm/hardirq.h')
-rw-r--r-- | arch/blackfin/include/asm/hardirq.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/blackfin/include/asm/hardirq.h b/arch/blackfin/include/asm/hardirq.h new file mode 100644 index 000000000000..b6b19f1b9dab --- /dev/null +++ b/arch/blackfin/include/asm/hardirq.h | |||
@@ -0,0 +1,45 @@ | |||
1 | #ifndef __BFIN_HARDIRQ_H | ||
2 | #define __BFIN_HARDIRQ_H | ||
3 | |||
4 | #include <linux/cache.h> | ||
5 | #include <linux/threads.h> | ||
6 | #include <asm/irq.h> | ||
7 | |||
8 | typedef struct { | ||
9 | unsigned int __softirq_pending; | ||
10 | unsigned int __syscall_count; | ||
11 | struct task_struct *__ksoftirqd_task; | ||
12 | } ____cacheline_aligned irq_cpustat_t; | ||
13 | |||
14 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ | ||
15 | |||
16 | /* | ||
17 | * We put the hardirq and softirq counter into the preemption | ||
18 | * counter. The bitmask has the following meaning: | ||
19 | * | ||
20 | * - bits 0-7 are the preemption count (max preemption depth: 256) | ||
21 | * - bits 8-15 are the softirq count (max # of softirqs: 256) | ||
22 | * - bits 16-23 are the hardirq count (max # of hardirqs: 256) | ||
23 | * | ||
24 | * - ( bit 26 is the PREEMPT_ACTIVE flag. ) | ||
25 | * | ||
26 | * PREEMPT_MASK: 0x000000ff | ||
27 | * HARDIRQ_MASK: 0x0000ff00 | ||
28 | * SOFTIRQ_MASK: 0x00ff0000 | ||
29 | */ | ||
30 | |||
31 | #if NR_IRQS > 256 | ||
32 | #define HARDIRQ_BITS 9 | ||
33 | #else | ||
34 | #define HARDIRQ_BITS 8 | ||
35 | #endif | ||
36 | |||
37 | #ifdef NR_IRQS | ||
38 | # if (1 << HARDIRQ_BITS) < NR_IRQS | ||
39 | # error HARDIRQ_BITS is too low! | ||
40 | # endif | ||
41 | #endif | ||
42 | |||
43 | #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 | ||
44 | |||
45 | #endif | ||