mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-14 17:13:50 +01:00
sys/atomic_utils: fix compilation with C++ compiler
This commit is contained in:
parent
4a326d6c35
commit
1f3daf3335
@ -274,14 +274,14 @@ static inline uint64_t atomic_load_u64(const volatile uint64_t *var);
|
||||
static inline unsigned atomic_load_unsigned(const volatile unsigned *var)
|
||||
{
|
||||
if (sizeof(uint64_t) == sizeof(unsigned)) {
|
||||
return atomic_load_u64((volatile void *)var);
|
||||
return atomic_load_u64((const volatile uint64_t *)(uintptr_t)var);
|
||||
}
|
||||
|
||||
if (sizeof(uint32_t) == sizeof(unsigned)) {
|
||||
return atomic_load_u32((volatile void *)var);
|
||||
return atomic_load_u32((const volatile uint32_t *)(uintptr_t)var);
|
||||
}
|
||||
|
||||
return atomic_load_u16((volatile void *)var);
|
||||
return atomic_load_u16((const volatile uint16_t *)(uintptr_t)var);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -362,13 +362,13 @@ static inline void atomic_store_u64(volatile uint64_t *dest, uint64_t val);
|
||||
static inline void atomic_store_unsigned(volatile unsigned *dest, unsigned val)
|
||||
{
|
||||
if (sizeof(uint64_t) == sizeof(unsigned)) {
|
||||
atomic_store_u64((volatile void *)dest, val);
|
||||
atomic_store_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
else if (sizeof(uint32_t) == sizeof(unsigned)) {
|
||||
atomic_store_u32((volatile void *)dest, val);
|
||||
atomic_store_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
else {
|
||||
atomic_store_u16((volatile void *)dest, val);
|
||||
atomic_store_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
}
|
||||
|
||||
@ -462,14 +462,14 @@ static inline unsigned atomic_fetch_add_unsigned(volatile unsigned *dest,
|
||||
unsigned summand)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return atomic_fetch_add_u64((volatile void *)dest, summand);
|
||||
return atomic_fetch_add_u64((volatile uint64_t *)(uintptr_t)dest, summand);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return atomic_fetch_add_u32((volatile void *)dest, summand);
|
||||
return atomic_fetch_add_u32((volatile uint32_t *)(uintptr_t)dest, summand);
|
||||
}
|
||||
|
||||
return atomic_fetch_add_u16((volatile void *)dest, summand);
|
||||
return atomic_fetch_add_u16((volatile uint16_t *)(uintptr_t)dest, summand);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -528,14 +528,14 @@ static inline unsigned atomic_fetch_sub_unsigned(volatile unsigned *dest,
|
||||
unsigned subtrahend)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return atomic_fetch_sub_u64((volatile void *)dest, subtrahend);
|
||||
return atomic_fetch_sub_u64((volatile uint64_t *)(uintptr_t)dest, subtrahend);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return atomic_fetch_sub_u32((volatile void *)dest, subtrahend);
|
||||
return atomic_fetch_sub_u32((volatile uint32_t *)(uintptr_t)dest, subtrahend);
|
||||
}
|
||||
|
||||
return atomic_fetch_sub_u16((volatile void *)dest, subtrahend);
|
||||
return atomic_fetch_sub_u16((volatile uint16_t *)(uintptr_t)dest, subtrahend);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -593,14 +593,14 @@ static inline unsigned atomic_fetch_or_unsigned(volatile unsigned *dest,
|
||||
unsigned val)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return atomic_fetch_or_u64((volatile void *)dest, val);
|
||||
return atomic_fetch_or_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return atomic_fetch_or_u32((volatile void *)dest, val);
|
||||
return atomic_fetch_or_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
return atomic_fetch_or_u16((volatile void *)dest, val);
|
||||
return atomic_fetch_or_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -658,14 +658,14 @@ static inline unsigned atomic_fetch_xor_unsigned(volatile unsigned *dest,
|
||||
unsigned val)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return atomic_fetch_xor_u64((volatile void *)dest, val);
|
||||
return atomic_fetch_xor_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return atomic_fetch_xor_u32((volatile void *)dest, val);
|
||||
return atomic_fetch_xor_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
return atomic_fetch_xor_u16((volatile void *)dest, val);
|
||||
return atomic_fetch_xor_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -723,14 +723,14 @@ static inline unsigned atomic_fetch_and_unsigned(volatile unsigned *dest,
|
||||
unsigned val)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return atomic_fetch_and_u64((volatile void *)dest, val);
|
||||
return atomic_fetch_and_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return atomic_fetch_and_u32((volatile void *)dest, val);
|
||||
return atomic_fetch_and_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
return atomic_fetch_and_u16((volatile void *)dest, val);
|
||||
return atomic_fetch_and_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -935,14 +935,14 @@ static inline unsigned semi_atomic_fetch_add_unsigned(volatile unsigned *dest,
|
||||
unsigned summand)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return semi_atomic_fetch_add_u64((volatile void *)dest, summand);
|
||||
return semi_atomic_fetch_add_u64((volatile uint64_t *)(uintptr_t)dest, summand);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return semi_atomic_fetch_add_u32((volatile void *)dest, summand);
|
||||
return semi_atomic_fetch_add_u32((volatile uint32_t *)(uintptr_t)dest, summand);
|
||||
}
|
||||
|
||||
return semi_atomic_fetch_add_u16((volatile void *)dest, summand);
|
||||
return semi_atomic_fetch_add_u16((volatile uint16_t *)(uintptr_t)dest, summand);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -1001,14 +1001,14 @@ static inline unsigned semi_atomic_fetch_sub_unsigned(volatile unsigned *dest,
|
||||
unsigned subtrahend)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return semi_atomic_fetch_sub_u64((volatile void *)dest, subtrahend);
|
||||
return semi_atomic_fetch_sub_u64((volatile uint64_t *)(uintptr_t)dest, subtrahend);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return semi_atomic_fetch_sub_u32((volatile void *)dest, subtrahend);
|
||||
return semi_atomic_fetch_sub_u32((volatile uint32_t *)(uintptr_t)dest, subtrahend);
|
||||
}
|
||||
|
||||
return semi_atomic_fetch_sub_u16((volatile void *)dest, subtrahend);
|
||||
return semi_atomic_fetch_sub_u16((volatile uint16_t *)(uintptr_t)dest, subtrahend);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -1066,14 +1066,14 @@ static inline unsigned semi_atomic_fetch_or_unsigned(volatile unsigned *dest,
|
||||
unsigned val)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return semi_atomic_fetch_or_u64((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_or_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return semi_atomic_fetch_or_u32((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_or_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
return semi_atomic_fetch_or_u16((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_or_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -1132,14 +1132,14 @@ static inline unsigned semi_atomic_fetch_xor_unsigned(volatile unsigned *dest,
|
||||
unsigned val)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return semi_atomic_fetch_xor_u64((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_xor_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return semi_atomic_fetch_xor_u32((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_xor_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
return semi_atomic_fetch_xor_u16((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_xor_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
@ -1198,14 +1198,14 @@ static inline unsigned semi_atomic_fetch_and_unsigned(volatile unsigned *dest,
|
||||
unsigned val)
|
||||
{
|
||||
if (sizeof(unsigned) == sizeof(uint64_t)) {
|
||||
return semi_atomic_fetch_and_u64((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_and_u64((volatile uint64_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
if (sizeof(unsigned) == sizeof(uint32_t)) {
|
||||
return semi_atomic_fetch_and_u32((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_and_u32((volatile uint32_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
|
||||
return semi_atomic_fetch_and_u16((volatile void *)dest, val);
|
||||
return semi_atomic_fetch_and_u16((volatile uint16_t *)(uintptr_t)dest, val);
|
||||
}
|
||||
/** @} */
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user