1
0
Fork 0

Documentation/memory-barriers.txt: Add long atomic examples to memory-barriers.txt

Although the atomic_long_t functions are quite useful, they are
a bit obscure.  This commit therefore adds the common ones
alongside their atomic_t counterparts in
Documentation/memory-barriers.txt.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: <linux-arch@vger.kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/1386799151-2219-2-git-send-email-paulmck@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
wifi-calibration
Paul E. McKenney 2013-12-11 13:59:05 -08:00 committed by Ingo Molnar
parent 2ecf810121
commit fb2b581968
1 changed files with 13 additions and 11 deletions

View File

@ -1728,21 +1728,23 @@ explicit lock operations, described later). These include:
xchg(); xchg();
cmpxchg(); cmpxchg();
atomic_xchg(); atomic_xchg(); atomic_long_xchg();
atomic_cmpxchg(); atomic_cmpxchg(); atomic_long_cmpxchg();
atomic_inc_return(); atomic_inc_return(); atomic_long_inc_return();
atomic_dec_return(); atomic_dec_return(); atomic_long_dec_return();
atomic_add_return(); atomic_add_return(); atomic_long_add_return();
atomic_sub_return(); atomic_sub_return(); atomic_long_sub_return();
atomic_inc_and_test(); atomic_inc_and_test(); atomic_long_inc_and_test();
atomic_dec_and_test(); atomic_dec_and_test(); atomic_long_dec_and_test();
atomic_sub_and_test(); atomic_sub_and_test(); atomic_long_sub_and_test();
atomic_add_negative(); atomic_add_negative(); atomic_long_add_negative();
atomic_add_unless(); /* when succeeds (returns 1) */
test_and_set_bit(); test_and_set_bit();
test_and_clear_bit(); test_and_clear_bit();
test_and_change_bit(); test_and_change_bit();
/* when succeeds (returns 1) */
atomic_add_unless(); atomic_long_add_unless();
These are used for such things as implementing LOCK-class and UNLOCK-class These are used for such things as implementing LOCK-class and UNLOCK-class
operations and adjusting reference counters towards object destruction, and as operations and adjusting reference counters towards object destruction, and as
such the implicit memory barrier effects are necessary. such the implicit memory barrier effects are necessary.