-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathgcc-4.8.5-atomic.h
More file actions
43 lines (33 loc) · 1.57 KB
/
gcc-4.8.5-atomic.h
File metadata and controls
43 lines (33 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* @file gcc-4.8.5-atomic.h
*
* @author shadow-yuan (shadow_yuan@qq.com)
*
* @brief because gcc-4.8.5 does not include the file stdatomic.h
* so add this file to pass the compilation
*
*/
#ifndef MI_FOR_GCC_485_ATOMIC_H_
#define MI_FOR_GCC_485_ATOMIC_H_
#define memory_order_relaxed __ATOMIC_RELAXED
#define memory_order_consume __ATOMIC_CONSUME
#define memory_order_acquire __ATOMIC_ACQUIRE
#define memory_order_release __ATOMIC_RELEASE
#define memory_order_acq_rel __ATOMIC_ACQ_REL
#define memory_order_seq_cst __ATOMIC_SEQ_CST
#define _Atomic(x) x
#define __has_include(x) (1)
#define atomic_load_explicit(p, m) __atomic_load_n(p, m)
#define atomic_store_explicit(p, x, m) __atomic_store_n(p, x, m)
#define atomic_exchange(p, x) __atomic_exchange_n(p, x, memory_order_seq_cst)
#define atomic_exchange_explicit(p, x, m) __atomic_exchange_n(p, x, m)
#define atomic_compare_exchange_weak_explicit(p, expected, desired, mem_success, mem_fail) \
__atomic_compare_exchange_n(p, expected, desired, 1, mem_success, mem_fail)
#define atomic_compare_exchange_strong_explicit(p, expected, desired, mem_success, mem_fail) \
__atomic_compare_exchange_n(p, expected, desired, 0, mem_success, mem_fail)
#define atomic_fetch_add_explicit(p, x, m) __atomic_fetch_add(p, x, m)
#define atomic_fetch_sub_explicit(p, x, m) __atomic_fetch_sub(p, x, m)
#define atomic_fetch_and_explicit(p, x, m) __atomic_fetch_and(p, x, m)
#define atomic_fetch_or_explicit(p, x, m) __atomic_fetch_or(p, x, m)
#define ATOMIC_VAR_INIT(x) (x)
#endif // MI_FOR_GCC_485_ATOMIC_H_