irqflags.h (1132B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef __ASM_CSKY_IRQFLAGS_H 4#define __ASM_CSKY_IRQFLAGS_H 5#include <abi/reg_ops.h> 6 7static inline unsigned long arch_local_irq_save(void) 8{ 9 unsigned long flags; 10 11 flags = mfcr("psr"); 12 asm volatile("psrclr ie\n":::"memory"); 13 return flags; 14} 15#define arch_local_irq_save arch_local_irq_save 16 17static inline void arch_local_irq_enable(void) 18{ 19 asm volatile("psrset ee, ie\n":::"memory"); 20} 21#define arch_local_irq_enable arch_local_irq_enable 22 23static inline void arch_local_irq_disable(void) 24{ 25 asm volatile("psrclr ie\n":::"memory"); 26} 27#define arch_local_irq_disable arch_local_irq_disable 28 29static inline unsigned long arch_local_save_flags(void) 30{ 31 return mfcr("psr"); 32} 33#define arch_local_save_flags arch_local_save_flags 34 35static inline void arch_local_irq_restore(unsigned long flags) 36{ 37 mtcr("psr", flags); 38} 39#define arch_local_irq_restore arch_local_irq_restore 40 41static inline int arch_irqs_disabled_flags(unsigned long flags) 42{ 43 return !(flags & (1<<6)); 44} 45#define arch_irqs_disabled_flags arch_irqs_disabled_flags 46 47#include <asm-generic/irqflags.h> 48 49#endif /* __ASM_CSKY_IRQFLAGS_H */