diff options
Diffstat (limited to 'kernel/irq/settings.h')
-rw-r--r-- | kernel/irq/settings.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/kernel/irq/settings.h b/kernel/irq/settings.h index 2201f2aaa9a0..216b6f200e7c 100644 --- a/kernel/irq/settings.h +++ b/kernel/irq/settings.h | |||
@@ -6,7 +6,12 @@ enum { | |||
6 | _IRQ_DEFAULT_INIT_FLAGS = IRQ_DEFAULT_INIT_FLAGS, | 6 | _IRQ_DEFAULT_INIT_FLAGS = IRQ_DEFAULT_INIT_FLAGS, |
7 | _IRQ_PER_CPU = IRQ_PER_CPU, | 7 | _IRQ_PER_CPU = IRQ_PER_CPU, |
8 | _IRQ_LEVEL = IRQ_LEVEL, | 8 | _IRQ_LEVEL = IRQ_LEVEL, |
9 | _IRQ_NOPROBE = IRQ_NOPROBE, | ||
10 | _IRQ_NOREQUEST = IRQ_NOREQUEST, | ||
11 | _IRQ_NOAUTOEN = IRQ_NOAUTOEN, | ||
12 | _IRQ_MOVE_PCNTXT = IRQ_MOVE_PCNTXT, | ||
9 | _IRQ_NO_BALANCING = IRQ_NO_BALANCING, | 13 | _IRQ_NO_BALANCING = IRQ_NO_BALANCING, |
14 | _IRQ_NESTED_THREAD = IRQ_NESTED_THREAD, | ||
10 | _IRQF_MODIFY_MASK = IRQF_MODIFY_MASK, | 15 | _IRQF_MODIFY_MASK = IRQF_MODIFY_MASK, |
11 | }; | 16 | }; |
12 | 17 | ||
@@ -34,6 +39,14 @@ enum { | |||
34 | #define IRQ_AFFINITY_SET GOT_YOU_MORON | 39 | #define IRQ_AFFINITY_SET GOT_YOU_MORON |
35 | #undef IRQ_LEVEL | 40 | #undef IRQ_LEVEL |
36 | #define IRQ_LEVEL GOT_YOU_MORON | 41 | #define IRQ_LEVEL GOT_YOU_MORON |
42 | #undef IRQ_NOPROBE | ||
43 | #define IRQ_NOPROBE GOT_YOU_MORON | ||
44 | #undef IRQ_NOREQUEST | ||
45 | #define IRQ_NOREQUEST GOT_YOU_MORON | ||
46 | #undef IRQ_NOAUTOEN | ||
47 | #define IRQ_NOAUTOEN GOT_YOU_MORON | ||
48 | #undef IRQ_NESTED_THREAD | ||
49 | #define IRQ_NESTED_THREAD GOT_YOU_MORON | ||
37 | #undef IRQF_MODIFY_MASK | 50 | #undef IRQF_MODIFY_MASK |
38 | #define IRQF_MODIFY_MASK GOT_YOU_MORON | 51 | #define IRQF_MODIFY_MASK GOT_YOU_MORON |
39 | 52 | ||
@@ -90,3 +103,48 @@ static inline void irq_settings_set_level(struct irq_desc *desc) | |||
90 | { | 103 | { |
91 | desc->status |= _IRQ_LEVEL; | 104 | desc->status |= _IRQ_LEVEL; |
92 | } | 105 | } |
106 | |||
107 | static inline bool irq_settings_can_request(struct irq_desc *desc) | ||
108 | { | ||
109 | return !(desc->status & _IRQ_NOREQUEST); | ||
110 | } | ||
111 | |||
112 | static inline void irq_settings_clr_norequest(struct irq_desc *desc) | ||
113 | { | ||
114 | desc->status &= ~_IRQ_NOREQUEST; | ||
115 | } | ||
116 | |||
117 | static inline void irq_settings_set_norequest(struct irq_desc *desc) | ||
118 | { | ||
119 | desc->status |= _IRQ_NOREQUEST; | ||
120 | } | ||
121 | |||
122 | static inline bool irq_settings_can_probe(struct irq_desc *desc) | ||
123 | { | ||
124 | return !(desc->status & _IRQ_NOPROBE); | ||
125 | } | ||
126 | |||
127 | static inline void irq_settings_clr_noprobe(struct irq_desc *desc) | ||
128 | { | ||
129 | desc->status &= ~_IRQ_NOPROBE; | ||
130 | } | ||
131 | |||
132 | static inline void irq_settings_set_noprobe(struct irq_desc *desc) | ||
133 | { | ||
134 | desc->status |= _IRQ_NOPROBE; | ||
135 | } | ||
136 | |||
137 | static inline bool irq_settings_can_move_pcntxt(struct irq_desc *desc) | ||
138 | { | ||
139 | return desc->status & _IRQ_MOVE_PCNTXT; | ||
140 | } | ||
141 | |||
142 | static inline bool irq_settings_can_autoenable(struct irq_desc *desc) | ||
143 | { | ||
144 | return !(desc->status & _IRQ_NOAUTOEN); | ||
145 | } | ||
146 | |||
147 | static inline bool irq_settings_is_nested_thread(struct irq_desc *desc) | ||
148 | { | ||
149 | return desc->status & _IRQ_NESTED_THREAD; | ||
150 | } | ||