root/arch/sparc/include/asm/irqflags_32.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_irqs_disabled_flags
  4. arch_irqs_disabled

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * include/asm/irqflags.h
   4  *
   5  * IRQ flags handling
   6  *
   7  * This file gets included from lowlevel asm headers too, to provide
   8  * wrapped versions of the local_irq_*() APIs, based on the
   9  * arch_local_irq_*() functions from the lowlevel headers.
  10  */
  11 #ifndef _ASM_IRQFLAGS_H
  12 #define _ASM_IRQFLAGS_H
  13 
  14 #ifndef __ASSEMBLY__
  15 
  16 #include <linux/types.h>
  17 #include <asm/psr.h>
  18 
  19 void arch_local_irq_restore(unsigned long);
  20 unsigned long arch_local_irq_save(void);
  21 void arch_local_irq_enable(void);
  22 
  23 static inline notrace unsigned long arch_local_save_flags(void)
  24 {
  25         unsigned long flags;
  26 
  27         asm volatile("rd        %%psr, %0" : "=r" (flags));
  28         return flags;
  29 }
  30 
  31 static inline notrace void arch_local_irq_disable(void)
  32 {
  33         arch_local_irq_save();
  34 }
  35 
  36 static inline notrace bool arch_irqs_disabled_flags(unsigned long flags)
  37 {
  38         return (flags & PSR_PIL) != 0;
  39 }
  40 
  41 static inline notrace bool arch_irqs_disabled(void)
  42 {
  43         return arch_irqs_disabled_flags(arch_local_save_flags());
  44 }
  45 
  46 #endif /* (__ASSEMBLY__) */
  47 
  48 #endif /* !(_ASM_IRQFLAGS_H) */

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