Linux Audio

Check our new training course

Loading...
v3.1
 
 1#ifndef __ALPHA_IRQFLAGS_H
 2#define __ALPHA_IRQFLAGS_H
 3
 4#include <asm/system.h>
 5
 6#define IPL_MIN		0
 7#define IPL_SW0		1
 8#define IPL_SW1		2
 9#define IPL_DEV0	3
10#define IPL_DEV1	4
11#define IPL_TIMER	5
12#define IPL_PERF	6
13#define IPL_POWERFAIL	6
14#define IPL_MCHECK	7
15#define IPL_MAX		7
16
17#ifdef CONFIG_ALPHA_BROKEN_IRQ_MASK
18#undef IPL_MIN
19#define IPL_MIN		__min_ipl
20extern int __min_ipl;
21#endif
22
23#define getipl()		(rdps() & 7)
24#define setipl(ipl)		((void) swpipl(ipl))
25
26static inline unsigned long arch_local_save_flags(void)
27{
28	return rdps();
29}
30
31static inline void arch_local_irq_disable(void)
32{
33	setipl(IPL_MAX);
34	barrier();
35}
36
37static inline unsigned long arch_local_irq_save(void)
38{
39	unsigned long flags = swpipl(IPL_MAX);
40	barrier();
41	return flags;
42}
43
44static inline void arch_local_irq_enable(void)
45{
46	barrier();
47	setipl(IPL_MIN);
48}
49
50static inline void arch_local_irq_restore(unsigned long flags)
51{
52	barrier();
53	setipl(flags);
54	barrier();
55}
56
57static inline bool arch_irqs_disabled_flags(unsigned long flags)
58{
59	return flags == IPL_MAX;
60}
61
62static inline bool arch_irqs_disabled(void)
63{
64	return arch_irqs_disabled_flags(getipl());
65}
66
67#endif /* __ALPHA_IRQFLAGS_H */
v6.8
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef __ALPHA_IRQFLAGS_H
 3#define __ALPHA_IRQFLAGS_H
 4
 5#include <asm/pal.h>
 6
 7#define IPL_MIN		0
 8#define IPL_SW0		1
 9#define IPL_SW1		2
10#define IPL_DEV0	3
11#define IPL_DEV1	4
12#define IPL_TIMER	5
13#define IPL_PERF	6
14#define IPL_POWERFAIL	6
15#define IPL_MCHECK	7
16#define IPL_MAX		7
17
18#ifdef CONFIG_ALPHA_BROKEN_IRQ_MASK
19#undef IPL_MIN
20#define IPL_MIN		__min_ipl
21extern int __min_ipl;
22#endif
23
24#define getipl()		(rdps() & 7)
25#define setipl(ipl)		((void) swpipl(ipl))
26
27static inline unsigned long arch_local_save_flags(void)
28{
29	return rdps();
30}
31
32static inline void arch_local_irq_disable(void)
33{
34	setipl(IPL_MAX);
35	barrier();
36}
37
38static inline unsigned long arch_local_irq_save(void)
39{
40	unsigned long flags = swpipl(IPL_MAX);
41	barrier();
42	return flags;
43}
44
45static inline void arch_local_irq_enable(void)
46{
47	barrier();
48	setipl(IPL_MIN);
49}
50
51static inline void arch_local_irq_restore(unsigned long flags)
52{
53	barrier();
54	setipl(flags);
55	barrier();
56}
57
58static inline bool arch_irqs_disabled_flags(unsigned long flags)
59{
60	return flags == IPL_MAX;
61}
62
63static inline bool arch_irqs_disabled(void)
64{
65	return arch_irqs_disabled_flags(getipl());
66}
67
68#endif /* __ALPHA_IRQFLAGS_H */