Nugget
atomic_macros_fetch_or.h
1 // Copyright (c) Electronic Arts Inc. All rights reserved.
4 
5 
6 #ifndef EASTL_ATOMIC_INTERNAL_MACROS_FETCH_OR_H
7 #define EASTL_ATOMIC_INTERNAL_MACROS_FETCH_OR_H
8 
9 #if defined(EA_PRAGMA_ONCE_SUPPORTED)
10  #pragma once
11 #endif
12 
13 
15 //
16 // void EASTL_ATOMIC_FETCH_OR_*_N(type, type ret, type * ptr, type val)
17 //
18 #define EASTL_ATOMIC_FETCH_OR_RELAXED_8(type, ret, ptr, val) \
19  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELAXED_8)(type, ret, ptr, val)
20 
21 #define EASTL_ATOMIC_FETCH_OR_ACQUIRE_8(type, ret, ptr, val) \
22  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQUIRE_8)(type, ret, ptr, val)
23 
24 #define EASTL_ATOMIC_FETCH_OR_RELEASE_8(type, ret, ptr, val) \
25  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELEASE_8)(type, ret, ptr, val)
26 
27 #define EASTL_ATOMIC_FETCH_OR_ACQ_REL_8(type, ret, ptr, val) \
28  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQ_REL_8)(type, ret, ptr, val)
29 
30 #define EASTL_ATOMIC_FETCH_OR_SEQ_CST_8(type, ret, ptr, val) \
31  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_SEQ_CST_8)(type, ret, ptr, val)
32 
33 
34 #define EASTL_ATOMIC_FETCH_OR_RELAXED_16(type, ret, ptr, val) \
35  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELAXED_16)(type, ret, ptr, val)
36 
37 #define EASTL_ATOMIC_FETCH_OR_ACQUIRE_16(type, ret, ptr, val) \
38  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQUIRE_16)(type, ret, ptr, val)
39 
40 #define EASTL_ATOMIC_FETCH_OR_RELEASE_16(type, ret, ptr, val) \
41  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELEASE_16)(type, ret, ptr, val)
42 
43 #define EASTL_ATOMIC_FETCH_OR_ACQ_REL_16(type, ret, ptr, val) \
44  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQ_REL_16)(type, ret, ptr, val)
45 
46 #define EASTL_ATOMIC_FETCH_OR_SEQ_CST_16(type, ret, ptr, val) \
47  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_SEQ_CST_16)(type, ret, ptr, val)
48 
49 
50 #define EASTL_ATOMIC_FETCH_OR_RELAXED_32(type, ret, ptr, val) \
51  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELAXED_32)(type, ret, ptr, val)
52 
53 #define EASTL_ATOMIC_FETCH_OR_ACQUIRE_32(type, ret, ptr, val) \
54  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQUIRE_32)(type, ret, ptr, val)
55 
56 #define EASTL_ATOMIC_FETCH_OR_RELEASE_32(type, ret, ptr, val) \
57  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELEASE_32)(type, ret, ptr, val)
58 
59 #define EASTL_ATOMIC_FETCH_OR_ACQ_REL_32(type, ret, ptr, val) \
60  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQ_REL_32)(type, ret, ptr, val)
61 
62 #define EASTL_ATOMIC_FETCH_OR_SEQ_CST_32(type, ret, ptr, val) \
63  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_SEQ_CST_32)(type, ret, ptr, val)
64 
65 
66 #define EASTL_ATOMIC_FETCH_OR_RELAXED_64(type, ret, ptr, val) \
67  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELAXED_64)(type, ret, ptr, val)
68 
69 #define EASTL_ATOMIC_FETCH_OR_ACQUIRE_64(type, ret, ptr, val) \
70  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQUIRE_64)(type, ret, ptr, val)
71 
72 #define EASTL_ATOMIC_FETCH_OR_RELEASE_64(type, ret, ptr, val) \
73  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELEASE_64)(type, ret, ptr, val)
74 
75 #define EASTL_ATOMIC_FETCH_OR_ACQ_REL_64(type, ret, ptr, val) \
76  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQ_REL_64)(type, ret, ptr, val)
77 
78 #define EASTL_ATOMIC_FETCH_OR_SEQ_CST_64(type, ret, ptr, val) \
79  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_SEQ_CST_64)(type, ret, ptr, val)
80 
81 
82 #define EASTL_ATOMIC_FETCH_OR_RELAXED_128(type, ret, ptr, val) \
83  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELAXED_128)(type, ret, ptr, val)
84 
85 #define EASTL_ATOMIC_FETCH_OR_ACQUIRE_128(type, ret, ptr, val) \
86  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQUIRE_128)(type, ret, ptr, val)
87 
88 #define EASTL_ATOMIC_FETCH_OR_RELEASE_128(type, ret, ptr, val) \
89  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_RELEASE_128)(type, ret, ptr, val)
90 
91 #define EASTL_ATOMIC_FETCH_OR_ACQ_REL_128(type, ret, ptr, val) \
92  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_ACQ_REL_128)(type, ret, ptr, val)
93 
94 #define EASTL_ATOMIC_FETCH_OR_SEQ_CST_128(type, ret, ptr, val) \
95  EASTL_ATOMIC_CHOOSE_OP_IMPL(ATOMIC_FETCH_OR_SEQ_CST_128)(type, ret, ptr, val)
96 
97 
98 #endif /* EASTL_ATOMIC_INTERNAL_MACROS_FETCH_OR_H */