cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

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 */