more changes on original files
[linux-2.4.git] / asm-ppc / softirq.h
1 #ifdef __KERNEL__
2 #ifndef __ASM_SOFTIRQ_H
3 #define __ASM_SOFTIRQ_H
4
5 #include <asm/atomic.h>
6 #include <asm/hardirq.h>
7
8 #define local_bh_disable()                      \
9 do {                                            \
10         local_bh_count(smp_processor_id())++;   \
11         barrier();                              \
12 } while (0)
13
14 #define __local_bh_enable()                     \
15 do {                                            \
16         barrier();                              \
17         local_bh_count(smp_processor_id())--;   \
18 } while (0)
19
20 #define local_bh_enable()                               \
21 do {                                                    \
22         if (!--local_bh_count(smp_processor_id())       \
23             && softirq_pending(smp_processor_id())) {   \
24                 do_softirq();                           \
25         }                                               \
26 } while (0)
27
28 #define in_softirq() (local_bh_count(smp_processor_id()) != 0)
29
30 #endif  /* __ASM_SOFTIRQ_H */
31 #endif /* __KERNEL__ */