root/include/asm-generic/irqflags.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. arch_local_irq_save
  2. arch_irqs_disabled_flags
  3. arch_local_irq_enable
  4. arch_local_irq_disable
  5. arch_irqs_disabled

   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
  16 unsigned long arch_local_save_flags(void);
  17 #endif
  18 
  19 /* set interrupt enabled status */
  20 #ifndef arch_local_irq_restore
  21 void arch_local_irq_restore(unsigned long flags);
  22 #endif
  23 
  24 /* get status and disable interrupts */
  25 #ifndef arch_local_irq_save
  26 static 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
  37 static 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
  45 static 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
  53 static 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
  61 static 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 */

/* [<][>][^][v][top][bottom][index][help] */