This source file includes following definitions.
- arch_local_save_flags
- arch_local_irq_restore
- arch_local_irq_disable
- arch_local_irq_enable
- arch_irqs_disabled_flags
- arch_irqs_disabled
- arch_local_irq_save
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 #ifndef _ASM_IRQFLAGS_H
  12 #define _ASM_IRQFLAGS_H
  13 
  14 #include <asm/pil.h>
  15 
  16 #ifndef __ASSEMBLY__
  17 
  18 static inline notrace unsigned long arch_local_save_flags(void)
  19 {
  20         unsigned long flags;
  21 
  22         __asm__ __volatile__(
  23                 "rdpr   %%pil, %0"
  24                 : "=r" (flags)
  25         );
  26 
  27         return flags;
  28 }
  29 
  30 static inline notrace void arch_local_irq_restore(unsigned long flags)
  31 {
  32         __asm__ __volatile__(
  33                 "wrpr   %0, %%pil"
  34                 : 
  35                 : "r" (flags)
  36                 : "memory"
  37         );
  38 }
  39 
  40 static inline notrace void arch_local_irq_disable(void)
  41 {
  42         __asm__ __volatile__(
  43                 "wrpr   %0, %%pil"
  44                 : 
  45                 : "i" (PIL_NORMAL_MAX)
  46                 : "memory"
  47         );
  48 }
  49 
  50 static inline notrace void arch_local_irq_enable(void)
  51 {
  52         __asm__ __volatile__(
  53                 "wrpr   0, %%pil"
  54                 : 
  55                 : 
  56                 : "memory"
  57         );
  58 }
  59 
  60 static inline notrace int arch_irqs_disabled_flags(unsigned long flags)
  61 {
  62         return (flags > 0);
  63 }
  64 
  65 static inline notrace int arch_irqs_disabled(void)
  66 {
  67         return arch_irqs_disabled_flags(arch_local_save_flags());
  68 }
  69 
  70 static inline notrace unsigned long arch_local_irq_save(void)
  71 {
  72         unsigned long flags, tmp;
  73 
  74         
  75 
  76 
  77 
  78 
  79 
  80 
  81 
  82 
  83 
  84         __asm__ __volatile__(
  85                 "rdpr   %%pil, %0\n\t"
  86                 "or     %0, %2, %1\n\t"
  87                 "wrpr   %1, 0x0, %%pil"
  88                 : "=r" (flags), "=r" (tmp)
  89                 : "i" (PIL_NORMAL_MAX)
  90                 : "memory"
  91         );
  92 
  93         return flags;
  94 }
  95 
  96 #endif 
  97 
  98 #endif