diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2017-09-21 14:44:08 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2017-09-21 14:47:42 +0200 |
commit | db81b9953761cac71906728fb3dfefce661ab903 (patch) | |
tree | 3d3d2522542db388e07575f9246dd00fba706d77 | |
parent | 05e015f73c3b5c50c237d3d8e555e25cfa543a5c (diff) |
atomic: update documentation
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | docs/devel/atomics.txt | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/docs/devel/atomics.txt b/docs/devel/atomics.txt index 3ef5d85b1b..048e5f23cb 100644 --- a/docs/devel/atomics.txt +++ b/docs/devel/atomics.txt @@ -63,11 +63,22 @@ operations: typeof(*ptr) atomic_fetch_sub(ptr, val) typeof(*ptr) atomic_fetch_and(ptr, val) typeof(*ptr) atomic_fetch_or(ptr, val) + typeof(*ptr) atomic_fetch_xor(ptr, val) typeof(*ptr) atomic_xchg(ptr, val) typeof(*ptr) atomic_cmpxchg(ptr, old, new) all of which return the old value of *ptr. These operations are -polymorphic; they operate on any type that is as wide as an int. +polymorphic; they operate on any type that is as wide as a pointer. + +Similar operations return the new value of *ptr: + + typeof(*ptr) atomic_inc_fetch(ptr) + typeof(*ptr) atomic_dec_fetch(ptr) + typeof(*ptr) atomic_add_fetch(ptr, val) + typeof(*ptr) atomic_sub_fetch(ptr, val) + typeof(*ptr) atomic_and_fetch(ptr, val) + typeof(*ptr) atomic_or_fetch(ptr, val) + typeof(*ptr) atomic_xor_fetch(ptr, val) Sequentially consistent loads and stores can be done using: |