Documentation/memory-barriers.txt: Add long atomic examples to memory-barriers.txt
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 11 Dec 2013 21:59:05 +0000 (13:59 -0800)
committerIngo Molnar <mingo@kernel.org>
Mon, 16 Dec 2013 10:36:09 +0000 (11:36 +0100)
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>
Documentation/memory-barriers.txt

index 1d067235b0bc78fc2b20c3b8977193bd3a3c537d..2d22da095a601435455a85b6302214d21c6eb705 100644 (file)
@@ -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.