Commit | Line | Data |
---|---|---|
1394f032 BW |
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 | ||
34e0fc89 MH |
31 | #if NR_IRQS > 256 |
32 | #define HARDIRQ_BITS 9 | |
33 | #else | |
1394f032 | 34 | #define HARDIRQ_BITS 8 |
34e0fc89 | 35 | #endif |
1394f032 BW |
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 |