1 // To apply, at the top of xnu.git:
2 // $ spatch --max-width=120 --use-gitgrep --in-place --include-headers --sp-file tools/cocci/os_atomic_normalize.cocci -dir .
3 //
4 // coccinelle insists on adding a space for (void) casts which can be fixed with:
5 // $ git grep -l '(void) os_atomic' | xargs -n1 sed -i '' -e 's/(void) os_atomic/(void)os_atomic/'
6
7 @os_atomic@
8 identifier fn =~ "^os_atomic";
9 @@
10
11 fn
12
13 @script:ocaml unorig@
14 fn << os_atomic.fn;
15 new_fn;
16 @@
17
18 new_fn := make_ident (Str.global_replace (Str.regexp "_orig") "" fn)
19
20 @@
21 identifier os_atomic.fn;
22 identifier unorig.new_fn;
23 expression A, B, C;
24 @@
25
26 -(void)fn
27 +new_fn
28 (...)
29
30 @@ expression E, F, m; @@
31
32 (
33 - os_atomic_add(E, 1, m)
34 + os_atomic_inc(E, m)
35 |
36 - os_atomic_add_orig(E, 1, m)
37 + os_atomic_inc_orig(E, m)
38 |
39 - os_atomic_sub(E, -1, m)
40 + os_atomic_inc(E, m)
41 |
42 - os_atomic_sub_orig(E, -1, m)
43 + os_atomic_inc_orig(E, m)
44 |
45 - os_atomic_add(E, -1, m)
46 + os_atomic_dec(E, m)
47 |
48 - os_atomic_add_orig(E, -1, m)
49 + os_atomic_dec_orig(E, m)
50 |
51 - os_atomic_sub(E, 1, m)
52 + os_atomic_dec(E, m)
53 |
54 - os_atomic_sub_orig(E, 1, m)
55 + os_atomic_dec_orig(E, m)
56 |
57 - os_atomic_add(E, -(F), m)
58 + os_atomic_sub(E, F, m)
59 |
60 - os_atomic_add_orig(E, -(F), m)
61 + os_atomic_sub_orig(E, F, m)
62 |
63 - os_atomic_add(E, -F, m)
64 + os_atomic_sub(E, F, m)
65 |
66 - os_atomic_add_orig(E, -F, m)
67 + os_atomic_sub_orig(E, F, m)
68 |
69 - os_atomic_sub(E, -(F), m)
70 + os_atomic_add(E, F, m)
71 |
72 - os_atomic_sub_orig(E, -(F), m)
73 + os_atomic_add_orig(E, F, m)
74 |
75 - os_atomic_sub(E, -F, m)
76 + os_atomic_add(E, F, m)
77 |
78 - os_atomic_sub_orig(E, -F, m)
79 + os_atomic_add_orig(E, F, m)
80 |
81 - os_atomic_and(E, ~(F), m)
82 + os_atomic_andnot(E, F, m)
83 |
84 - os_atomic_and_orig(E, ~(F), m)
85 + os_atomic_andnot_orig(E, F, m)
86 |
87 - os_atomic_and(E, ~F, m)
88 + os_atomic_andnot(E, F, m)
89 |
90 - os_atomic_and_orig(E, ~F, m)
91 + os_atomic_andnot_orig(E, F, m)
92 )
93
94 // vim:ft=diff:
Cache object: d1f72cb1287982518d1c359a4471fbb2
|