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 #if defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
15 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
17 #if defined (ACE_HAS_BUILTIN_ATOMIC_OP)
20 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void)
26 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c)
32 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (
33 const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
39 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (void)
41 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
42 return ::_InterlockedIncrement (const_cast<long *> (&this->value_));
44 return ::InterlockedIncrement (const_cast<long *> (&this->value_));
45 #elif defined (ACE_HAS_VXATOMICLIB)
46 return ::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) + 1;
47 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
48 return ::atomic_inc_ulong_nv (reinterpret_cast<volatile unsigned long*>(&this->value_));
50 return (*increment_fn_) (&this->value_);
55 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (int)
61 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- (void)
63 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
64 return ::_InterlockedDecrement (const_cast<long *> (&this->value_));
66 return ::InterlockedDecrement (const_cast<long *> (&this->value_));
67 #elif defined (ACE_HAS_VXATOMICLIB)
68 return ::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) - 1;
69 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
70 return ::atomic_dec_ulong_nv (reinterpret_cast<volatile unsigned long*>(&this->value_));
72 return (*decrement_fn_) (&this->value_);
77 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- (int)
83 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator+= (long rhs)
85 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
86 return ::_InterlockedExchangeAdd (const_cast<long *> (&this->value_),
88 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
89 return ::InterlockedExchangeAdd (const_cast<long *> (&this->value_),
91 #elif defined (ACE_HAS_VXATOMICLIB)
92 return ::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) + rhs;
93 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
94 return ::atomic_add_long_nv (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs);
95 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
96 return (*exchange_add_fn_) (&this->value_, rhs) + rhs;
97 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
101 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-= (long rhs)
103 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
104 return ::_InterlockedExchangeAdd (const_cast<long *> (&this->value_),
106 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
107 return ::InterlockedExchangeAdd (const_cast<long *> (&this->value_),
109 #elif defined (ACE_HAS_VXATOMICLIB)
110 return ::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) - rhs;
111 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
112 return ::atomic_add_long_nv (reinterpret_cast<volatile unsigned long*>(&this->value_), -rhs);
113 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
114 return (*exchange_add_fn_) (&this->value_, -rhs) - rhs;
115 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
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);
143 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator<= (long rhs) const
145 return (this->value_ <= rhs);
149 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator< (long rhs) const
151 return (this->value_ < rhs);
154 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, long> &
155 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
157 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
158 ::_InterlockedExchange (const_cast<long *> (&this->value_), rhs);
159 #elif defined (WIN32)
160 ::InterlockedExchange (const_cast<long *> (&this->value_), rhs);
161 #elif defined (ACE_HAS_VXATOMICLIB)
162 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs);
163 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
164 ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs);
166 (*exchange_fn_) (&this->value_, rhs);
171 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, long> &
172 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (
173 const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs)
175 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
176 ::_InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_);
177 #elif defined (WIN32)
178 ::InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_);
179 #elif defined (ACE_HAS_VXATOMICLIB)
180 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs.value_);
181 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
182 ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), rhs.value_);
184 (*exchange_fn_) (&this->value_, rhs.value_);
190 ACE_Atomic_Op<ACE_Thread_Mutex, long>::exchange (long newval)
192 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
193 return ::_InterlockedExchange (const_cast<long *> (&this->value_), newval);
194 #elif defined (WIN32)
195 return ::InterlockedExchange (const_cast<long *> (&this->value_), newval);
196 #elif defined (ACE_HAS_VXATOMICLIB)
197 return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), newval);
198 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
199 return ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), newval);
201 return (*exchange_fn_) (&this->value_, newval);
206 ACE_Atomic_Op<ACE_Thread_Mutex, long>::value (void) const
211 ACE_INLINE volatile long &
212 ACE_Atomic_Op<ACE_Thread_Mutex, long>::value_i (void)
219 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (void)
225 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c)
231 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (
232 const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs)
233 : value_ (rhs.value_)
237 ACE_INLINE unsigned long
238 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator++ (void)
240 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
241 return static_cast<unsigned long> (::_InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
242 #elif defined (WIN32)
243 return static_cast<unsigned long> (::InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
244 #elif defined (ACE_HAS_VXATOMICLIB)
245 return static_cast<unsigned long> (::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) + 1;
246 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
247 return ::atomic_inc_ulong_nv (&this->value_);
249 return static_cast<unsigned long> ((*increment_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-- (void)
262 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
263 return static_cast<unsigned long> (::_InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
264 #elif defined (WIN32)
265 return static_cast<unsigned long> (::InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
266 #elif defined (ACE_HAS_VXATOMICLIB)
267 return static_cast<unsigned long> (::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) - 1;
268 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
269 return ::atomic_dec_ulong_nv (&this->value_);
271 return static_cast<unsigned long> ((*decrement_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
275 ACE_INLINE unsigned long
276 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-- (int)
281 ACE_INLINE unsigned long
282 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator+= (unsigned long rhs)
284 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
285 return static_cast<unsigned long> (::_InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast <volatile long *>(&this->value_)),
287 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
288 return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast <volatile long *>(&this->value_)),
290 #elif defined (ACE_HAS_VXATOMICLIB)
291 return static_cast<unsigned long> (::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) + rhs;
292 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
293 return ::atomic_add_long_nv (&this->value_, rhs);
294 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
295 return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs)) + rhs;
296 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
299 ACE_INLINE unsigned long
300 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-= (unsigned long rhs)
302 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
303 return static_cast<unsigned long> (::_InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)),
304 -static_cast<long>(rhs))) - rhs;
305 #elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
306 return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)),
307 -static_cast<long>(rhs))) - rhs;
308 #elif defined (ACE_HAS_VXATOMICLIB)
309 return static_cast<unsigned long> (::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) - rhs;
310 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
311 return ::atomic_add_long_nv (&this->value_, -rhs);
312 #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
313 long l_rhs = static_cast<long> (rhs);
314 return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), -l_rhs)) - rhs;
315 #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
319 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator== (unsigned long rhs) const
321 return (this->value_ == rhs);
325 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator!= (unsigned long rhs) const
327 return (this->value_ != rhs);
331 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator>= (unsigned long rhs) const
333 return (this->value_ >= rhs);
337 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator> (unsigned long rhs) const
339 return (this->value_ > rhs);
343 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator<= (unsigned long rhs) const
345 return (this->value_ <= rhs);
349 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator< (unsigned long rhs) const
351 return (this->value_ < rhs);
354 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &
355 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
357 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
358 ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs);
359 #elif defined (WIN32)
360 ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs);
361 #elif defined (ACE_HAS_VXATOMICLIB)
362 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs);
363 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
364 ::atomic_swap_ulong (&this->value_, rhs);
366 (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs);
371 ACE_INLINE ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &
372 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (
373 const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs)
375 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
376 ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_);
377 #elif defined (WIN32)
378 ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_);
379 #elif defined (ACE_HAS_VXATOMICLIB)
380 ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs.value_);
381 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
382 ::atomic_swap_ulong (&this->value_, rhs.value_);
384 (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs.value_);
389 ACE_INLINE unsigned long
390 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::exchange (unsigned long newval)
392 #if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
393 return ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval);
394 #elif defined (WIN32)
395 return ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval);
396 #elif defined (ACE_HAS_VXATOMICLIB)
397 return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), newval);
398 #elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
399 return ::atomic_swap_ulong (&this->value_, newval);
401 return (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), newval);
405 ACE_INLINE unsigned long
406 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::value (void) const
411 ACE_INLINE volatile unsigned long &
412 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::value_i (void)
417 #endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
419 #if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
422 ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (void) :
423 ACE_Atomic_Op_GCC<int> ()
428 ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (int c) :
429 ACE_Atomic_Op_GCC<int>(c)
434 ACE_Atomic_Op<ACE_Thread_Mutex, int>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, int> &c) :
435 ACE_Atomic_Op_GCC<int>(c)
440 ACE_Atomic_Op<ACE_Thread_Mutex, int>&
441 ACE_Atomic_Op<ACE_Thread_Mutex, int>::operator= (int rhs)
443 ACE_Atomic_Op_GCC<int>::operator= (rhs);
449 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (void) :
450 ACE_Atomic_Op_GCC<unsigned int>()
455 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int> &c) :
456 ACE_Atomic_Op_GCC<unsigned int>(c)
461 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::ACE_Atomic_Op (unsigned int c) :
462 ACE_Atomic_Op_GCC<unsigned int>(c)
467 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>&
468 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned int>::operator= (unsigned int rhs)
470 ACE_Atomic_Op_GCC<unsigned int>::operator= (rhs);
475 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void) :
476 ACE_Atomic_Op_GCC<long>()
481 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c) :
482 ACE_Atomic_Op_GCC<long>(c)
487 ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c) :
488 ACE_Atomic_Op_GCC<long>(c)
493 ACE_Atomic_Op<ACE_Thread_Mutex, long>&
494 ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
496 ACE_Atomic_Op_GCC<long>::operator= (rhs);
501 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (void) :
502 ACE_Atomic_Op_GCC<unsigned long> ()
507 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c) :
508 ACE_Atomic_Op_GCC<unsigned long>(c)
513 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c) :
514 ACE_Atomic_Op_GCC<unsigned long>(c)
519 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>&
520 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
522 ACE_Atomic_Op_GCC<unsigned long>::operator= (rhs);
526 // The long long intrinsics are not available on PPC
527 #if !defined (__powerpc__)
529 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::ACE_Atomic_Op (void) :
530 ACE_Atomic_Op_GCC<long long>()
535 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::ACE_Atomic_Op (long long c) :
536 ACE_Atomic_Op_GCC<long long>(c)
541 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long long> &c) :
542 ACE_Atomic_Op_GCC<long long>(c)
547 ACE_Atomic_Op<ACE_Thread_Mutex, long long>&
548 ACE_Atomic_Op<ACE_Thread_Mutex, long long>::operator= (long long rhs)
550 ACE_Atomic_Op_GCC<long long>::operator= (rhs);
555 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::ACE_Atomic_Op (void) :
556 ACE_Atomic_Op_GCC<unsigned long long> ()
561 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::ACE_Atomic_Op (unsigned long long c) :
562 ACE_Atomic_Op_GCC<unsigned long long>(c)
567 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long> &c) :
568 ACE_Atomic_Op_GCC<unsigned long long>(c)
573 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>&
574 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long long>::operator= (unsigned long long rhs)
576 ACE_Atomic_Op_GCC<unsigned long long>::operator= (rhs);
579 #endif /* !__powerpc__ */
581 #if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_2)
583 ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (void) :
584 ACE_Atomic_Op_GCC<short>()
589 ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (short c) :
590 ACE_Atomic_Op_GCC<short>(c)
595 ACE_Atomic_Op<ACE_Thread_Mutex, short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, short> &c) :
596 ACE_Atomic_Op_GCC<short>(c)
601 ACE_Atomic_Op<ACE_Thread_Mutex, short>&
602 ACE_Atomic_Op<ACE_Thread_Mutex, short>::operator= (short rhs)
604 ACE_Atomic_Op_GCC<short>::operator= (rhs);
609 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (void) :
610 ACE_Atomic_Op_GCC<unsigned short> ()
615 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (unsigned short c) :
616 ACE_Atomic_Op_GCC<unsigned short>(c)
621 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short> &c) :
622 ACE_Atomic_Op_GCC<unsigned short>(c)
627 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>&
628 ACE_Atomic_Op<ACE_Thread_Mutex, unsigned short>::operator= (unsigned short rhs)
630 ACE_Atomic_Op_GCC<unsigned short>::operator= (rhs);
635 #if !defined (ACE_LACKS_GCC_ATOMIC_BUILTINS_1)
637 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (void) :
638 ACE_Atomic_Op_GCC<bool> ()
643 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (bool c) :
644 ACE_Atomic_Op_GCC<bool>(c)
649 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, bool> &c) :
650 ACE_Atomic_Op_GCC<bool>(c)
655 ACE_Atomic_Op<ACE_Thread_Mutex, bool>&
656 ACE_Atomic_Op<ACE_Thread_Mutex, bool>::operator= (bool rhs)
658 ACE_Atomic_Op_GCC<bool>::operator= (rhs);
663 #endif /* ACE_HAS_GCC_ATOMIC_BUILTINS==1 */
665 ACE_END_VERSIONED_NAMESPACE_DECL