---
```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
```c
-type uatomic_read(type *addr)
+type uatomic_read(type *addr);
```
Atomically read `v` from `addr`. By "atomically", we mean that
```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
sequence of operations atomically: check if `addr` contains `old`.
If true, then replace the content of `addr` by `new`. Return the
-value previously contained by `addr`. This function imply a full
+value previously contained by `addr`. This function implies a full
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
of operations atomically: replace the content of `addr` by `new`,
and return the value previously contained by `addr`. This
-function imply a full memory barrier before and after the atomic
+function implies a full memory barrier before and after the atomic
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
sequence of operations atomically: increment/decrement the
content of `addr` by `v`, and return the resulting value. This
-function imply a full memory barrier before and after the atomic
+function implies a full memory barrier before and after the atomic
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
```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`.
```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.