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 (1543B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_GENERIC_IRQFLAGS_H
      3#define __ASM_GENERIC_IRQFLAGS_H
      4
      5/*
      6 * All architectures should implement at least the first two functions,
      7 * usually inline assembly will be the best way.
      8 */
      9#ifndef ARCH_IRQ_DISABLED
     10#define ARCH_IRQ_DISABLED 0
     11#define ARCH_IRQ_ENABLED 1
     12#endif
     13
     14/* read interrupt enabled status */
     15#ifndef arch_local_save_flags
     16unsigned long arch_local_save_flags(void);
     17#endif
     18
     19/* set interrupt enabled status */
     20#ifndef arch_local_irq_restore
     21void arch_local_irq_restore(unsigned long flags);
     22#endif
     23
     24/* get status and disable interrupts */
     25#ifndef arch_local_irq_save
     26static inline unsigned long arch_local_irq_save(void)
     27{
     28	unsigned long flags;
     29	flags = arch_local_save_flags();
     30	arch_local_irq_restore(ARCH_IRQ_DISABLED);
     31	return flags;
     32}
     33#endif
     34
     35/* test flags */
     36#ifndef arch_irqs_disabled_flags
     37static inline int arch_irqs_disabled_flags(unsigned long flags)
     38{
     39	return flags == ARCH_IRQ_DISABLED;
     40}
     41#endif
     42
     43/* unconditionally enable interrupts */
     44#ifndef arch_local_irq_enable
     45static inline void arch_local_irq_enable(void)
     46{
     47	arch_local_irq_restore(ARCH_IRQ_ENABLED);
     48}
     49#endif
     50
     51/* unconditionally disable interrupts */
     52#ifndef arch_local_irq_disable
     53static inline void arch_local_irq_disable(void)
     54{
     55	arch_local_irq_restore(ARCH_IRQ_DISABLED);
     56}
     57#endif
     58
     59/* test hardware interrupt enable bit */
     60#ifndef arch_irqs_disabled
     61static inline int arch_irqs_disabled(void)
     62{
     63	return arch_irqs_disabled_flags(arch_local_save_flags());
     64}
     65#endif
     66
     67#endif /* __ASM_GENERIC_IRQFLAGS_H */