~ubuntu-branches/ubuntu/raring/clucene-core/raring-proposed

« back to all changes in this revision

Viewing changes to src/ext/boost/detail/interlocked.hpp

  • Committer: Package Import Robot
  • Author(s): Fathi Boudra
  • Date: 2012-08-11 09:33:38 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20120811093338-fgrx41ftqew3qt6a
Tags: 2.3.3.4-1
* New upstream release (Closes: #661703).
* Convert package to multiarch.
* Drop obsolete patches:
  - 01_add_missing_include_bug505667.diff
  - 02_posixness_fix_bug530308.diff
* Add patches:
  - Fixing_ZLIB_configuration_in_shared_CMakeLists.patch
  - Fix-pkgconfig-file-by-adding-clucene-shared-library.patch
  - Install-contribs-lib.patch
  - multiarch.patch
* Update debian/compat: bump to 8.
* Update debian/control:
  - update build dependencies (add cmake, libboost-dev and libz-dev).
  - bump Standards-Version to 3.9.3.
  - rename packages due to ABI bump: libclucene0ldbl -> libclucene-core1.
  - add libclucene-contribs1 package.
* Update debian/rules:
  - rewrite to use CMake.
  - add multiarch support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
 
2
#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
 
3
 
 
4
// MS compatible compilers support #pragma once
 
5
 
 
6
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 
7
# pragma once
 
8
#endif
 
9
 
 
10
//
 
11
//  boost/detail/interlocked.hpp
 
12
//
 
13
//  Copyright 2005 Peter Dimov
 
14
//
 
15
//  Distributed under the Boost Software License, Version 1.0. (See
 
16
//  accompanying file LICENSE_1_0.txt or copy at
 
17
//  http://www.boost.org/LICENSE_1_0.txt)
 
18
//
 
19
 
 
20
#include <boost/config.hpp>
 
21
 
 
22
#if defined( BOOST_USE_WINDOWS_H )
 
23
 
 
24
# include <windows.h>
 
25
 
 
26
# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
 
27
# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
 
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)))
 
54
 
 
55
#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
 
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
 
 
67
extern "C" long __cdecl _InterlockedIncrement( long volatile * );
 
68
extern "C" long __cdecl _InterlockedDecrement( long volatile * );
 
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
 
74
 
 
75
# pragma intrinsic( _InterlockedIncrement )
 
76
# pragma intrinsic( _InterlockedDecrement )
 
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
 
100
 
 
101
# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
 
102
# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
 
103
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
 
104
# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
 
105
# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
 
106
 
 
107
#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
 
108
 
 
109
namespace boost
 
110
{
 
111
 
 
112
namespace detail
 
113
{
 
114
 
 
115
extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * );
 
116
extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * );
 
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 );
 
120
 
 
121
} // namespace detail
 
122
 
 
123
} // namespace boost
 
124
 
 
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)))
 
135
 
 
136
#else
 
137
 
 
138
# error "Interlocked intrinsics not available"
 
139
 
 
140
#endif
 
141
 
 
142
#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED