Linux 5.6.13
[linux/fpc-iii.git] / arch / hexagon / include / asm / irqflags.h
blobc4d2a4de139fd31c2ed2fa31f7bee8a750b65052
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * IRQ support for the Hexagon architecture
5 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
6 */
8 #ifndef _ASM_IRQFLAGS_H
9 #define _ASM_IRQFLAGS_H
11 #include <asm/hexagon_vm.h>
12 #include <linux/types.h>
14 static inline unsigned long arch_local_save_flags(void)
16 return __vmgetie();
19 static inline unsigned long arch_local_irq_save(void)
21 return __vmsetie(VM_INT_DISABLE);
24 static inline bool arch_irqs_disabled_flags(unsigned long flags)
26 return !flags;
29 static inline bool arch_irqs_disabled(void)
31 return !__vmgetie();
34 static inline void arch_local_irq_enable(void)
36 __vmsetie(VM_INT_ENABLE);
39 static inline void arch_local_irq_disable(void)
41 __vmsetie(VM_INT_DISABLE);
44 static inline void arch_local_irq_restore(unsigned long flags)
46 __vmsetie(flags);
49 #endif