mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-02 11:33:21 +00:00
MINOR: threads/atomic: implement pl_bts() on non-x86
[ plock commit da17ba320aad3a8faf08e36fca604de9cad21fdd ] This one was missing, it can be done using sync_fetch_and_or().
This commit is contained in:
parent
01b8398b9e
commit
d0d8ba59d3
@ -511,6 +511,9 @@ static inline void pl_mb()
|
||||
#define pl_or(ptr, x) ({ __sync_or_and_fetch((ptr), (x)); })
|
||||
#define pl_xor(ptr, x) ({ __sync_xor_and_fetch((ptr), (x)); })
|
||||
#define pl_sub(ptr, x) ({ __sync_sub_and_fetch((ptr), (x)); })
|
||||
#define pl_bts(ptr, bit) ({ typeof(*(ptr)) __pl_t = (1u << (bit)); \
|
||||
__sync_fetch_and_or((ptr), __pl_t) & __pl_t; \
|
||||
})
|
||||
#define pl_xadd(ptr, x) ({ __sync_fetch_and_add((ptr), (x)); })
|
||||
#define pl_cmpxchg(ptr, o, n) ({ __sync_val_compare_and_swap((ptr), (o), (n)); })
|
||||
#define pl_xchg(ptr, x) ({ typeof(*(ptr)) __pl_t; \
|
||||
|
Loading…
Reference in New Issue
Block a user