X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=doc%2Fuatomic-api.md;h=84b97166cef4c2ec81cdf61734eb6f2d1d5fe6b1;hb=d001c88633f6a58e94eb73f4814976d13f61bd77;hp=9dd0c1c18ee5d1bd2e5c80f95b9b66edc3cf800e;hpb=20d8db460ac65724d67fe252e97771b636707b45;p=urcu.git diff --git a/doc/uatomic-api.md b/doc/uatomic-api.md index 9dd0c1c..84b9716 100644 --- a/doc/uatomic-api.md +++ b/doc/uatomic-api.md @@ -1,3 +1,9 @@ + + Userspace RCU Atomic Operations API =================================== @@ -27,7 +33,7 @@ API --- ```c -void uatomic_set(type *addr, type v) +void uatomic_set(type *addr, type v); ``` Atomically write `v` into `addr`. By "atomically", we mean that no @@ -36,7 +42,7 @@ effects of `uatomic_set()`. ```c -type uatomic_read(type *addr) +type uatomic_read(type *addr); ``` Atomically read `v` from `addr`. By "atomically", we mean that @@ -45,7 +51,7 @@ uatomic update. ```c -type uatomic_cmpxchg(type *addr, type old, type new) +type uatomic_cmpxchg(type *addr, type old, type new); ``` An atomic read-modify-write operation that performs this @@ -56,7 +62,7 @@ memory barrier before and after the atomic operation. ```c -type uatomic_xchg(type *addr, type new) +type uatomic_xchg(type *addr, type new); ``` An atomic read-modify-write operation that performs this sequence @@ -67,8 +73,8 @@ operation. ```c -type uatomic_add_return(type *addr, type v) -type uatomic_sub_return(type *addr, type v) +type uatomic_add_return(type *addr, type v); +type uatomic_sub_return(type *addr, type v); ``` An atomic read-modify-write operation that performs this @@ -79,8 +85,8 @@ operation. ```c -void uatomic_and(type *addr, type mask) -void uatomic_or(type *addr, type mask) +void uatomic_and(type *addr, type mask); +void uatomic_or(type *addr, type mask); ``` Atomically write the result of bitwise "and"/"or" between the @@ -95,8 +101,8 @@ atomic instructions implicitly supply the needed memory barriers. ```c -void uatomic_add(type *addr, type v) -void uatomic_sub(type *addr, type v) +void uatomic_add(type *addr, type v); +void uatomic_sub(type *addr, type v); ``` Atomically increment/decrement the content of `addr` by `v`. @@ -110,8 +116,8 @@ instructions implicitly supply the needed memory barriers. ```c -void uatomic_inc(type *addr) -void uatomic_dec(type *addr) +void uatomic_inc(type *addr); +void uatomic_dec(type *addr); ``` Atomically increment/decrement the content of `addr` by 1.