Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/hexagon/include/asm/irqflags.h
26481 views
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
50
51