Skip to content

Commit 3761e31

Browse files
committed
include/ofi_atom.g: add a few missing atomic ops for use in queue
Signed-off-by: Alexia Ingerson <[email protected]>
1 parent cd8d5d9 commit 3761e31

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

include/ofi_atom.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,28 @@ typedef atomic_long ofi_atomic_int64_t;
119119
memory_order_acq_rel) + val; \
120120
} \
121121
static inline \
122+
int##radix##_t ofi_atomic_add_explicit##radix(ofi_atomic##radix##_t *atomic, \
123+
int##radix##_t val, \
124+
int memmodel) \
125+
{ \
126+
ATOMIC_IS_INITIALIZED(atomic); \
127+
return (int##radix##_t)atomic_fetch_add_explicit(&atomic->val, val, memmodel); \
128+
} \
129+
static inline \
122130
int##radix##_t ofi_atomic_sub##radix(ofi_atomic##radix##_t *atomic, int##radix##_t val) \
123131
{ \
124132
ATOMIC_IS_INITIALIZED(atomic); \
125133
return (int##radix##_t)atomic_fetch_sub_explicit(&atomic->val, val, \
126134
memory_order_acq_rel) - val; \
127135
} \
136+
static inline \
137+
int##radix##_t ofi_atomic_sub_explicit##radix(ofi_atomic##radix##_t *atomic, \
138+
int##radix##_t val, \
139+
int memmodel) \
140+
{ \
141+
ATOMIC_IS_INITIALIZED(atomic); \
142+
return (int##radix##_t)atomic_fetch_sub_explicit(&atomic->val, val, memmodel); \
143+
} \
128144
/** \
129145
* Compare and swap, strong version \
130146
* \

0 commit comments

Comments
 (0)