51 #ifndef __ATOMIC_OPS_EXT_H__
52 #define __ATOMIC_OPS_EXT_H__
62 #if (LG_SIZEOF_PTR == 8)
64 #elif (LG_SIZEOF_PTR == 4)
71 #if (LG_SIZEOF_PTR == 8)
73 #elif (LG_SIZEOF_PTR == 4)
80 #if (LG_SIZEOF_PTR == 8)
82 #elif (LG_SIZEOF_PTR == 4)
89 #if (LG_SIZEOF_PTR == 8)
91 #elif (LG_SIZEOF_PTR == 4)
98 #if (LG_SIZEOF_PTR == 8)
100 #elif (LG_SIZEOF_PTR == 4)
107 #if (LG_SIZEOF_PTR == 8)
109 #elif (LG_SIZEOF_PTR == 4)
116 #if (LG_SIZEOF_PTR == 8)
118 #elif (LG_SIZEOF_PTR == 4)
126 while ((prev_value = *p) <
x) {
137 "sizeof(unsigned int) != LG_SIZEOF_INT");
141 #if (LG_SIZEOF_INT == 8)
143 #elif (LG_SIZEOF_INT == 4)
150 #if (LG_SIZEOF_INT == 8)
152 #elif (LG_SIZEOF_INT == 4)
159 #if (LG_SIZEOF_INT == 8)
161 #elif (LG_SIZEOF_INT == 4)
168 #if (LG_SIZEOF_INT == 8)
170 #elif (LG_SIZEOF_INT == 4)
177 #if (LG_SIZEOF_INT == 8)
179 #elif (LG_SIZEOF_INT == 4)
201 #if (LG_SIZEOF_PTR == 8)
203 #elif (LG_SIZEOF_PTR == 4)
210 #if (LG_SIZEOF_PTR == 8)
212 #elif (LG_SIZEOF_PTR == 4)
219 #if (LG_SIZEOF_PTR == 8)
221 #elif (LG_SIZEOF_PTR == 4)
233 return *(
float *)&
ret;
238 float oldval, newval;
ATOMIC_INLINE void atomic_store_uint64(uint64_t *p, uint64_t v)
ATOMIC_INLINE uint8_t atomic_fetch_and_and_uint8(uint8_t *p, uint8_t b)
ATOMIC_INLINE uint64_t atomic_load_uint64(const uint64_t *v)
ATOMIC_INLINE uint32_t atomic_fetch_and_add_uint32(uint32_t *p, uint32_t x)
ATOMIC_INLINE uint8_t atomic_fetch_and_or_uint8(uint8_t *p, uint8_t b)
ATOMIC_INLINE uint32_t atomic_add_and_fetch_uint32(uint32_t *p, uint32_t x)
ATOMIC_INLINE uint64_t atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new)
ATOMIC_INLINE uint64_t atomic_fetch_and_add_uint64(uint64_t *p, uint64_t x)
ATOMIC_INLINE uint64_t atomic_add_and_fetch_uint64(uint64_t *p, uint64_t x)
ATOMIC_INLINE uint32_t atomic_load_uint32(const uint32_t *v)
ATOMIC_INLINE void atomic_store_uint32(uint32_t *p, uint32_t v)
ATOMIC_INLINE uint32_t atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
ATOMIC_INLINE unsigned int atomic_fetch_and_sub_u(unsigned int *p, unsigned int x)
ATOMIC_INLINE size_t atomic_load_z(const size_t *v)
ATOMIC_INLINE size_t atomic_add_and_fetch_z(size_t *p, size_t x)
ATOMIC_INLINE size_t atomic_sub_and_fetch_z(size_t *p, size_t x)
ATOMIC_INLINE size_t atomic_fetch_and_sub_z(size_t *p, size_t x)
ATOMIC_INLINE float atomic_add_and_fetch_fl(float *p, const float x)
ATOMIC_INLINE char atomic_fetch_and_or_char(char *p, char b)
ATOMIC_INLINE unsigned int atomic_add_and_fetch_u(unsigned int *p, unsigned int x)
ATOMIC_INLINE void * atomic_load_ptr(void *const *v)
ATOMIC_INLINE void * atomic_cas_ptr(void **v, void *old, void *_new)
ATOMIC_INLINE char atomic_fetch_and_and_char(char *p, char b)
ATOMIC_INLINE unsigned int atomic_cas_u(unsigned int *v, unsigned int old, unsigned int _new)
ATOMIC_STATIC_ASSERT(sizeof(size_t)==LG_SIZEOF_PTR, "sizeof(size_t) != LG_SIZEOF_PTR")
ATOMIC_INLINE size_t atomic_cas_z(size_t *v, size_t old, size_t _new)
ATOMIC_INLINE void atomic_store_z(size_t *p, size_t v)
ATOMIC_INLINE float atomic_cas_float(float *v, float old, float _new)
ATOMIC_INLINE size_t atomic_fetch_and_add_z(size_t *p, size_t x)
ATOMIC_INLINE size_t atomic_fetch_and_update_max_z(size_t *p, size_t x)
ATOMIC_INLINE void atomic_store_ptr(void **p, void *v)
ATOMIC_INLINE unsigned int atomic_sub_and_fetch_u(unsigned int *p, unsigned int x)
ATOMIC_INLINE unsigned int atomic_fetch_and_add_u(unsigned int *p, unsigned int x)
#define _ATOMIC_UNLIKELY(x)
ATTR_WARN_UNUSED_RESULT const BMVert * v
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
unsigned __int64 uint64_t