diff --git a/boost/detail/interlocked.hpp b/boost/detail/interlocked.hpp
index 75e5a30..48bb1aa 100644
a
|
b
|
extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
|
125 | 125 | # define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange |
126 | 126 | # define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd |
127 | 127 | |
128 | | #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) |
| 128 | #elif defined( __MINGW64__ ) |
129 | 129 | |
130 | | #if defined(__MINGW64__) |
131 | | #define BOOST_INTERLOCKED_IMPORT |
132 | | #else |
133 | | #define BOOST_INTERLOCKED_IMPORT __declspec(dllimport) |
134 | | #endif |
| 130 | #include <intrin.h> |
| 131 | #define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement |
| 132 | #define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement |
| 133 | #define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange |
| 134 | #define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange |
| 135 | #define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd |
| 136 | #define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer |
| 137 | #define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer |
135 | 138 | |
| 139 | #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) |
136 | 140 | |
137 | 141 | namespace boost |
138 | 142 | { |
… |
… |
namespace boost
|
140 | 144 | namespace detail |
141 | 145 | { |
142 | 146 | |
143 | | extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * ); |
144 | | extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * ); |
145 | | extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long ); |
146 | | extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long ); |
147 | | extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long ); |
| 147 | extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * ); |
| 148 | extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * ); |
| 149 | extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long ); |
| 150 | extern "C" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long ); |
| 151 | extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd( long volatile *, long ); |
148 | 152 | |
149 | 153 | # if defined(_M_IA64) || defined(_M_AMD64) |
150 | | extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* ); |
151 | | extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* ); |
| 154 | extern "C" __declspec(dllimport) void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* ); |
| 155 | extern "C" __declspec(dllimport) void* __stdcall InterlockedExchangePointer( void* volatile *, void* ); |
152 | 156 | # endif |
153 | 157 | |
154 | 158 | } // namespace detail |