Merge tag 'ieee802154-for-davem-2019-11-13' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / arch / hexagon / include / asm / irqflags.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * IRQ support for the Hexagon architecture
4  *
5  * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
6  */
7
8 #ifndef _ASM_IRQFLAGS_H
9 #define _ASM_IRQFLAGS_H
10
11 #include <asm/hexagon_vm.h>
12 #include <linux/types.h>
13
14 static inline unsigned long arch_local_save_flags(void)
15 {
16         return __vmgetie();
17 }
18
19 static inline unsigned long arch_local_irq_save(void)
20 {
21         return __vmsetie(VM_INT_DISABLE);
22 }
23
24 static inline bool arch_irqs_disabled_flags(unsigned long flags)
25 {
26         return !flags;
27 }
28
29 static inline bool arch_irqs_disabled(void)
30 {
31         return !__vmgetie();
32 }
33
34 static inline void arch_local_irq_enable(void)
35 {
36         __vmsetie(VM_INT_ENABLE);
37 }
38
39 static inline void arch_local_irq_disable(void)
40 {
41         __vmsetie(VM_INT_DISABLE);
42 }
43
44 static inline void arch_local_irq_restore(unsigned long flags)
45 {
46         __vmsetie(flags);
47 }
48
49 #endif