12 #ifndef _ASM_IRQFLAGS_H
13 #define _ASM_IRQFLAGS_H
29 #define MN10300_CLI_LEVEL (CONFIG_LINUX_CLI_LEVEL << EPSW_IM_SHIFT)
37 asm volatile(
"mov epsw,%0" :
"=d"(
flags));
79 :
"i"(~EPSW_IM),
"r"(__mn10300_irq_enabled_epsw[
cpu])
97 return (flags & (EPSW_IE | EPSW_IM)) != (EPSW_IE | EPSW_IM_7);
110 static inline void arch_safe_halt(
void)
121 :
"i"(EPSW_IE|EPSW_IM),
"n"(&CPUM),
"i"(CPUM_SLEEP)
126 #define __sleep_cpu() \
130 "1: btst %1,(%0)\n" \
133 : "i"(&CPUM), "i"(CPUM_SLEEP) \
138 static inline void arch_local_cli(
void)
151 static inline unsigned long arch_local_cli_save(
void)
158 static inline void arch_local_sti(
void)
167 static inline void arch_local_change_intr_mask_level(
unsigned long level)
173 :
"i"(~EPSW_IM),
"i"(EPSW_IE | level)
179 #define LOCAL_SAVE_FLAGS(reg) \
182 #define LOCAL_IRQ_DISABLE \
184 or EPSW_IE|MN10300_CLI_LEVEL,epsw; \
189 #define LOCAL_IRQ_ENABLE \
190 or EPSW_IE|EPSW_IM_7,epsw
192 #define LOCAL_IRQ_RESTORE(reg) \
195 #define LOCAL_CLI_SAVE(reg) \
211 #define LOCAL_CHANGE_INTR_MASK_LEVEL(level) \
213 or EPSW_IE|(level),epsw