mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
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>
This commit is contained in:
parent
2ecf810121
commit
fb2b581968
@ -1728,21 +1728,23 @@ explicit lock operations, described later). These include:
|
||||
|
||||
xchg();
|
||||
cmpxchg();
|
||||
atomic_xchg();
|
||||
atomic_cmpxchg();
|
||||
atomic_inc_return();
|
||||
atomic_dec_return();
|
||||
atomic_add_return();
|
||||
atomic_sub_return();
|
||||
atomic_inc_and_test();
|
||||
atomic_dec_and_test();
|
||||
atomic_sub_and_test();
|
||||
atomic_add_negative();
|
||||
atomic_add_unless(); /* when succeeds (returns 1) */
|
||||
atomic_xchg(); atomic_long_xchg();
|
||||
atomic_cmpxchg(); atomic_long_cmpxchg();
|
||||
atomic_inc_return(); atomic_long_inc_return();
|
||||
atomic_dec_return(); atomic_long_dec_return();
|
||||
atomic_add_return(); atomic_long_add_return();
|
||||
atomic_sub_return(); atomic_long_sub_return();
|
||||
atomic_inc_and_test(); atomic_long_inc_and_test();
|
||||
atomic_dec_and_test(); atomic_long_dec_and_test();
|
||||
atomic_sub_and_test(); atomic_long_sub_and_test();
|
||||
atomic_add_negative(); atomic_long_add_negative();
|
||||
test_and_set_bit();
|
||||
test_and_clear_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
|
||||
operations and adjusting reference counters towards object destruction, and as
|
||||
such the implicit memory barrier effects are necessary.
|
||||
|
Loading…
Reference in New Issue
Block a user