33#include <sys/atomic_op.h>
35#define _RWSTD_NO_CHAR_ATOMIC_OPS
36#define _RWSTD_NO_SHORT_ATOMIC_OPS
37#define _RWSTD_NO_LLONG_ATOMIC_OPS
42__rw_atomic_preincrement (
int &__x,
bool)
44 return fetch_and_add (&__x, 1) + 1;
49__rw_atomic_preincrement (
unsigned &__x,
bool)
57__rw_atomic_predecrement (
int &__x,
bool)
59 return fetch_and_add(&__x,-1) - 1;
64__rw_atomic_predecrement (
unsigned &__x,
bool)
72__rw_atomic_exchange (
int &__x,
int __y,
bool)
78 }
while (!compare_and_swap (&__x, &__tmp, __y));
85__rw_atomic_exchange (
unsigned &__x,
unsigned __y,
bool)
92# if _RWSTD_INT_SIZE < _RWSTD_LONG_SIZE
95__rw_atomic_preincrement (
long &__x,
bool)
97 return fetch_and_addlp (&__x, 1) + 1;
102__rw_atomic_preincrement (
unsigned long &__x,
bool)
110__rw_atomic_predecrement (
long &__x,
bool)
112 return fetch_and_addlp (&__x, -1) - 1;
117__rw_atomic_predecrement (
unsigned long &__x,
bool)
125__rw_atomic_exchange (
long &__x,
long __y,
bool)
131 }
while (!compare_and_swaplp (&__x, &__tmp, __y));
138__rw_atomic_exchange (
unsigned long &__x,
unsigned long __y,
bool)
145# define _RWSTD_NO_LONG_ATOMIC_OPS
#define _RWSTD_REINTERPRET_CAST(T, x)
#define _RWSTD_STATIC_CAST(T, x)
#define _RWSTD_NAMESPACE(name)