xref: /linux/arch/sh/include/asm/irqflags.h (revision e6aa0f07cb5e81a7cbeaf3be6e2101234c2f0d30)
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 */
35