2 * @brief Basic atomic operations to be exposed to user program.
5 #ifndef __LIBATOMIC_H__
6 #define __LIBATOMIC_H__
12 typedef enum memory_order {
21 typedef struct atomic_object {
25 void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order);
26 #define atomic_store(A, B) atomic_store_explicit((A), (B), memory_order_seq_cst)
28 int atomic_load_explicit(struct atomic_object *obj, memory_order order);
29 #define atomic_load(A) atomic_load_explicit((A), memory_order_seq_cst)
31 void atomic_init(struct atomic_object *obj, int value);
37 #endif /* __LIBATOMIC_H__ */