diff options
Diffstat (limited to 'include/asm-sparc/irqflags.h')
-rw-r--r-- | include/asm-sparc/irqflags.h | 47 |
1 files changed, 8 insertions, 39 deletions
diff --git a/include/asm-sparc/irqflags.h b/include/asm-sparc/irqflags.h index db398fb32826..c6402b187e23 100644 --- a/include/asm-sparc/irqflags.h +++ b/include/asm-sparc/irqflags.h | |||
@@ -1,39 +1,8 @@ | |||
1 | /* | 1 | #ifndef ___ASM_SPARC_IRQFLAGS_H |
2 | * include/asm-sparc/irqflags.h | 2 | #define ___ASM_SPARC_IRQFLAGS_H |
3 | * | 3 | #if defined(__sparc__) && defined(__arch64__) |
4 | * IRQ flags handling | 4 | #include <asm-sparc/irqflags_64.h> |
5 | * | 5 | #else |
6 | * This file gets included from lowlevel asm headers too, to provide | 6 | #include <asm-sparc/irqflags_32.h> |
7 | * wrapped versions of the local_irq_*() APIs, based on the | 7 | #endif |
8 | * raw_local_irq_*() functions from the lowlevel headers. | 8 | #endif |
9 | */ | ||
10 | #ifndef _ASM_IRQFLAGS_H | ||
11 | #define _ASM_IRQFLAGS_H | ||
12 | |||
13 | #ifndef __ASSEMBLY__ | ||
14 | |||
15 | extern void raw_local_irq_restore(unsigned long); | ||
16 | extern unsigned long __raw_local_irq_save(void); | ||
17 | extern void raw_local_irq_enable(void); | ||
18 | |||
19 | static inline unsigned long getipl(void) | ||
20 | { | ||
21 | unsigned long retval; | ||
22 | |||
23 | __asm__ __volatile__("rd %%psr, %0" : "=r" (retval)); | ||
24 | return retval; | ||
25 | } | ||
26 | |||
27 | #define raw_local_save_flags(flags) ((flags) = getipl()) | ||
28 | #define raw_local_irq_save(flags) ((flags) = __raw_local_irq_save()) | ||
29 | #define raw_local_irq_disable() ((void) __raw_local_irq_save()) | ||
30 | #define raw_irqs_disabled() ((getipl() & PSR_PIL) != 0) | ||
31 | |||
32 | static inline int raw_irqs_disabled_flags(unsigned long flags) | ||
33 | { | ||
34 | return ((flags & PSR_PIL) != 0); | ||
35 | } | ||
36 | |||
37 | #endif /* (__ASSEMBLY__) */ | ||
38 | |||
39 | #endif /* !(_ASM_IRQFLAGS_H) */ | ||