34extern "C" long __cdecl _InterlockedIncrement (
volatile long*);
35extern "C" long __cdecl _InterlockedDecrement (
volatile long*);
36extern "C" long __cdecl _InterlockedExchange (
volatile long*,
long);
38# pragma intrinsic (_InterlockedIncrement)
39# pragma intrinsic (_InterlockedDecrement)
40# pragma intrinsic (_InterlockedExchange)
43# if defined (_RWSTD_MSVC) && _RWSTD_MSVC >= 1400
44extern "C" short __cdecl _InterlockedIncrement16 (
volatile short*);
45extern "C" short __cdecl _InterlockedDecrement16 (
volatile short*);
46# pragma intrinsic (_InterlockedIncrement16)
47# pragma intrinsic (_InterlockedDecrement16)
51extern "C" long long __cdecl _InterlockedIncrement64 (
volatile long long*);
52extern "C" long long __cdecl _InterlockedDecrement64 (
volatile long long*);
53extern "C" long long __cdecl _InterlockedExchange64 (
volatile long long*,
56# pragma intrinsic (_InterlockedIncrement64)
57# pragma intrinsic (_InterlockedDecrement64)
58# pragma intrinsic (_InterlockedExchange64)
69__rw_atomic_xchg8 (_RWSTD_INT8_T*, _RWSTD_INT8_T);
72__rw_atomic_xchg16 (_RWSTD_INT16_T*, _RWSTD_INT16_T);
75__rw_atomic_xchg32 (_RWSTD_INT32_T*, _RWSTD_INT32_T);
79__rw_atomic_add8 (_RWSTD_INT8_T*, _RWSTD_INT8_T);
82__rw_atomic_add16 (_RWSTD_INT16_T*, _RWSTD_INT16_T);
85__rw_atomic_add32 (_RWSTD_INT32_T*, _RWSTD_INT32_T);
90__rw_atomic_xchg64 (_RWSTD_INT64_T*, _RWSTD_INT64_T);
93__rw_atomic_add64 (_RWSTD_INT64_T*, _RWSTD_INT64_T);
101__rw_atomic_preincrement (
char &__x,
bool)
111__rw_atomic_preincrement (
signed char &__x,
bool)
121__rw_atomic_preincrement (
unsigned char &__x,
bool)
131__rw_atomic_preincrement (
short &__x,
bool)
135#if defined (_RWSTD_MSVC) && _RWSTD_MSVC >= 1400
136 return _InterlockedIncrement16 (&__x);
145__rw_atomic_preincrement (
unsigned short &__x,
bool)
149#if defined (_RWSTD_MSVC) && _RWSTD_MSVC >= 1400
159__rw_atomic_preincrement (
int &__x,
bool)
173__rw_atomic_preincrement (
unsigned int &__x,
bool)
187__rw_atomic_predecrement (
char &__x,
bool)
197__rw_atomic_predecrement (
signed char &__x,
bool)
207__rw_atomic_predecrement (
unsigned char &__x,
bool)
217__rw_atomic_predecrement (
short &__x,
bool)
221#if defined (_RWSTD_MSVC) && _RWSTD_MSVC >= 1400
222 return _InterlockedDecrement16 (&__x);
231__rw_atomic_predecrement (
unsigned short &__x,
bool)
235#if defined (_RWSTD_MSVC) && _RWSTD_MSVC >= 1400
245__rw_atomic_predecrement (
int &__x,
bool)
259__rw_atomic_predecrement (
unsigned int &__x,
bool)
273__rw_atomic_exchange (
char &__x,
char __y,
bool)
283__rw_atomic_exchange (
signed char &__x,
signed char __y,
bool)
293__rw_atomic_exchange (
unsigned char &__x,
unsigned char __y,
bool)
303__rw_atomic_exchange (
short &__x,
short __y,
bool)
313__rw_atomic_exchange (
unsigned short &__x,
unsigned short __y,
bool)
323__rw_atomic_exchange (
int &__x,
int __y,
bool)
338__rw_atomic_exchange (
unsigned int &__x,
unsigned int __y,
bool)
352#if 4 < _RWSTD_LONG_SIZE
355__rw_atomic_preincrement (
long &__x,
bool)
365__rw_atomic_preincrement (
unsigned long &__x,
bool)
375__rw_atomic_predecrement (
long &__x,
bool)
385__rw_atomic_predecrement (
unsigned long &__x,
bool)
395__rw_atomic_exchange (
long &__x,
long __y,
bool)
405__rw_atomic_exchange (
unsigned long &__x,
unsigned long __y,
bool)
414# define _RWSTD_NO_LONG_ATOMIC_OPS
418#if defined (_RWSTD_LONG_LONG) && (_RWSTD_LLONG_SIZE > _RWSTD_LONG_SIZE)
507# define _RWSTD_NO_LLONG_ATOMIC_OPS
#define _RWSTD_REINTERPRET_CAST(T, x)
#define _RWSTD_STATIC_CAST(T, x)
#define _RWSTD_NAMESPACE(name)
#define _RWSTD_COMPILE_ASSERT(const_expr)