|
@@ -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.
|