Merge branch 'linus' into irq/threaded
[linux-2.6] / arch / sh / include / asm / irqflags.h
1 #ifndef __ASM_SH_IRQFLAGS_H
2 #define __ASM_SH_IRQFLAGS_H
3
4 #ifdef CONFIG_SUPERH32
5 #include "irqflags_32.h"
6 #else
7 #include "irqflags_64.h"
8 #endif
9
10 #define raw_local_save_flags(flags) \
11                 do { (flags) = __raw_local_save_flags(); } while (0)
12
13 static inline int raw_irqs_disabled_flags(unsigned long flags)
14 {
15         return (flags != 0);
16 }
17
18 static inline int raw_irqs_disabled(void)
19 {
20         unsigned long flags = __raw_local_save_flags();
21
22         return raw_irqs_disabled_flags(flags);
23 }
24
25 #define raw_local_irq_save(flags) \
26                 do { (flags) = __raw_local_irq_save(); } while (0)
27
28 static inline void raw_local_irq_restore(unsigned long flags)
29 {
30         if ((flags & 0xf0) != 0xf0)
31                 raw_local_irq_enable();
32 }
33
34 #endif /* __ASM_SH_IRQFLAGS_H */