1// To apply, at the top of xnu.git: 2// $ spatch --max-width=120 --use-gitgrep --in-place --include-headers --sp-file tools/cocci/OSAtomic_rewrite.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@@ expression E; @@ 8 9( 10- OSIncrementAtomic(E) 11+ os_atomic_inc_orig(E, relaxed) 12| 13- OSIncrementAtomic8(E) 14+ os_atomic_inc_orig(E, relaxed) 15| 16- OSIncrementAtomic16(E) 17+ os_atomic_inc_orig(E, relaxed) 18| 19- OSIncrementAtomic32(E) 20+ os_atomic_inc_orig(E, relaxed) 21| 22- OSIncrementAtomic64(E) 23+ os_atomic_inc_orig(E, relaxed) 24| 25- OSIncrementAtomicLong(E) 26+ os_atomic_inc_orig(E, relaxed) 27| 28- OSAddAtomic(1, E) 29+ os_atomic_inc_orig(E, relaxed) 30| 31- OSAddAtomic8(1, E) 32+ os_atomic_inc_orig(E, relaxed) 33| 34- OSAddAtomic16(1, E) 35+ os_atomic_inc_orig(E, relaxed) 36| 37- OSAddAtomic32(1, E) 38+ os_atomic_inc_orig(E, relaxed) 39| 40- OSAddAtomic64(1, E) 41+ os_atomic_inc_orig(E, relaxed) 42| 43- OSAddAtomicLong(1, E) 44+ os_atomic_inc_orig(E, relaxed) 45| 46- OSDecrementAtomic(E) 47+ os_atomic_dec_orig(E, relaxed) 48| 49- OSDecrementAtomic8(E) 50+ os_atomic_dec_orig(E, relaxed) 51| 52- OSDecrementAtomic16(E) 53+ os_atomic_dec_orig(E, relaxed) 54| 55- OSDecrementAtomic32(E) 56+ os_atomic_dec_orig(E, relaxed) 57| 58- OSDecrementAtomic64(E) 59+ os_atomic_dec_orig(E, relaxed) 60| 61- OSDecrementAtomicLong(E) 62+ os_atomic_dec_orig(E, relaxed) 63| 64- OSAddAtomic(-1, E) 65+ os_atomic_dec_orig(E, relaxed) 66| 67- OSAddAtomic8(-1, E) 68+ os_atomic_dec_orig(E, relaxed) 69| 70- OSAddAtomic16(-1, E) 71+ os_atomic_dec_orig(E, relaxed) 72| 73- OSAddAtomic32(-1, E) 74+ os_atomic_dec_orig(E, relaxed) 75| 76- OSAddAtomic64(-1, E) 77+ os_atomic_dec_orig(E, relaxed) 78| 79- OSAddAtomicLong(-1, E) 80+ os_atomic_dec_orig(E, relaxed) 81) 82 83@@ expression E, F; @@ 84 85( 86- OSAddAtomic(-F, E) 87+ os_atomic_sub_orig(E, F, relaxed) 88| 89- OSAddAtomic8(-F, E) 90+ os_atomic_sub_orig(E, F, relaxed) 91| 92- OSAddAtomic16(-F, E) 93+ os_atomic_sub_orig(E, F, relaxed) 94| 95- OSAddAtomic32(-F, E) 96+ os_atomic_sub_orig(E, F, relaxed) 97| 98- OSAddAtomic64(-F, E) 99+ os_atomic_sub_orig(E, F, relaxed) 100| 101- OSAddAtomicLong(-F, E) 102+ os_atomic_sub_orig(E, F, relaxed) 103| 104- OSAddAtomic(F, E) 105+ os_atomic_add_orig(E, F, relaxed) 106| 107- OSAddAtomic8(F, E) 108+ os_atomic_add_orig(E, F, relaxed) 109| 110- OSAddAtomic16(F, E) 111+ os_atomic_add_orig(E, F, relaxed) 112| 113- OSAddAtomic32(F, E) 114+ os_atomic_add_orig(E, F, relaxed) 115| 116- OSAddAtomic64(F, E) 117+ os_atomic_add_orig(E, F, relaxed) 118| 119- OSAddAtomicLong(F, E) 120+ os_atomic_add_orig(E, F, relaxed) 121| 122- OSBitOrAtomic(F, E) 123+ os_atomic_or_orig(E, F, relaxed) 124| 125- OSBitOrAtomic8(F, E) 126+ os_atomic_or_orig(E, F, relaxed) 127| 128- OSBitOrAtomic16(F, E) 129+ os_atomic_or_orig(E, F, relaxed) 130| 131- OSBitOrAtomic32(F, E) 132+ os_atomic_or_orig(E, F, relaxed) 133| 134- OSBitOrAtomic64(F, E) 135+ os_atomic_or_orig(E, F, relaxed) 136| 137- OSBitOrAtomicLong(F, E) 138+ os_atomic_or_orig(E, F, relaxed) 139| 140- OSBitXorAtomic(F, E) 141+ os_atomic_xor_orig(E, F, relaxed) 142| 143- OSBitXorAtomic8(F, E) 144+ os_atomic_xor_orig(E, F, relaxed) 145| 146- OSBitXorAtomic16(F, E) 147+ os_atomic_xor_orig(E, F, relaxed) 148| 149- OSBitXorAtomic32(F, E) 150+ os_atomic_xor_orig(E, F, relaxed) 151| 152- OSBitXorAtomic64(F, E) 153+ os_atomic_xor_orig(E, F, relaxed) 154| 155- OSBitXorAtomicLong(F, E) 156+ os_atomic_xor_orig(E, F, relaxed) 157| 158- OSBitAndAtomic(F, E) 159+ os_atomic_and_orig(E, F, relaxed) 160| 161- OSBitAndAtomic8(F, E) 162+ os_atomic_and_orig(E, F, relaxed) 163| 164- OSBitAndAtomic16(F, E) 165+ os_atomic_and_orig(E, F, relaxed) 166| 167- OSBitAndAtomic32(F, E) 168+ os_atomic_and_orig(E, F, relaxed) 169| 170- OSBitAndAtomic64(F, E) 171+ os_atomic_and_orig(E, F, relaxed) 172| 173- OSBitAndAtomicLong(F, E) 174+ os_atomic_and_orig(E, F, relaxed) 175) 176 177@@ expression E, F, A; @@ 178 179( 180- OSCompareAndSwap(F, E, A) 181+ os_atomic_cmpxchg(A, E, F, acq_rel) 182| 183- OSCompareAndSwapPtr(F, E, A) 184+ os_atomic_cmpxchg(A, E, F, acq_rel) 185| 186- OSCompareAndSwap8(F, E, A) 187+ os_atomic_cmpxchg(A, E, F, acq_rel) 188| 189- OSCompareAndSwap16(F, E, A) 190+ os_atomic_cmpxchg(A, E, F, acq_rel) 191| 192- OSCompareAndSwap32(F, E, A) 193+ os_atomic_cmpxchg(A, E, F, acq_rel) 194| 195- OSCompareAndSwap64(F, E, A) 196+ os_atomic_cmpxchg(A, E, F, acq_rel) 197| 198- OSCompareAndSwapLong(F, E, A) 199+ os_atomic_cmpxchg(A, E, F, acq_rel) 200) 201 202// vim:ft=diff: 203