root/arch/parisc/include/asm/irqflags.h

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

INCLUDED FROM


DEFINITIONS

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

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __PARISC_IRQFLAGS_H
   3 #define __PARISC_IRQFLAGS_H
   4 
   5 #include <linux/types.h>
   6 #include <asm/psw.h>
   7 
   8 static inline unsigned long arch_local_save_flags(void)
   9 {
  10         unsigned long flags;
  11         asm volatile("ssm 0, %0" : "=r" (flags) : : "memory");
  12         return flags;
  13 }
  14 
  15 static inline void arch_local_irq_disable(void)
  16 {
  17         asm volatile("rsm %0,%%r0\n" : : "i" (PSW_I) : "memory");
  18 }
  19 
  20 static inline void arch_local_irq_enable(void)
  21 {
  22         asm volatile("ssm %0,%%r0\n" : : "i" (PSW_I) : "memory");
  23 }
  24 
  25 static inline unsigned long arch_local_irq_save(void)
  26 {
  27         unsigned long flags;
  28         asm volatile("rsm %1,%0" : "=r" (flags) : "i" (PSW_I) : "memory");
  29         return flags;
  30 }
  31 
  32 static inline void arch_local_irq_restore(unsigned long flags)
  33 {
  34         asm volatile("mtsm %0" : : "r" (flags) : "memory");
  35 }
  36 
  37 static inline bool arch_irqs_disabled_flags(unsigned long flags)
  38 {
  39         return (flags & PSW_I) == 0;
  40 }
  41 
  42 static inline bool arch_irqs_disabled(void)
  43 {
  44         return arch_irqs_disabled_flags(arch_local_save_flags());
  45 }
  46 
  47 #endif /* __PARISC_IRQFLAGS_H */

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