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