From 26726cc170f9450afb52f39d66065bb506d3536b Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Tue, 5 Jul 2016 11:44:06 -0500 Subject: [PATCH] Added proper usage of standard types for critical pointer functions --- hal/api/critical.h | 6 ++++-- hal/common/critical.c | 22 +++++++++------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/hal/api/critical.h b/hal/api/critical.h index 5df657e0d2..676db94031 100644 --- a/hal/api/critical.h +++ b/hal/api/critical.h @@ -19,6 +19,8 @@ #define __MBED_UTIL_CRITICAL_H__ #include +#include +#include #ifdef __cplusplus extern "C" { @@ -304,7 +306,7 @@ uint32_t core_util_atomic_incr_u32(uint32_t * valuePtr, uint32_t delta); * @param delta The amount being incremented. * @return The new incremented value. */ -void *core_util_atomic_incr_ptr(void **valuePtr, unsigned delta); +void *core_util_atomic_incr_ptr(void **valuePtr, ptrdiff_t delta); /** * Atomic decrement. @@ -336,7 +338,7 @@ uint32_t core_util_atomic_decr_u32(uint32_t * valuePtr, uint32_t delta); * @param delta The amount being decremented. * @return The new decremented value. */ -void *core_util_atomic_decr_ptr(void **valuePtr, unsigned delta); +void *core_util_atomic_decr_ptr(void **valuePtr, ptrdiff_t delta); #ifdef __cplusplus } // extern "C" diff --git a/hal/common/critical.c b/hal/common/critical.c index 7007e5c67e..ef68069d3f 100644 --- a/hal/common/critical.c +++ b/hal/common/critical.c @@ -15,15 +15,11 @@ * limitations under the License. */ -#define __STDC_LIMIT_MACROS -#include -#include +#include "critical.h" + #include "cmsis.h" #include "mbed_assert.h" -// Module include -#include "critical.h" - #define EXCLUSIVE_ACCESS (!defined (__CORTEX_M0) && !defined (__CORTEX_M0PLUS)) static volatile uint32_t interrupt_enable_counter = 0; @@ -238,9 +234,9 @@ bool core_util_atomic_cas_u32(uint32_t *ptr, uint32_t *expectedCurrentValue, uin bool core_util_atomic_cas_ptr(void **ptr, void **expectedCurrentValue, void *desiredValue) { return core_util_atomic_cas_u32( - (unsigned *)ptr, - (unsigned *)expectedCurrentValue, - (unsigned)desiredValue); + (uintptr_t *)ptr, + (uintptr_t *)expectedCurrentValue, + (uintptr_t)desiredValue); } uint8_t core_util_atomic_incr_u8(uint8_t * valuePtr, uint8_t delta) @@ -273,8 +269,8 @@ uint32_t core_util_atomic_incr_u32(uint32_t * valuePtr, uint32_t delta) return newValue; } -void *core_util_atomic_incr_ptr(void **valuePtr, unsigned delta) { - return core_util_atomic_incr((unsigned)valuePtr, delta); +void *core_util_atomic_incr_ptr(void **valuePtr, ptrdiff_t delta) { + return core_util_atomic_incr((uintptr_t)valuePtr, (uintptr_t)delta); } @@ -308,8 +304,8 @@ uint32_t core_util_atomic_decr_u32(uint32_t * valuePtr, uint32_t delta) return newValue; } -void *core_util_atomic_decr_ptr(void **valuePtr, unsigned delta) { - return core_util_atomic_decr((unsigned)valuePtr, delta); +void *core_util_atomic_decr_ptr(void **valuePtr, ptrdiff_t delta) { + return core_util_atomic_decr((uintptr_t)valuePtr, (uintptr_t)delta); } #endif