From: Ivan Maidanski Date: Tue, 2 Oct 2012 07:24:16 +0000 (+0400) Subject: Add no-barrier double_compare_and_swap to generalization X-Git-Tag: libatomic_ops-7_4_0~110 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7de00cfaffdfed8bedbfdf01bbdfbaecdb40d5f6;p=platform%2Fupstream%2Flibatomic_ops.git Add no-barrier double_compare_and_swap to generalization * src/atomic_ops/generalize.h (AO_double_compare_and_swap): New function (only if AO_HAVE_compare_double_and_swap_double and not AO_HAVE_double_compare_and_swap) completing double-CAS family; reformat comment. * src/atomic_ops/generalize.h (AO_HAVE_double_compare_and_swap): Define macro (accompanying AO_double_compare_and_swap). --- diff --git a/src/atomic_ops/generalize.h b/src/atomic_ops/generalize.h index 6f72e22..550edad 100644 --- a/src/atomic_ops/generalize.h +++ b/src/atomic_ops/generalize.h @@ -1517,8 +1517,21 @@ # endif #endif -/* NEC LE-IT: Convenience functions for AO_double compare and swap which */ -/* types and reads easier in code */ +/* Convenience functions for AO_double compare-and-swap which types and */ +/* reads easier in code. */ +#if defined(AO_HAVE_compare_double_and_swap_double) \ + && !defined(AO_HAVE_double_compare_and_swap) + AO_INLINE int + AO_double_compare_and_swap(volatile AO_double_t *addr, + AO_double_t old_val, AO_double_t new_val) + { + return AO_compare_double_and_swap_double(addr, + old_val.AO_val1, old_val.AO_val2, + new_val.AO_val1, new_val.AO_val2); + } +# define AO_HAVE_double_compare_and_swap +#endif + #if defined(AO_HAVE_compare_double_and_swap_double_release) \ && !defined(AO_HAVE_double_compare_and_swap_release) AO_INLINE int