Changeset be6515d in rtems-libbsd
- Timestamp:
- 09/17/18 05:38:32 (6 years ago)
- Branches:
- 5, 5-freebsd-12, 6-freebsd-12, master
- Children:
- 860d833
- Parents:
- 1af372a
- git-author:
- Sebastian Huber <sebastian.huber@…> (09/17/18 05:38:32)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (09/21/18 08:29:43)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
freebsd/sys/contrib/ck/include/gcc/ck_pr.h
r1af372a rbe6515d 33 33 34 34 #include <ck_cc.h> 35 #ifdef RTEMS_SMP 36 #define CK_PR_ATOMIC_ORDER __ATOMIC_SEQ_CST 37 #else 38 #define CK_PR_ATOMIC_ORDER __ATOMIC_RELAXED 39 #endif 35 40 36 41 CK_CC_INLINE static void … … 123 128 * Load and store fences are equivalent to full fences in the GCC port. 124 129 */ 125 #define CK_PR_FENCE(T) \ 126 CK_CC_INLINE static void \ 127 ck_pr_fence_strict_##T(void) \ 128 { \ 129 __atomic_thread_fence(__ATOMIC_SEQ_CST);\ 130 } 130 #ifdef RTEMS_SMP 131 #define CK_PR_FENCE(T) \ 132 CK_CC_INLINE static void \ 133 ck_pr_fence_strict_##T(void) \ 134 { \ 135 __atomic_thread_fence(CK_PR_ATOMIC_ORDER); \ 136 } 137 #else 138 #define CK_PR_FENCE(T) \ 139 CK_CC_INLINE static void \ 140 ck_pr_fence_strict_##T(void) \ 141 { \ 142 __asm__ __volatile__("" ::: "memory"); \ 143 } 144 #endif 131 145 132 146 CK_PR_FENCE(atomic) … … 160 174 bool z; \ 161 175 z = __atomic_compare_exchange_n((T *)target, &compare, set, \ 162 false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);\176 false, CK_PR_ATOMIC_ORDER, CK_PR_ATOMIC_ORDER); \ 163 177 return z; \ 164 178 } … … 187 201 *(void **)v = compare; 188 202 return __atomic_compare_exchange_n((void **)target, v, set, false, 189 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);203 CK_PR_ATOMIC_ORDER, CK_PR_ATOMIC_ORDER); 190 204 } 191 205 … … 196 210 *v = compare; \ 197 211 return __atomic_compare_exchange_n(target, v, set, \ 198 false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);\212 false, CK_PR_ATOMIC_ORDER, CK_PR_ATOMIC_ORDER); \ 199 213 } 200 214 … … 217 231 { \ 218 232 d = __atomic_fetch_add((T *)target, d, \ 219 __ATOMIC_SEQ_CST);\233 CK_PR_ATOMIC_ORDER); \ 220 234 return (d); \ 221 235 } … … 244 258 { \ 245 259 d = __atomic_fetch_##K((T *)target, d, \ 246 __ATOMIC_SEQ_CST);\260 CK_PR_ATOMIC_ORDER); \ 247 261 return; \ 248 262 } … … 297 311 #undef CK_PR_UNARY_S 298 312 #undef CK_PR_UNARY 313 #undef CK_PR_ATOMIC_ORDER 299 314 #endif /* !CK_F_PR */ 300 315 #endif /* CK_PR_GCC_H */
Note: See TracChangeset
for help on using the changeset viewer.