Path: blob/master/arch/h8300/include/asm/irqflags.h
10834 views
#ifndef _H8300_IRQFLAGS_H1#define _H8300_IRQFLAGS_H23static inline unsigned long arch_local_save_flags(void)4{5unsigned long flags;6asm volatile ("stc ccr,%w0" : "=r" (flags));7return flags;8}910static inline void arch_local_irq_disable(void)11{12asm volatile ("orc #0x80,ccr" : : : "memory");13}1415static inline void arch_local_irq_enable(void)16{17asm volatile ("andc #0x7f,ccr" : : : "memory");18}1920static inline unsigned long arch_local_irq_save(void)21{22unsigned long flags = arch_local_save_flags();23arch_local_irq_disable();24return flags;25}2627static inline void arch_local_irq_restore(unsigned long flags)28{29asm volatile ("ldc %w0,ccr" : : "r" (flags) : "memory");30}3132static inline bool arch_irqs_disabled_flags(unsigned long flags)33{34return (flags & 0x80) == 0x80;35}3637static inline bool arch_irqs_disabled(void)38{39return arch_irqs_disabled_flags(arch_local_save_flags());40}4142#endif /* _H8300_IRQFLAGS_H */434445