2 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
3 # include "ace/os_include/os_intrin.h"
4 # pragma intrinsic (_InterlockedExchange, _InterlockedExchangeAdd, _InterlockedIncrement, _InterlockedDecrement)
5 #endif /* ACE_HAS_INTRINSIC_INTERLOCKED */
7 #if defined (ACE_HAS_VXATOMICLIB)
8 # include <vxAtomicLib.h>
11 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
13 #if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
16 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op ()
22 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c)
28 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (
29 const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
35 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ ()
37 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
38 return ::_InterlockedIncrement (const_cast<long *> (&this->value_));
40 return ::InterlockedIncrement (const_cast<long *> (&this->value_));
41 #elif defined (ACE_HAS_VXATOMICLIB)
42 return ::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) + 1;
44 return (*increment_fn_) (&this->value_);
49 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (int)
55 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- ()
57 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
58 return ::_InterlockedDecrement (const_cast<long *> (&this->value_));
60 return ::InterlockedDecrement (const_cast<long *> (&this->value_));
61 #elif defined (ACE_HAS_VXATOMICLIB)
62 return ::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) - 1;
64 return (*decrement_fn_) (&this->value_);
69 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- (int)
75 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator+= (long rhs)
77 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
78 return ::_InterlockedExchangeAdd (const_cast<long *> (&this->value_),
80 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
81 return ::InterlockedExchangeAdd (const_cast<long *> (&this->value_),
83 #elif defined (ACE_HAS_VXATOMICLIB)
84 return ::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) + rhs;
85 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
86 return (*exchange_add_fn_) (&this->value_, rhs) + rhs;
87 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
91 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-= (long rhs)
93 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
94 return ::_InterlockedExchangeAdd (const_cast<long *> (&this->value_),
96 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
97 return ::InterlockedExchangeAdd (const_cast<long *> (&this->value_),
99 #elif defined (ACE_HAS_VXATOMICLIB)
100 return ::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) - rhs;
101 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
102 return (*exchange_add_fn_) (&this->value_, -rhs) - rhs;
103 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
107 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator== (long rhs) const
109 return (this->value_ == rhs);
113 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator!= (long rhs) const
115 return (this->value_ != rhs);
119 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator>= (long rhs) const
121 return (this->value_ >= rhs);
125 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator> (long rhs) const
127 return (this->value_ > rhs);
131 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator<= (long rhs) const
133 return (this->value_ <= rhs);
137 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator< (long rhs) const
139 return (this->value_ < rhs);
142 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, long> &
143 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
145 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
146 ::_InterlockedExchange (const_cast<long *> (&this->value_), rhs);
147 #elif defined (WIN32)
148 ::InterlockedExchange (const_cast<long *> (&this->value_), rhs);
149 #elif defined (ACE_HAS_VXATOMICLIB)
150 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs);
152 (*exchange_fn_) (&this->value_, rhs);
157 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, long> &
158 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (
159 const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
161 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
162 ::_InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_);
163 #elif defined (WIN32)
164 ::InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_);
165 #elif defined (ACE_HAS_VXATOMICLIB)
166 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs.value_);
168 (*exchange_fn_) (&this->value_, rhs.value_);
174 ACE_Atomic_Op<ACE_Thread_Mutex, long>::exchange (long newval)
176 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
177 return ::_InterlockedExchange (const_cast<long *> (&this->value_), newval);
178 #elif defined (WIN32)
179 return ::InterlockedExchange (const_cast<long *> (&this->value_), newval);
180 #elif defined (ACE_HAS_VXATOMICLIB)
181 return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), newval);
183 return (*exchange_fn_) (&this->value_, newval);
188 ACE_Atomic_Op<ACE_Thread_Mutex, long>::value () const
193 ACE_INLINE volatile long &
194 ACE_Atomic_Op<ACE_Thread_Mutex, long>::value_i ()
201 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op ()
207 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c)
213 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (
214 const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs)
215 : value_ (rhs.value_)
219 ACE_INLINE unsigned long
220 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator++ ()
222 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
223 return static_cast<unsigned long> (::_InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
224 #elif defined (WIN32)
225 return static_cast<unsigned long> (::InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
226 #elif defined (ACE_HAS_VXATOMICLIB)
227 return static_cast<unsigned long> (::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) + 1;
229 return static_cast<unsigned long> ((*increment_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
233 ACE_INLINE unsigned long
234 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator++ (int)
239 ACE_INLINE unsigned long
240 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-- ()
242 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
243 return static_cast<unsigned long> (::_InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
244 #elif defined (WIN32)
245 return static_cast<unsigned long> (::InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
246 #elif defined (ACE_HAS_VXATOMICLIB)
247 return static_cast<unsigned long> (::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) - 1;
249 return static_cast<unsigned long> ((*decrement_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
253 ACE_INLINE unsigned long
254 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-- (int)
259 ACE_INLINE unsigned long
260 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator+= (unsigned long rhs)
262 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
263 return static_cast<unsigned long> (::_InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast <volatile long *>(&this->value_)),
265 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
266 return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast <volatile long *>(&this->value_)),
268 #elif defined (ACE_HAS_VXATOMICLIB)
269 return static_cast<unsigned long> (::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) + rhs;
270 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
271 return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs)) + rhs;
272 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
275 ACE_INLINE unsigned long
276 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-= (unsigned long rhs)
278 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
279 return static_cast<unsigned long> (::_InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)),
280 -static_cast<long>(rhs))) - rhs;
281 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
282 return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)),
283 -static_cast<long>(rhs))) - rhs;
284 #elif defined (ACE_HAS_VXATOMICLIB)
285 return static_cast<unsigned long> (::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) - rhs;
286 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
287 long l_rhs = static_cast<long> (rhs);
288 return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), -l_rhs)) - rhs;
289 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
293 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator== (unsigned long rhs) const
295 return (this->value_ == rhs);
299 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator!= (unsigned long rhs) const
301 return (this->value_ != rhs);
305 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator>= (unsigned long rhs) const
307 return (this->value_ >= rhs);
311 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator> (unsigned long rhs) const
313 return (this->value_ > rhs);
317 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator<= (unsigned long rhs) const
319 return (this->value_ <= rhs);
323 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator< (unsigned long rhs) const
325 return (this->value_ < rhs);
328 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &
329 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
331 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
332 ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs);
333 #elif defined (WIN32)
334 ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs);
335 #elif defined (ACE_HAS_VXATOMICLIB)
336 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs);
338 (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs);
343 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &
344 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (
345 const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs)
347 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
348 ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_);
349 #elif defined (WIN32)
350 ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_);
351 #elif defined (ACE_HAS_VXATOMICLIB)
352 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs.value_);
354 (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs.value_);
359 ACE_INLINE unsigned long
360 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::exchange (unsigned long newval)
362 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
363 return ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval);
364 #elif defined (WIN32)
365 return ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval);
366 #elif defined (ACE_HAS_VXATOMICLIB)
367 return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), newval);
369 return (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), newval);
373 ACE_INLINE unsigned long
374 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::value () const
379 ACE_INLINE volatile unsigned long &
380 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::value_i ()
385 #endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
387 #if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
390 ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op () :
391 ACE_Atomic_Op_GCC<int> ()
396 ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (int c) :
397 ACE_Atomic_Op_GCC<int>(c)
402 ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, int> &c) :
403 ACE_Atomic_Op_GCC<int>(c)
408 ACE_Atomic_Op<ACE_Thread_Mutex, int>&
409 ACE_Atomic_Op<ACE_Thread_Mutex, int>::operator= (int rhs)
411 ACE_Atomic_Op_GCC<int>::operator= (rhs);
416 ACE_Atomic_Op<ACE_Thread_Mutex, int>&
417 ACE_Atomic_Op<ACE_Thread_Mutex, int>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, int> &rhs)
419 ACE_Atomic_Op_GCC<int>::operator= (rhs);
425 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op () :
426 ACE_Atomic_Op_GCC<unsigned int>()
431 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> &c) :
432 ACE_Atomic_Op_GCC<unsigned int>(c)
437 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (unsigned int c) :
438 ACE_Atomic_Op_GCC<unsigned int>(c)
443 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>&
444 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::operator= (unsigned int rhs)
446 ACE_Atomic_Op_GCC<unsigned int>::operator= (rhs);
451 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>&
452 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> &rhs)
454 ACE_Atomic_Op_GCC<unsigned int>::operator= (rhs);
459 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op () :
460 ACE_Atomic_Op_GCC<long>()
465 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c) :
466 ACE_Atomic_Op_GCC<long>(c)
471 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c) :
472 ACE_Atomic_Op_GCC<long>(c)
477 ACE_Atomic_Op<ACE_Thread_Mutex, long>&
478 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
480 ACE_Atomic_Op_GCC<long>::operator= (rhs);
485 ACE_Atomic_Op<ACE_Thread_Mutex, long>&
486 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
488 ACE_Atomic_Op_GCC<long>::operator= (rhs);
493 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op () :
494 ACE_Atomic_Op_GCC<unsigned long> ()
499 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c) :
500 ACE_Atomic_Op_GCC<unsigned long>(c)
505 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c) :
506 ACE_Atomic_Op_GCC<unsigned long>(c)
511 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>&
512 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
514 ACE_Atomic_Op_GCC<unsigned long>::operator= (rhs);
519 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>&
520 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs)
522 ACE_Atomic_Op_GCC<unsigned long>::operator= (rhs);
527 // The long long intrinsics are not available on PPC
528 #if !defined (__powerpc__)
530 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::ACE_Atomic_Op () :
531 ACE_Atomic_Op_GCC<long long>()
536 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::ACE_Atomic_Op (long long c) :
537 ACE_Atomic_Op_GCC<long long>(c)
542 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long long> &c) :
543 ACE_Atomic_Op_GCC<long long>(c)
548 ACE_Atomic_Op<ACE_Thread_Mutex, long long>&
549 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::operator= (long long rhs)
551 ACE_Atomic_Op_GCC<long long>::operator= (rhs);
556 ACE_Atomic_Op<ACE_Thread_Mutex, long long>&
557 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, long long> &rhs)
559 ACE_Atomic_Op_GCC<long long>::operator= (rhs);
564 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::ACE_Atomic_Op () :
565 ACE_Atomic_Op_GCC<unsigned long long> ()
570 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::ACE_Atomic_Op (unsigned long long c) :
571 ACE_Atomic_Op_GCC<unsigned long long>(c)
576 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long> &c) :
577 ACE_Atomic_Op_GCC<unsigned long long>(c)
582 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>&
583 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::operator= (unsigned long long rhs)
585 ACE_Atomic_Op_GCC<unsigned long long>::operator= (rhs);
590 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>&
591 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long> &rhs)
593 ACE_Atomic_Op_GCC<unsigned long long>::operator= (rhs);
597 #endif /* !__powerpc__ */
599 #if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_2)
601 ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op () :
602 ACE_Atomic_Op_GCC<short>()
607 ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (short c) :
608 ACE_Atomic_Op_GCC<short>(c)
613 ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, short> &c) :
614 ACE_Atomic_Op_GCC<short>(c)
619 ACE_Atomic_Op<ACE_Thread_Mutex, short>&
620 ACE_Atomic_Op<ACE_Thread_Mutex, short>::operator= (short rhs)
622 ACE_Atomic_Op_GCC<short>::operator= (rhs);
627 ACE_Atomic_Op<ACE_Thread_Mutex, short>&
628 ACE_Atomic_Op<ACE_Thread_Mutex, short>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, short> &rhs)
630 ACE_Atomic_Op_GCC<short>::operator= (rhs);
635 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op () :
636 ACE_Atomic_Op_GCC<unsigned short> ()
641 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (unsigned short c) :
642 ACE_Atomic_Op_GCC<unsigned short>(c)
647 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &c) :
648 ACE_Atomic_Op_GCC<unsigned short>(c)
653 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>&
654 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::operator= (unsigned short rhs)
656 ACE_Atomic_Op_GCC<unsigned short>::operator= (rhs);
661 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>&
662 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &rhs)
664 ACE_Atomic_Op_GCC<unsigned short>::operator= (rhs);
669 #if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_1)
671 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op () :
672 ACE_Atomic_Op_GCC<bool> ()
677 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (bool c) :
678 ACE_Atomic_Op_GCC<bool>(c)
683 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, bool> &c) :
684 ACE_Atomic_Op_GCC<bool>(c)
689 ACE_Atomic_Op<ACE_Thread_Mutex, bool>&
690 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::operator= (bool rhs)
692 ACE_Atomic_Op_GCC<bool>::operator= (rhs);
697 ACE_Atomic_Op<ACE_Thread_Mutex, bool>&
698 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, bool> &rhs)
700 ACE_Atomic_Op_GCC<bool>::operator= (rhs);
705 #endif /* ACE_HAS_GCC_ATOMIC_BUILTINS==1 */
707 ACE_END_VERSIONED_NAMESPACE_DECL