mirror of
https://github.com/fluencelabs/musl
synced 2025-06-11 14:01:34 +00:00
add missing a_or_l to atomic.h for non-x86 archs
this is needed for recently committed sigaction code
This commit is contained in:
@ -97,6 +97,11 @@ static inline void a_or(volatile int *p, int v)
|
|||||||
while (a_cas(p, old, old|v) != old);
|
while (a_cas(p, old, old|v) != old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void a_or_l(volatile void *p, long v)
|
||||||
|
{
|
||||||
|
a_or(p, v);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
||||||
{
|
{
|
||||||
union { uint64_t v; uint32_t r[2]; } u = { v };
|
union { uint64_t v; uint32_t r[2]; } u = { v };
|
||||||
|
@ -134,6 +134,11 @@ static inline void a_or(volatile int *p, int v)
|
|||||||
while (a_cas(p, old, old|v) != old);
|
while (a_cas(p, old, old|v) != old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void a_or_l(volatile void *p, long v)
|
||||||
|
{
|
||||||
|
a_or(p, v);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
||||||
{
|
{
|
||||||
union { uint64_t v; uint32_t r[2]; } u = { v };
|
union { uint64_t v; uint32_t r[2]; } u = { v };
|
||||||
|
@ -182,6 +182,11 @@ static inline void a_or(volatile int *p, int v)
|
|||||||
: "=&r"(dummy) : "r"(p), "r"(v) : "memory" );
|
: "=&r"(dummy) : "r"(p), "r"(v) : "memory" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void a_or_l(volatile void *p, long v)
|
||||||
|
{
|
||||||
|
a_or(p, v);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
||||||
{
|
{
|
||||||
union { uint64_t v; uint32_t r[2]; } u = { v };
|
union { uint64_t v; uint32_t r[2]; } u = { v };
|
||||||
|
@ -100,6 +100,11 @@ static inline void a_or(volatile int *p, int v)
|
|||||||
while (a_cas(p, old, old|v) != old);
|
while (a_cas(p, old, old|v) != old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void a_or_l(volatile void *p, long v)
|
||||||
|
{
|
||||||
|
a_or(p, v);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
static inline void a_and_64(volatile uint64_t *p, uint64_t v)
|
||||||
{
|
{
|
||||||
union { uint64_t v; uint32_t r[2]; } u = { v };
|
union { uint64_t v; uint32_t r[2]; } u = { v };
|
||||||
|
Reference in New Issue
Block a user