<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libatomic_ops.git/src/atomic_ops.c, branch draft-coveralls-linux</title>
<subtitle>github.com: ivmai/libatomic_ops.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/'/>
<entry>
<title>Hide AO_locks symbol</title>
<updated>2016-10-24T21:53:20+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2016-10-24T21:53:20+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=0c5a5ec2526146c8587e0a7b84baae2542724d54'/>
<id>0c5a5ec2526146c8587e0a7b84baae2542724d54</id>
<content type='text'>
* src/atomic_ops.c [!_MSC_VER &amp;&amp; !__MINGW32__] (AO_locks): Define as
static.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c [!_MSC_VER &amp;&amp; !__MINGW32__] (AO_locks): Define as
static.
</pre>
</div>
</content>
</entry>
<entry>
<title>Enable build using toolchain without pthreads</title>
<updated>2013-05-26T08:08:18+00:00</updated>
<author>
<name>Gilles Talis</name>
<email>gilles.talis@gmail.com</email>
</author>
<published>2013-05-26T08:08:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=7dfd0b71ee8d1c8409d2f09ad3ccfcb467f16d6b'/>
<id>7dfd0b71ee8d1c8409d2f09ad3ccfcb467f16d6b</id>
<content type='text'>
* src/atomic_ops.c: Include pthread.h only if not AO_NO_PTHREADS (new
macro).
* src/atomic_ops.c (AO_pt_lock): Define only unless AO_NO_PTHREADS.
* tests/test_atomic.c (main): Skip test_atomic_pthreads if both
AO_NO_PTHREADS and AO_USE_PTHREAD_DEFS are defined (preventing test
link failure if AO_NO_PTHREADS passed via CFLAGS).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c: Include pthread.h only if not AO_NO_PTHREADS (new
macro).
* src/atomic_ops.c (AO_pt_lock): Define only unless AO_NO_PTHREADS.
* tests/test_atomic.c (main): Skip test_atomic_pthreads if both
AO_NO_PTHREADS and AO_USE_PTHREAD_DEFS are defined (preventing test
link failure if AO_NO_PTHREADS passed via CFLAGS).
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove duplicate AO_spin and AO_pause definition in atomic_ops_stack</title>
<updated>2012-10-04T12:53:48+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2012-10-04T12:49:03+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=a5a424e526272545fcb7faeadd9a910776c31ecc'/>
<id>a5a424e526272545fcb7faeadd9a910776c31ecc</id>
<content type='text'>
* src/atomic_ops.c (AO_REQUIRE_CAS): Undefine and include atomic_ops.h
unconditionally.
* src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Define macro (and include
windows.h) if Win32 (non-POSIX) to have Sleep-based implementation of
AO_pause.
* src/atomic_ops.c (dummy, AO_spin, AO_pause): Define unconditionally
(to be always available for atomic_ops_stack).
* src/atomic_ops.c (dummy): Rename to spin_dummy.
* src/atomic_ops_stack.c (dummy, AO_spin, AO_pause): Remove definition
(for Win32); remove FIXME.
* src/atomic_ops_stack.c (AO_pause): Declare if
AO_USE_ALMOST_LOCK_FREE defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (AO_REQUIRE_CAS): Undefine and include atomic_ops.h
unconditionally.
* src/atomic_ops.c (AO_USE_WIN32_PTHREADS): Define macro (and include
windows.h) if Win32 (non-POSIX) to have Sleep-based implementation of
AO_pause.
* src/atomic_ops.c (dummy, AO_spin, AO_pause): Define unconditionally
(to be always available for atomic_ops_stack).
* src/atomic_ops.c (dummy): Rename to spin_dummy.
* src/atomic_ops_stack.c (dummy, AO_spin, AO_pause): Remove definition
(for Win32); remove FIXME.
* src/atomic_ops_stack.c (AO_pause): Declare if
AO_USE_ALMOST_LOCK_FREE defined.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix AO_pause sleep delay for particular argument values (Win32)</title>
<updated>2012-10-03T14:36:43+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2012-10-03T14:02:03+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=915816326e34b1a5b1821e76e1537a086601618e'/>
<id>915816326e34b1a5b1821e76e1537a086601618e</id>
<content type='text'>
* src/atomic_ops.c (AO_pause): Fix millis value (passed to Win32
Sleep) for the case of 'n' argument in range between 12 and 21,
inclusive if AO_USE_WIN32_PTHREADS (sleep for 1 ms in this case).
* src/atomic_ops_stack.c (AO_pause): Evaluate 'msecs' value using the
same algorithm as in atomic_ops.c (Win32 only).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (AO_pause): Fix millis value (passed to Win32
Sleep) for the case of 'n' argument in range between 12 and 21,
inclusive if AO_USE_WIN32_PTHREADS (sleep for 1 ms in this case).
* src/atomic_ops_stack.c (AO_pause): Evaluate 'msecs' value using the
same algorithm as in atomic_ops.c (Win32 only).
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize AO_spin manually to minimize compiler influence on its duration</title>
<updated>2012-10-03T09:02:13+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2012-10-03T09:02:13+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=98a3d509fc1c07a95cd62aed03c1968c7b2f87a3'/>
<id>98a3d509fc1c07a95cd62aed03c1968c7b2f87a3</id>
<content type='text'>
* src/atomic_ops.c (dummy, AO_spin): Use AO_t instead of deprecated
AO_T.
* src/atomic_ops_stack.c (AO_spin): Likewise.
* src/atomic_ops.c (AO_spin): Define as static (since not needed
outside).
* src/atomic_ops.c (AO_spin): Optimize code manually to minimize
speed dependency on compiler optimization level; add comment.
* src/atomic_ops_stack.c (AO_spin): Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (dummy, AO_spin): Use AO_t instead of deprecated
AO_T.
* src/atomic_ops_stack.c (AO_spin): Likewise.
* src/atomic_ops.c (AO_spin): Define as static (since not needed
outside).
* src/atomic_ops.c (AO_spin): Optimize code manually to minimize
speed dependency on compiler optimization level; add comment.
* src/atomic_ops_stack.c (AO_spin): Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace some FIXME items with TODO in atomic_ops.c and sysdeps headers</title>
<updated>2012-10-03T06:46:19+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2012-10-03T06:46:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=5b3e16909dd85196941b6a757fe079a1abf77ee4'/>
<id>5b3e16909dd85196941b6a757fe079a1abf77ee4</id>
<content type='text'>
* src/atomic_ops.c (AO_HASH_SIZE): Replace FIXME item with TODO one.
* src/atomic_ops/sysdeps/gcc/alpha.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/avr32.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/ia64.h (AO_compare_double_and_swap_double,
AO_compare_and_swap_double): Likewise.
* src/atomic_ops/sysdeps/gcc/m68k.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/mips.h (AO_and, AO_or, AO_xor): Likewise.
* src/atomic_ops/sysdeps/gcc/s390.h (AO_nop_full,
AO_fetch_compare_and_swap, AO_compare_double_and_swap_double):
Likewise.
* src/atomic_ops/sysdeps/gcc/sparc.h: Likewise.
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_fetch_and_add, AO_and,
AO_or, AO_xor): Likewise.
* src/atomic_ops/sysdeps/msftc/arm.h
(AO_compare_double_and_swap_double): Likewise.
* src/atomic_ops/sysdeps/sunc/sparc.h: Likewise.
* src/atomic_ops/sysdeps/ao_t_is_int.h: Add TODO item.
* src/atomic_ops/sysdeps/gcc/sh.h: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (AO_HASH_SIZE): Replace FIXME item with TODO one.
* src/atomic_ops/sysdeps/gcc/alpha.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/avr32.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/ia64.h (AO_compare_double_and_swap_double,
AO_compare_and_swap_double): Likewise.
* src/atomic_ops/sysdeps/gcc/m68k.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/mips.h (AO_and, AO_or, AO_xor): Likewise.
* src/atomic_ops/sysdeps/gcc/s390.h (AO_nop_full,
AO_fetch_compare_and_swap, AO_compare_double_and_swap_double):
Likewise.
* src/atomic_ops/sysdeps/gcc/sparc.h: Likewise.
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_fetch_and_add, AO_and,
AO_or, AO_xor): Likewise.
* src/atomic_ops/sysdeps/msftc/arm.h
(AO_compare_double_and_swap_double): Likewise.
* src/atomic_ops/sysdeps/sunc/sparc.h: Likewise.
* src/atomic_ops/sysdeps/ao_t_is_int.h: Add TODO item.
* src/atomic_ops/sysdeps/gcc/sh.h: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use __builtin_expect in CAS failure loop condition checks (GCC only)</title>
<updated>2012-03-26T09:28:08+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2012-03-26T04:06:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=cc51941b02fddc75952831eb8e28b06d340d2bef'/>
<id>cc51941b02fddc75952831eb8e28b06d340d2bef</id>
<content type='text'>
* src/atomic_ops.c (lock, block_all_signals): Use AO_EXPECT_FALSE.
* src/atomic_ops.h (AO_EXPECT_FALSE): New macro.
* src/atomic_ops/generalize-small.template
(AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
AO_XSIZE_fetch_and_add_release): Use AO_EXPECT_FALSE for CAS failure
check.
* src/atomic_ops/generalize.h (AO_fetch_and_add_full,
AO_fetch_and_add_acquire, AO_fetch_and_add_release, AO_fetch_and_add,
AO_and_full, AO_or_full, AO_xor_full): Likewise.
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_compare_double_and_swap_double): Likewise.
* src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release,
AO_stack_pop_explicit_aux_acquire, AO_stack_push_release,
AO_stack_pop_acquire): Likewise.
* src/atomic_ops/generalize-small.h: Regenerate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (lock, block_all_signals): Use AO_EXPECT_FALSE.
* src/atomic_ops.h (AO_EXPECT_FALSE): New macro.
* src/atomic_ops/generalize-small.template
(AO_XSIZE_fetch_and_add_full, AO_XSIZE_fetch_and_add_acquire,
AO_XSIZE_fetch_and_add_release): Use AO_EXPECT_FALSE for CAS failure
check.
* src/atomic_ops/generalize.h (AO_fetch_and_add_full,
AO_fetch_and_add_acquire, AO_fetch_and_add_release, AO_fetch_and_add,
AO_and_full, AO_or_full, AO_xor_full): Likewise.
* src/atomic_ops/sysdeps/gcc/arm.h
(AO_compare_double_and_swap_double): Likewise.
* src/atomic_ops_stack.c (AO_stack_push_explicit_aux_release,
AO_stack_pop_explicit_aux_acquire, AO_stack_push_release,
AO_stack_pop_acquire): Likewise.
* src/atomic_ops/generalize-small.h: Regenerate.
</pre>
</div>
</content>
</entry>
<entry>
<title>Generalize AO_compare_and_swap primitives via AO_fetch_compare_and_swap</title>
<updated>2011-11-11T12:36:24+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2011-11-08T17:23:52+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=ece032d044e0b0e20dae1639381eb66a9ffd6ea6'/>
<id>ece032d044e0b0e20dae1639381eb66a9ffd6ea6</id>
<content type='text'>
* src/atomic_ops.c (AO_compare_and_swap_emulation): Remove.
* src/atomic_ops/sysdeps/emul_cas.h (AO_compare_and_swap_emulation,
AO_compare_and_swap_full, AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/gcc/ia64.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_char_compare_and_swap_acquire,
AO_HAVE_char_compare_and_swap_acquire,
AO_char_compare_and_swap_release,
AO_HAVE_char_compare_and_swap_release,
AO_short_compare_and_swap_acquire,
AO_HAVE_short_compare_and_swap_acquire,
AO_short_compare_and_swap_release,
AO_HAVE_short_compare_and_swap_release,
AO_int_compare_and_swap_acquire, AO_HAVE_int_compare_and_swap_acquire,
AO_int_compare_and_swap_release,
AO_HAVE_int_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/generic_pthread.h (AO_compare_and_swap_full):
Likewise.
* src/atomic_ops/sysdeps/hpc/ia64.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_char_compare_and_swap_acquire,
AO_HAVE_char_compare_and_swap_acquire,
AO_char_compare_and_swap_release,
AO_HAVE_char_compare_and_swap_release,
AO_short_compare_and_swap_acquire,
AO_HAVE_short_compare_and_swap_acquire,
AO_short_compare_and_swap_release,
AO_HAVE_short_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_compare_and_swap_full,
AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/icc/ia64.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_char_compare_and_swap_acquire,
AO_HAVE_char_compare_and_swap_acquire,
AO_char_compare_and_swap_release,
AO_HAVE_char_compare_and_swap_release,
AO_short_compare_and_swap_acquire,
AO_HAVE_short_compare_and_swap_acquire,
AO_short_compare_and_swap_release,
AO_HAVE_short_compare_and_swap_release,
AO_int_compare_and_swap_acquire, AO_HAVE_int_compare_and_swap_acquire,
AO_int_compare_and_swap_release,
AO_HAVE_int_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/msftc/common32_defs.h
(AO_compare_and_swap_full, AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/msftc/x86_64.h (AO_compare_and_swap_full,
AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops.h: Do not include emul_cas.h if any of
AO_HAVE_fetch_compare_and_swap_... is defined.
* src/atomic_ops.h (AO_HAVE_fetch_compare_and_swap_full): Do not
define AO_GENERALIZE_TWICE if AO_HAVE_fetch_compare_and_swap_full
and AO_CAN_EMUL_CAS are both defined.
* src/atomic_ops/generalize-small.template
(AO_XSIZE_compare_and_swap_full, AO_XSIZE_compare_and_swap_acquire,
AO_XSIZE_compare_and_swap_release): New template (based on the
corresponding AO_XSIZE_fetch_compare_and_swap primitive).
* src/atomic_ops/generalize-small.template
(AO_HAVE_XSIZE_compare_and_swap_full,
AO_HAVE_XSIZE_compare_and_swap_acquire,
AO_HAVE_XSIZE_compare_and_swap_release): Define.
* src/atomic_ops/generalize.h (AO_HAVE_compare_and_swap,
AO_HAVE_compare_and_swap_full, AO_HAVE_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_release): Likewise.
* src/atomic_ops/generalize-small.h: Regenerate.
* src/atomic_ops/generalize.h (AO_compare_and_swap,
AO_compare_and_swap_full, AO_compare_and_swap_acquire,
AO_compare_and_swap_release): New function implementation (based on
the corresponding AO_fetch_compare_and_swap primitive).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (AO_compare_and_swap_emulation): Remove.
* src/atomic_ops/sysdeps/emul_cas.h (AO_compare_and_swap_emulation,
AO_compare_and_swap_full, AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/gcc/ia64.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_char_compare_and_swap_acquire,
AO_HAVE_char_compare_and_swap_acquire,
AO_char_compare_and_swap_release,
AO_HAVE_char_compare_and_swap_release,
AO_short_compare_and_swap_acquire,
AO_HAVE_short_compare_and_swap_acquire,
AO_short_compare_and_swap_release,
AO_HAVE_short_compare_and_swap_release,
AO_int_compare_and_swap_acquire, AO_HAVE_int_compare_and_swap_acquire,
AO_int_compare_and_swap_release,
AO_HAVE_int_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/generic_pthread.h (AO_compare_and_swap_full):
Likewise.
* src/atomic_ops/sysdeps/hpc/ia64.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_char_compare_and_swap_acquire,
AO_HAVE_char_compare_and_swap_acquire,
AO_char_compare_and_swap_release,
AO_HAVE_char_compare_and_swap_release,
AO_short_compare_and_swap_acquire,
AO_HAVE_short_compare_and_swap_acquire,
AO_short_compare_and_swap_release,
AO_HAVE_short_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_compare_and_swap_full,
AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/icc/ia64.h (AO_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_acquire, AO_compare_and_swap_release,
AO_HAVE_compare_and_swap_release, AO_char_compare_and_swap_acquire,
AO_HAVE_char_compare_and_swap_acquire,
AO_char_compare_and_swap_release,
AO_HAVE_char_compare_and_swap_release,
AO_short_compare_and_swap_acquire,
AO_HAVE_short_compare_and_swap_acquire,
AO_short_compare_and_swap_release,
AO_HAVE_short_compare_and_swap_release,
AO_int_compare_and_swap_acquire, AO_HAVE_int_compare_and_swap_acquire,
AO_int_compare_and_swap_release,
AO_HAVE_int_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/msftc/common32_defs.h
(AO_compare_and_swap_full, AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/msftc/x86_64.h (AO_compare_and_swap_full,
AO_HAVE_compare_and_swap_full): Likewise.
* src/atomic_ops.h: Do not include emul_cas.h if any of
AO_HAVE_fetch_compare_and_swap_... is defined.
* src/atomic_ops.h (AO_HAVE_fetch_compare_and_swap_full): Do not
define AO_GENERALIZE_TWICE if AO_HAVE_fetch_compare_and_swap_full
and AO_CAN_EMUL_CAS are both defined.
* src/atomic_ops/generalize-small.template
(AO_XSIZE_compare_and_swap_full, AO_XSIZE_compare_and_swap_acquire,
AO_XSIZE_compare_and_swap_release): New template (based on the
corresponding AO_XSIZE_fetch_compare_and_swap primitive).
* src/atomic_ops/generalize-small.template
(AO_HAVE_XSIZE_compare_and_swap_full,
AO_HAVE_XSIZE_compare_and_swap_acquire,
AO_HAVE_XSIZE_compare_and_swap_release): Define.
* src/atomic_ops/generalize.h (AO_HAVE_compare_and_swap,
AO_HAVE_compare_and_swap_full, AO_HAVE_compare_and_swap_acquire,
AO_HAVE_compare_and_swap_release): Likewise.
* src/atomic_ops/generalize-small.h: Regenerate.
* src/atomic_ops/generalize.h (AO_compare_and_swap,
AO_compare_and_swap_full, AO_compare_and_swap_acquire,
AO_compare_and_swap_release): New function implementation (based on
the corresponding AO_fetch_compare_and_swap primitive).
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement most AO_fetch_compare_and_swap primitives</title>
<updated>2011-11-11T12:36:20+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2011-10-27T06:16:21+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=f977dca8aa6873891937442198cdbe5479ce52cd'/>
<id>f977dca8aa6873891937442198cdbe5479ce52cd</id>
<content type='text'>
* src/atomic_ops.c (AO_fetch_compare_and_swap_emulation): Implement.
* src/atomic_ops.h: Remove FIXME for AO_fetch_compare_and_swap.
* src/atomic_ops/generalize.h (AO_fetch_compare_and_swap_acquire,
AO_fetch_compare_and_swap_release, AO_fetch_compare_and_swap_acquire,
AO_fetch_compare_and_swap_write, AO_fetch_compare_and_swap_read,
AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_full,
AO_fetch_compare_and_swap_release_write,
AO_fetch_compare_and_swap_acquire_read,
AO_fetch_compare_and_swap_dd_acquire_read): Implement; define the
corresponding AO_HAVE_... macro.
* src/atomic_ops/sysdeps/ao_t_is_int.h
(AO_int_fetch_compare_and_swap_full,
AO_int_fetch_compare_and_swap_acquire,
AO_int_fetch_compare_and_swap_release,
AO_int_fetch_compare_and_swap_write,
AO_int_fetch_compare_and_swap_read, AO_int_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/emul_cas.h (AO_fetch_compare_and_swap_full):
Likewise.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/hexagon.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/ia64.h
(AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_char_fetch_compare_and_swap_acquire,
AO_char_fetch_compare_and_swap_release,
AO_short_fetch_compare_and_swap_acquire,
AO_short_fetch_compare_and_swap_release,
AO_int_fetch_compare_and_swap_acquire,
AO_int_fetch_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/gcc/powerpc.h (AO_fetch_compare_and_swap,
AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_fetch_compare_and_swap_full):
Likewise.
* src/atomic_ops/sysdeps/gcc/x86_64.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/generic_pthread.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/hpc/ia64.h
(AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_char_fetch_compare_and_swap_acquire,
AO_char_fetch_compare_and_swap_release,
AO_short_fetch_compare_and_swap_acquire,
AO_short_fetch_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/icc/ia64.h
(AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_char_fetch_compare_and_swap_acquire,
AO_char_fetch_compare_and_swap_release,
AO_short_fetch_compare_and_swap_acquire,
AO_short_fetch_compare_and_swap_release,
AO_int_fetch_compare_and_swap_acquire,
AO_int_fetch_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/msftc/common32_defs.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/msftc/x86_64.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/sunc/x86.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/sunc/x86_64.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/emul_cas.h
(AO_fetch_compare_and_swap_emulation): Declare the function.
* src/atomic_ops/sysdeps/gcc/mips.h: Adjust FIXME.
* src/atomic_ops/sysdeps/gcc/sparc.h: Likewise.
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_fetch_compare_and_swap,
AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_fetch_compare_and_swap_full): Add implementation stub.
* tests/list_atomic.template (list_atomicXX): Add
AO_fetch_compare_and_swapXX call.
* tests/test_atomic_include.template (test_atomicXX): Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/atomic_ops.c (AO_fetch_compare_and_swap_emulation): Implement.
* src/atomic_ops.h: Remove FIXME for AO_fetch_compare_and_swap.
* src/atomic_ops/generalize.h (AO_fetch_compare_and_swap_acquire,
AO_fetch_compare_and_swap_release, AO_fetch_compare_and_swap_acquire,
AO_fetch_compare_and_swap_write, AO_fetch_compare_and_swap_read,
AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_full,
AO_fetch_compare_and_swap_release_write,
AO_fetch_compare_and_swap_acquire_read,
AO_fetch_compare_and_swap_dd_acquire_read): Implement; define the
corresponding AO_HAVE_... macro.
* src/atomic_ops/sysdeps/ao_t_is_int.h
(AO_int_fetch_compare_and_swap_full,
AO_int_fetch_compare_and_swap_acquire,
AO_int_fetch_compare_and_swap_release,
AO_int_fetch_compare_and_swap_write,
AO_int_fetch_compare_and_swap_read, AO_int_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/armcc/arm_v6.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/emul_cas.h (AO_fetch_compare_and_swap_full):
Likewise.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/hexagon.h (AO_fetch_compare_and_swap):
Likewise.
* src/atomic_ops/sysdeps/gcc/ia64.h
(AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_char_fetch_compare_and_swap_acquire,
AO_char_fetch_compare_and_swap_release,
AO_short_fetch_compare_and_swap_acquire,
AO_short_fetch_compare_and_swap_release,
AO_int_fetch_compare_and_swap_acquire,
AO_int_fetch_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/gcc/powerpc.h (AO_fetch_compare_and_swap,
AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/gcc/x86.h (AO_fetch_compare_and_swap_full):
Likewise.
* src/atomic_ops/sysdeps/gcc/x86_64.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/generic_pthread.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/hpc/ia64.h
(AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_char_fetch_compare_and_swap_acquire,
AO_char_fetch_compare_and_swap_release,
AO_short_fetch_compare_and_swap_acquire,
AO_short_fetch_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/icc/ia64.h
(AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_char_fetch_compare_and_swap_acquire,
AO_char_fetch_compare_and_swap_release,
AO_short_fetch_compare_and_swap_acquire,
AO_short_fetch_compare_and_swap_release,
AO_int_fetch_compare_and_swap_acquire,
AO_int_fetch_compare_and_swap_release): Likewise.
* src/atomic_ops/sysdeps/msftc/common32_defs.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/msftc/x86_64.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/sunc/x86.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/sunc/x86_64.h
(AO_fetch_compare_and_swap_full): Likewise.
* src/atomic_ops/sysdeps/emul_cas.h
(AO_fetch_compare_and_swap_emulation): Declare the function.
* src/atomic_ops/sysdeps/gcc/mips.h: Adjust FIXME.
* src/atomic_ops/sysdeps/gcc/sparc.h: Likewise.
* src/atomic_ops/sysdeps/ibmc/powerpc.h (AO_fetch_compare_and_swap,
AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_fetch_compare_and_swap_full): Add implementation stub.
* tests/list_atomic.template (list_atomicXX): Add
AO_fetch_compare_and_swapXX call.
* tests/test_atomic_include.template (test_atomicXX): Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add FIXMEs to add AO_fetch_compare_and_swap primitives</title>
<updated>2011-11-11T12:36:16+00:00</updated>
<author>
<name>Ivan Maidanski</name>
<email>ivmai@mail.ru</email>
</author>
<published>2011-10-21T08:23:03+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libatomic_ops.git/commit/?id=18ded03a82b187128679c2b8d87892903201c3a5'/>
<id>18ded03a82b187128679c2b8d87892903201c3a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
