mirror of https://github.com/ARMmbed/mbed-os.git
Add some functionality to atomic stubs
parent
168b51c415
commit
31fbed9066
|
@ -57,113 +57,143 @@ uint32_t core_util_atomic_exchange_u32(volatile uint32_t *ptr, uint32_t desiredV
|
|||
|
||||
uint8_t core_util_atomic_incr_u8(volatile uint8_t *valuePtr, uint8_t delta)
|
||||
{
|
||||
return 0;
|
||||
return *valuePtr+=delta;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_incr_u16(volatile uint16_t *valuePtr, uint16_t delta)
|
||||
{
|
||||
return 0;
|
||||
return *valuePtr+=delta;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_incr_u32(volatile uint32_t *valuePtr, uint32_t delta)
|
||||
{
|
||||
return 0;
|
||||
return *valuePtr+=delta;
|
||||
}
|
||||
|
||||
|
||||
uint8_t core_util_atomic_decr_u8(volatile uint8_t *valuePtr, uint8_t delta)
|
||||
{
|
||||
return 0;
|
||||
return *valuePtr-=delta;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_decr_u16(volatile uint16_t *valuePtr, uint16_t delta)
|
||||
{
|
||||
return 0;
|
||||
return *valuePtr-=delta;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_decr_u32(volatile uint32_t *valuePtr, uint32_t delta)
|
||||
{
|
||||
return 0;
|
||||
return *valuePtr-=delta;
|
||||
}
|
||||
|
||||
|
||||
uint8_t core_util_atomic_fetch_add_u8(volatile uint8_t *valuePtr, uint8_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint8_t v = *valuePtr;
|
||||
*valuePtr += arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_fetch_add_u16(volatile uint16_t *valuePtr, uint16_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint16_t v = *valuePtr;
|
||||
*valuePtr += arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_fetch_add_u32(volatile uint32_t *valuePtr, uint32_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint32_t v = *valuePtr;
|
||||
*valuePtr += arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
uint8_t core_util_atomic_fetch_sub_u8(volatile uint8_t *valuePtr, uint8_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint8_t v = *valuePtr;
|
||||
*valuePtr -= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_fetch_sub_u16(volatile uint16_t *valuePtr, uint16_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint16_t v = *valuePtr;
|
||||
*valuePtr -= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_fetch_sub_u32(volatile uint32_t *valuePtr, uint32_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint32_t v = *valuePtr;
|
||||
*valuePtr -= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
uint8_t core_util_atomic_fetch_and_u8(volatile uint8_t *valuePtr, uint8_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint8_t v = *valuePtr;
|
||||
*valuePtr &= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_fetch_and_u16(volatile uint16_t *valuePtr, uint16_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint16_t v = *valuePtr;
|
||||
*valuePtr &= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_fetch_and_u32(volatile uint32_t *valuePtr, uint32_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint32_t v = *valuePtr;
|
||||
*valuePtr &= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
uint8_t core_util_atomic_fetch_or_u8(volatile uint8_t *valuePtr, uint8_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint8_t v = *valuePtr;
|
||||
*valuePtr |= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_fetch_or_u16(volatile uint16_t *valuePtr, uint16_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint16_t v = *valuePtr;
|
||||
*valuePtr |= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_fetch_or_u32(volatile uint32_t *valuePtr, uint32_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint32_t v = *valuePtr;
|
||||
*valuePtr |= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
uint8_t core_util_atomic_fetch_xor_u8(volatile uint8_t *valuePtr, uint8_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint8_t v = *valuePtr;
|
||||
*valuePtr ^= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint16_t core_util_atomic_fetch_xor_u16(volatile uint16_t *valuePtr, uint16_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint16_t v = *valuePtr;
|
||||
*valuePtr ^= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
uint32_t core_util_atomic_fetch_xor_u32(volatile uint32_t *valuePtr, uint32_t arg)
|
||||
{
|
||||
return 0;
|
||||
uint32_t v = *valuePtr;
|
||||
*valuePtr ^= arg;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue