9afe80686d98e5e5477951c1a0825b46b635f4fd
[akaros.git] / scripts / spatch / linux / funcs.cocci
1 @@
2 expression T;
3 @@
4 -msleep(T);
5 +kthread_usleep(1000 * T);
6
7 @@
8 expression TMIN;
9 expression TMAX;
10 @@
11 -usleep_range(TMIN, TMAX);
12 +kthread_usleep(TMIN);
13
14 // barriers
15 @@
16 @@
17 -barrier();
18 +cmb();
19
20 @@
21 @@
22 -smp_mb();
23 +mb();
24
25 @@
26 @@
27 -smp_rmb();
28 +rmb();
29
30 @@
31 @@
32 -smp_wmb();
33 +wmb();
34
35 @@
36 expression A0;
37 expression A1;
38 @@
39 -min(A0, A1)
40 +MIN(A0, A1)
41
42 @@
43 expression A0;
44 expression A1;
45 @@
46 -max(A0, A1)
47 +MAX(A0, A1)
48
49 @@
50 expression LO;
51 expression HI;
52 expression V;
53 @@
54 -clamp(V, LO, HI)
55 +CLAMP(V, LO, HI)
56
57 @@
58 expression A0;
59 expression A1;
60 type T;
61 @@
62 -min_t(T, A0, A1)
63 +MIN_T(T, A0, A1)
64
65 @@
66 expression A0;
67 expression A1;
68 type T;
69 @@
70 -max_t(T, A0, A1)
71 +MAX_T(T, A0, A1)
72
73 @@
74 expression LO;
75 expression HI;
76 expression V;
77 type T;
78 @@
79 -clamp_t(T, V, LO, HI)
80 +CLAMP_T(T, V, LO, HI)
81
82
83 // locking
84 // being conservative: they might not need irqsave
85 @@
86 expression E;
87 @@
88 -spin_lock_init(E)
89 +spinlock_init_irqsave(E)
90
91 @@
92 expression E;
93 @@
94 -spin_lock_bh(E)
95 +spin_lock(E)
96
97 @@
98 expression E;
99 @@
100 -spin_unlock_bh(E)
101 +spin_unlock(E)
102 @@
103
104 expression E;
105 @@
106 -spin_lock_irq(E)
107 +spin_lock_irqsave(E)
108
109 @@
110 expression E;
111 @@
112 -spin_unlock_irq(E)
113 +spin_unlock_irqsave(E)
114
115 @@
116 expression lock, flags;
117 @@
118 -spin_lock_irqsave(lock, flags)
119 +spin_lock_irqsave(lock)
120 ...
121 -spin_unlock_irqrestore(lock, flags)
122 +spin_unlock_irqsave(lock)
123
124 @@
125 expression E;
126 @@
127 -ilog2(E)
128 +LOG2_UP(E)
129
130 @@
131 expression E;
132 @@
133 -roundup_pow_of_two(E)
134 +ROUNDUPPWR2(E)
135
136 @@
137 expression E;
138 @@
139 -rounddown_pow_of_two(E)
140 +ROUNDDOWNPWR2(E)
141
142 @@
143 expression E;
144 @@
145 -is_power_of_2(E)
146 +IS_PWR2(E)
147
148 @@
149 expression DST;
150 expression SRC;
151 expression LEN;
152 @@
153 -copy_from_user(DST, SRC, LEN)
154 +memcpy_from_user(current, DST, SRC, LEN)
155
156 @@
157 expression DST;
158 expression SRC;
159 expression LEN;
160 @@
161 -copy_to_user(DST, SRC, LEN)
162 +memcpy_to_user(current, DST, SRC, LEN)
163
164 @@
165 @@
166 -ktime_get_real()
167 +epoch_nsec()
168
169 @@
170 expression E;
171 @@
172 -ktime_to_ns(E)
173 +E
174
175 @@
176 expression E;
177 @@
178 -htonl(E)
179 +cpu_to_be32(E)
180
181 @@
182 expression E;
183 @@
184 -htons(E)
185 +cpu_to_be16(E)
186
187 @@
188 expression E;
189 @@
190 -ntohl(E)
191 +be32_to_cpu(E)
192
193 @@
194 expression E;
195 @@
196 -ntohs(E)
197 +be16_to_cpu(E)
198
199 @@
200 @@
201 -smp_processor_id()
202 +core_id()
203
204 // This is a little half-assed.  Any fix will need to be manually edited to
205 // provide a pointer to the pci device.  And you'll need to fix your handler to
206 // be the correct type.
207 @@
208 expression IRQ;
209 expression HANDLER;
210 expression FLAGS;
211 expression NAME;
212 expression ARG;
213 @@
214 -request_irq(IRQ, HANDLER, FLAGS, NAME, ARG)
215 +register_irq(IRQ, HANDLER, ARG, pci_to_tbdf(PCIDEV))
216
217 // There are 3 return types for the irq handlers, IRQ_NONE, IRQ_HANDLED, and
218 // IRQ_WAKE_THREAD.  We can change the first two to just return.  The latter
219 // will need manual attention, since they want a thread to handle the rest.
220 @@
221 identifier HANDLER;
222 typedef irqreturn_t;
223 @@
224 irqreturn_t HANDLER(...) {
225 <...
226 -return IRQ_NONE;
227 +return;
228 ...>
229 }
230
231 // Need to comment out irqreturn_t, I guess because it's in a previous rule
232 @@
233 identifier HANDLER;
234 //typedef irqreturn_t;
235 @@
236 irqreturn_t HANDLER(...) {
237 <...
238 -return IRQ_HANDLED;
239 +return;
240 ...>
241 }
242
243 // There should be a way to catch both decl and def at once...
244 // Changes the definition
245 @@
246 identifier HANDLER;
247 //typedef irqreturn_t;
248 identifier IRQ;
249 identifier ARG;
250 @@
251 -irqreturn_t HANDLER(int IRQ, void *ARG
252 +void HANDLER(struct hw_trapframe *hw_tf, void *ARG
253  ) { ... }
254
255 // Changes the declaration
256 @@
257 identifier HANDLER;
258 //typedef irqreturn_t;
259 identifier IRQ;
260 identifier ARG;
261 @@
262 -irqreturn_t HANDLER(int IRQ, void *ARG
263 +void HANDLER(struct hw_trapframe *hw_tf, void *ARG
264  );
265
266 @@
267 expression VAL;
268 expression UP;
269 @@
270 -roundup(VAL, UP)
271 +ROUNDUP(VAL, UP)
272
273 @@
274 expression VAL;
275 expression DOWN;
276 @@
277 -rounddown(VAL, DOWN)
278 +ROUNDDOWN(VAL, DOWN)
279
280 @@
281 expression STMT;
282 @@
283 -BUG_ON(STMT)
284 +assert(!(STMT))
285
286 @@
287 expression STMT;
288 @@
289 -BUILD_BUG_ON(STMT)
290 +static_assert(!(STMT))
291
292 @@
293 @@
294 -BUG()
295 +panic("BUG")
296
297 @@
298 @@
299 -WARN_ON
300 +warn_on
301
302 @@
303 @@
304 -WARN_ON_ONCE
305 +warn_on_once
306
307 @@
308 expression P;
309 @@
310 -pci_set_master(P)
311 +pci_set_bus_master(P)
312
313 @@
314 expression P;
315 @@
316 -pci_clear_master(P)
317 +pci_clr_bus_master(P)