diff --git a/hal/common/critical.c b/hal/common/critical.c index f4ec8eb2f1d..0afe0d5ad73 100644 --- a/hal/common/critical.c +++ b/hal/common/critical.c @@ -232,12 +232,6 @@ bool core_util_atomic_cas_u32(uint32_t *ptr, uint32_t *expectedCurrentValue, uin return success; } -bool core_util_atomic_cas_ptr(void **ptr, void **expectedCurrentValue, void *desiredValue) { - return core_util_atomic_cas_u32( - (uintptr_t *)ptr, - (uintptr_t *)expectedCurrentValue, - (uintptr_t)desiredValue); -} uint8_t core_util_atomic_incr_u8(uint8_t *valuePtr, uint8_t delta) { @@ -269,10 +263,6 @@ uint32_t core_util_atomic_incr_u32(uint32_t *valuePtr, uint32_t delta) return newValue; } -void *core_util_atomic_incr_ptr(void **valuePtr, ptrdiff_t delta) { - return core_util_atomic_incr((uintptr_t)valuePtr, (uintptr_t)delta); -} - uint8_t core_util_atomic_decr_u8(uint8_t *valuePtr, uint8_t delta) { @@ -304,9 +294,21 @@ uint32_t core_util_atomic_decr_u32(uint32_t *valuePtr, uint32_t delta) return newValue; } -void *core_util_atomic_decr_ptr(void **valuePtr, ptrdiff_t delta) { - return core_util_atomic_decr((uintptr_t)valuePtr, (uintptr_t)delta); +#endif + + +bool core_util_atomic_cas_ptr(void **ptr, void **expectedCurrentValue, void *desiredValue) { + return core_util_atomic_cas_u32( + (uint32_t *)ptr, + (uint32_t *)expectedCurrentValue, + (uint32_t)desiredValue); } -#endif +void *core_util_atomic_incr_ptr(void **valuePtr, ptrdiff_t delta) { + return (void *)core_util_atomic_incr_u32((uint32_t *)valuePtr, (uint32_t)delta); +} + +void *core_util_atomic_decr_ptr(void **valuePtr, ptrdiff_t delta) { + return (void *)core_util_atomic_decr_u32((uint32_t *)valuePtr, (uint32_t)delta); +}