~ubuntu-branches/ubuntu/oneiric/bombono-dvd/oneiric

« back to all changes in this revision

Viewing changes to libs/boost-lib/boost/detail/interlocked.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2010-11-04 11:46:25 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20101104114625-2tfaxma74eqggp5r
Tags: 0.8.0-0ubuntu1
* New upstream release (LP: #670193).
* Refresh 02_sparc.diff patch.
* Replace 05-boost_filesystem-link.patch with 05-fix_boost.patch, it fixes
  build failure with Boost <= 1.44.
* Bump Standards.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
27
27
# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
28
28
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
 
29
# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
 
30
# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
 
31
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer
 
32
# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer
 
33
 
 
34
#elif defined(_WIN32_WCE)
 
35
 
 
36
// under Windows CE we still have old-style Interlocked* functions
 
37
 
 
38
extern "C" long __cdecl InterlockedIncrement( long* );
 
39
extern "C" long __cdecl InterlockedDecrement( long* );
 
40
extern "C" long __cdecl InterlockedCompareExchange( long*, long, long );
 
41
extern "C" long __cdecl InterlockedExchange( long*, long );
 
42
extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
 
43
 
 
44
# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
 
45
# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
 
46
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
 
47
# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
 
48
# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
 
49
 
 
50
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
 
51
    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
 
52
# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
 
53
    ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
29
54
 
30
55
#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
31
56
 
 
57
#if defined( __CLRCALL_PURE_OR_CDECL )
 
58
 
 
59
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
 
60
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
 
61
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long );
 
62
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long );
 
63
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long );
 
64
 
 
65
#else
 
66
 
32
67
extern "C" long __cdecl _InterlockedIncrement( long volatile * );
33
68
extern "C" long __cdecl _InterlockedDecrement( long volatile * );
34
69
extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
 
70
extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
 
71
extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
 
72
 
 
73
#endif
35
74
 
36
75
# pragma intrinsic( _InterlockedIncrement )
37
76
# pragma intrinsic( _InterlockedDecrement )
38
77
# pragma intrinsic( _InterlockedCompareExchange )
 
78
# pragma intrinsic( _InterlockedExchange )
 
79
# pragma intrinsic( _InterlockedExchangeAdd )
 
80
 
 
81
# if defined(_M_IA64) || defined(_M_AMD64)
 
82
 
 
83
extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
 
84
extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
 
85
 
 
86
#  pragma intrinsic( _InterlockedCompareExchangePointer )
 
87
#  pragma intrinsic( _InterlockedExchangePointer )
 
88
 
 
89
#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
 
90
#  define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
 
91
 
 
92
# else
 
93
 
 
94
#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
 
95
    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
 
96
#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
 
97
    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
 
98
 
 
99
# endif
39
100
 
40
101
# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
41
102
# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
42
103
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
 
104
# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
 
105
# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
43
106
 
44
 
#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
 
107
#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
45
108
 
46
109
namespace boost
47
110
{
52
115
extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * );
53
116
extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * );
54
117
extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long );
 
118
extern "C" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long );
 
119
extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd( long volatile *, long );
55
120
 
56
121
} // namespace detail
57
122
 
58
123
} // namespace boost
59
124
 
60
 
# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
61
 
# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
62
 
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
 
125
# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement
 
126
# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement
 
127
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange
 
128
# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange
 
129
# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd
 
130
 
 
131
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
 
132
    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
 
133
# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
 
134
    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
63
135
 
64
136
#else
65
137