@@ -66,11 +66,11 @@ return OSAtomicAdd64Barrier(i, p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_add_int not implemented! #endif } static OF_INLINE int32_t of_atomic_add_32(volatile int32_t *p, int32_t i) @@ -90,11 +90,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_add_and_fetch(p, i); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicAdd32Barrier(i, p); #else -# error No atomic operations available! +# error of_atomic_add_32 not implemented! #endif } static OF_INLINE void* of_atomic_add_ptr(void* volatile *p, intptr_t i) @@ -131,11 +131,11 @@ return (void*)OSAtomicAdd64Barrier(i, (int64_t*)p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_add_ptr not implemented! #endif } static OF_INLINE int of_atomic_sub_int(volatile int *p, int i) @@ -177,11 +177,11 @@ return OSAtomicAdd64Barrier(-i, p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_sub_int not implemented! #endif } static OF_INLINE int32_t of_atomic_sub_32(volatile int32_t *p, int32_t i) @@ -202,11 +202,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_sub_and_fetch(p, i); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicAdd32Barrier(-i, p); #else -# error No atomic operations available! +# error of_atomic_sub_32 not implemented! #endif } static OF_INLINE void* of_atomic_sub_ptr(void* volatile *p, intptr_t i) @@ -245,11 +245,11 @@ return (void*)OSAtomicAdd64Barrier(-i, (int64_t*)p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_sub_ptr not implemented! #endif } static OF_INLINE int of_atomic_inc_int(volatile int *p) @@ -295,11 +295,11 @@ return OSAtomicDecrement64Barrier(p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_inc_int not implemented! #endif } static OF_INLINE int32_t of_atomic_inc_32(volatile int32_t *p) @@ -323,11 +323,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_add_and_fetch(p, 1); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicIncrement32Barrier(p); #else -# error No atomic operations available! +# error of_atomic_inc_32 not implemented! #endif } static OF_INLINE int of_atomic_dec_int(volatile int *p) @@ -373,11 +373,11 @@ return OSAtomicDecrement64Barrier(p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_dec_int not implemented! #endif } static OF_INLINE int32_t of_atomic_dec_32(volatile int32_t *p) @@ -401,11 +401,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_sub_and_fetch(p, 1); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicDecrement32Barrier(p); #else -# error No atomic operations available! +# error of_atomic_dec_32 not implemented! #endif } static OF_INLINE unsigned int of_atomic_or_int(volatile unsigned int *p, unsigned int i) @@ -455,11 +455,11 @@ return OSAtomicOr64Barrier(i, p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_or_int not implemented! #endif } static OF_INLINE uint32_t of_atomic_or_32(volatile uint32_t *p, uint32_t i) @@ -484,11 +484,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_or_and_fetch(p, i); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicOr32Barrier(i, p); #else -# error No atomic operations available! +# error of_atomic_or_32 not implemented! #endif } static OF_INLINE unsigned int of_atomic_and_int(volatile unsigned int *p, unsigned int i) @@ -538,11 +538,11 @@ return OSAtomicAnd64Barrier(i, p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_and_int not implemented! #endif } static OF_INLINE uint32_t of_atomic_and_32(volatile uint32_t *p, uint32_t i) @@ -567,11 +567,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_and_and_fetch(p, i); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicAnd32Barrier(i, p); #else -# error No atomic operations available! +# error of_atomic_and_32 not implemented! #endif } static OF_INLINE unsigned int of_atomic_xor_int(volatile unsigned int *p, unsigned int i) @@ -621,11 +621,11 @@ return OSAtomicXor64Barrier(i, p); # endif else abort(); #else -# error No atomic operations available! +# error of_atomic_xor_int not implemented! #endif } static OF_INLINE uint32_t of_atomic_xor_32(volatile uint32_t *p, uint32_t i) @@ -650,11 +650,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_xor_and_fetch(p, i); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicXor32Barrier(i, p); #else -# error No atomic operations available! +# error of_atomic_xor_32 not implemented! #endif } static OF_INLINE bool of_atomic_cmpswap_int(volatile int *p, int o, int n) @@ -683,11 +683,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_bool_compare_and_swap(p, o, n); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicCompareAndSwapIntBarrier(o, n, p); #else -# error No atomic operations available! +# error of_atomic_cmpswap_int not implemented! #endif } static OF_INLINE bool of_atomic_cmpswap_32(volatile int32_t *p, int32_t o, int32_t n) @@ -716,11 +716,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_bool_compare_and_swap(p, o, n); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicCompareAndSwap32Barrier(o, n, p); #else -# error No atomic operations available! +# error of_atomic_cmpswap_32 not implemented! #endif } static OF_INLINE bool of_atomic_cmpswap_ptr(void* volatile *p, void *o, void *n) @@ -749,11 +749,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) return __sync_bool_compare_and_swap(p, o, n); #elif defined(OF_HAVE_OSATOMIC) return OSAtomicCompareAndSwapPtrBarrier(o, n, p); #else -# error No atomic operations available! +# error of_atomic_cmpswap_ptr not implemented! #endif } static OF_INLINE void of_memory_barrier(void) @@ -766,11 +766,11 @@ #elif defined(OF_HAVE_GCC_ATOMIC_OPS) __sync_synchronize(); #elif defined(OF_HAVE_OSATOMIC) OSMemoryBarrier(); #else -# error No atomic operations available! +# error of_memory_barrier not implemented! #endif } static OF_INLINE void of_memory_read_barrier(void)