1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 /* 3 * Internal header to deal with irq_desc->stat 4 * to irq_desc->settings. 5 */ 6 enum { 7 _IRQ_DEFAULT_INIT_FLAGS = IRQ_DEFAULT_ 8 _IRQ_PER_CPU = IRQ_PER_CPU, 9 _IRQ_LEVEL = IRQ_LEVEL, 10 _IRQ_NOPROBE = IRQ_NOPROBE, 11 _IRQ_NOREQUEST = IRQ_NOREQUES 12 _IRQ_NOTHREAD = IRQ_NOTHREAD 13 _IRQ_NOAUTOEN = IRQ_NOAUTOEN 14 _IRQ_MOVE_PCNTXT = IRQ_MOVE_PCN 15 _IRQ_NO_BALANCING = IRQ_NO_BALAN 16 _IRQ_NESTED_THREAD = IRQ_NESTED_T 17 _IRQ_PER_CPU_DEVID = IRQ_PER_CPU_ 18 _IRQ_IS_POLLED = IRQ_IS_POLLE 19 _IRQ_DISABLE_UNLAZY = IRQ_DISABLE_ 20 _IRQ_HIDDEN = IRQ_HIDDEN, 21 _IRQ_NO_DEBUG = IRQ_NO_DEBUG 22 _IRQF_MODIFY_MASK = IRQF_MODIFY_ 23 }; 24 25 #define IRQ_PER_CPU GOT_YOU_MORON 26 #define IRQ_NO_BALANCING GOT_YOU_MORON 27 #define IRQ_LEVEL GOT_YOU_MORON 28 #define IRQ_NOPROBE GOT_YOU_MORON 29 #define IRQ_NOREQUEST GOT_YOU_MORON 30 #define IRQ_NOTHREAD GOT_YOU_MORON 31 #define IRQ_NOAUTOEN GOT_YOU_MORON 32 #define IRQ_NESTED_THREAD GOT_YOU_MORON 33 #define IRQ_PER_CPU_DEVID GOT_YOU_MORON 34 #define IRQ_IS_POLLED GOT_YOU_MORON 35 #define IRQ_DISABLE_UNLAZY GOT_YOU_MORON 36 #define IRQ_HIDDEN GOT_YOU_MORON 37 #define IRQ_NO_DEBUG GOT_YOU_MORON 38 #undef IRQF_MODIFY_MASK 39 #define IRQF_MODIFY_MASK GOT_YOU_MORON 40 41 static inline void 42 irq_settings_clr_and_set(struct irq_desc *desc 43 { 44 desc->status_use_accessors &= ~(clr & 45 desc->status_use_accessors |= (set & _ 46 } 47 48 static inline bool irq_settings_is_per_cpu(str 49 { 50 return desc->status_use_accessors & _I 51 } 52 53 static inline bool irq_settings_is_per_cpu_dev 54 { 55 return desc->status_use_accessors & _I 56 } 57 58 static inline void irq_settings_set_per_cpu(st 59 { 60 desc->status_use_accessors |= _IRQ_PER 61 } 62 63 static inline void irq_settings_set_no_balanci 64 { 65 desc->status_use_accessors |= _IRQ_NO_ 66 } 67 68 static inline bool irq_settings_has_no_balance 69 { 70 return desc->status_use_accessors & _I 71 } 72 73 static inline u32 irq_settings_get_trigger_mas 74 { 75 return desc->status_use_accessors & IR 76 } 77 78 static inline void 79 irq_settings_set_trigger_mask(struct irq_desc 80 { 81 desc->status_use_accessors &= ~IRQ_TYP 82 desc->status_use_accessors |= mask & I 83 } 84 85 static inline bool irq_settings_is_level(struc 86 { 87 return desc->status_use_accessors & _I 88 } 89 90 static inline void irq_settings_clr_level(stru 91 { 92 desc->status_use_accessors &= ~_IRQ_LE 93 } 94 95 static inline void irq_settings_set_level(stru 96 { 97 desc->status_use_accessors |= _IRQ_LEV 98 } 99 100 static inline bool irq_settings_can_request(st 101 { 102 return !(desc->status_use_accessors & 103 } 104 105 static inline void irq_settings_clr_norequest( 106 { 107 desc->status_use_accessors &= ~_IRQ_NO 108 } 109 110 static inline void irq_settings_set_norequest( 111 { 112 desc->status_use_accessors |= _IRQ_NOR 113 } 114 115 static inline bool irq_settings_can_thread(str 116 { 117 return !(desc->status_use_accessors & 118 } 119 120 static inline void irq_settings_clr_nothread(s 121 { 122 desc->status_use_accessors &= ~_IRQ_NO 123 } 124 125 static inline void irq_settings_set_nothread(s 126 { 127 desc->status_use_accessors |= _IRQ_NOT 128 } 129 130 static inline bool irq_settings_can_probe(stru 131 { 132 return !(desc->status_use_accessors & 133 } 134 135 static inline void irq_settings_clr_noprobe(st 136 { 137 desc->status_use_accessors &= ~_IRQ_NO 138 } 139 140 static inline void irq_settings_set_noprobe(st 141 { 142 desc->status_use_accessors |= _IRQ_NOP 143 } 144 145 static inline bool irq_settings_can_move_pcntx 146 { 147 return desc->status_use_accessors & _I 148 } 149 150 static inline bool irq_settings_can_autoenable 151 { 152 return !(desc->status_use_accessors & 153 } 154 155 static inline bool irq_settings_is_nested_thre 156 { 157 return desc->status_use_accessors & _I 158 } 159 160 static inline bool irq_settings_is_polled(stru 161 { 162 return desc->status_use_accessors & _I 163 } 164 165 static inline bool irq_settings_disable_unlazy 166 { 167 return desc->status_use_accessors & _I 168 } 169 170 static inline void irq_settings_clr_disable_un 171 { 172 desc->status_use_accessors &= ~_IRQ_DI 173 } 174 175 static inline bool irq_settings_is_hidden(stru 176 { 177 return desc->status_use_accessors & _I 178 } 179 180 static inline void irq_settings_set_no_debug(s 181 { 182 desc->status_use_accessors |= _IRQ_NO_ 183 } 184 185 static inline bool irq_settings_no_debug(struc 186 { 187 return desc->status_use_accessors & _I 188 } 189
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.