Changeset baf1ca7 in rtems-libbsd
- Timestamp:
- 09/10/18 13:06:07 (6 years ago)
- Branches:
- 5, 5-freebsd-12, 6-freebsd-12, master
- Children:
- 3becda1
- Parents:
- bcdce02
- git-author:
- Sebastian Huber <sebastian.huber@…> (09/10/18 13:06:07)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (09/21/18 08:29:41)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
freebsd/sys/contrib/ck/include/gcc/ck_pr.h
rbcdce02 rbaf1ca7 127 127 ck_pr_fence_strict_##T(void) \ 128 128 { \ 129 __ sync_synchronize();\129 __atomic_thread_fence(__ATOMIC_SEQ_CST);\ 130 130 } 131 131 … … 159 159 { \ 160 160 bool z; \ 161 z = __sync_bool_compare_and_swap((T *)target, compare, set); \ 161 z = __atomic_compare_exchange_n((T *)target, &compare, set, \ 162 false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); \ 162 163 return z; \ 163 164 } … … 184 185 ck_pr_cas_ptr_value(void *target, void *compare, void *set, void *v) 185 186 { 186 set = __sync_val_compare_and_swap((void **)target, compare, set);187 *(void **)v = set;188 return (set == compare);187 *(void **)v = compare; 188 return __atomic_compare_exchange_n((void **)target, v, set, false, 189 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); 189 190 } 190 191 … … 193 194 ck_pr_cas_##S##_value(T *target, T compare, T set, T *v) \ 194 195 { \ 195 set = __sync_val_compare_and_swap(target, compare, set);\196 *v = set;\197 return (set == compare);\196 *v = compare; \ 197 return __atomic_compare_exchange_n(target, v, set, \ 198 false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); \ 198 199 } 199 200 … … 215 216 ck_pr_faa_##S(M *target, T d) \ 216 217 { \ 217 d = __sync_fetch_and_add((T *)target, d); \ 218 d = __atomic_fetch_add((T *)target, d, \ 219 __ATOMIC_SEQ_CST); \ 218 220 return (d); \ 219 221 } … … 241 243 ck_pr_##K##_##S(M *target, T d) \ 242 244 { \ 243 d = __sync_fetch_and_##K((T *)target, d); \ 245 d = __atomic_fetch_##K((T *)target, d, \ 246 __ATOMIC_SEQ_CST); \ 244 247 return; \ 245 248 }
Note: See TracChangeset
for help on using the changeset viewer.