summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-09-03 11:04:33 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-09-03 11:07:36 +0200
commit3bac8a4c405da93be0d222800b559e2f09650c6c (patch)
treedc7d5289e1363787e6f8a35f04f2d1d269967c86
parentscore: Use unsigned long for atomic integers (diff)
downloadrtems-3bac8a4c405da93be0d222800b559e2f09650c6c.tar.bz2
score: Use void * for some atomic pointer ops
-rw-r--r--cpukit/score/include/rtems/score/atomic.h24
-rw-r--r--cpukit/score/include/rtems/score/cpustdatomic.h27
2 files changed, 26 insertions, 25 deletions
diff --git a/cpukit/score/include/rtems/score/atomic.h b/cpukit/score/include/rtems/score/atomic.h
index 459b55a455..cdb75f8f81 100644
--- a/cpukit/score/include/rtems/score/atomic.h
+++ b/cpukit/score/include/rtems/score/atomic.h
@@ -46,7 +46,7 @@ extern "C" {
* @brief Initializes an atomic type value into a atomic object.
*
* @param object an atomic type pointer of object.
- * @param value a value to be stored into object.
+ * @param pointer a pointer to be stored into object.
*/
static inline void _Atomic_Init_ulong(
volatile Atomic_Ulong *object,
@@ -58,10 +58,10 @@ static inline void _Atomic_Init_ulong(
static inline void _Atomic_Init_ptr(
volatile Atomic_Pointer *object,
- uintptr_t value
+ void *pointer
)
{
- _CPU_atomic_Init_ptr(object, value);
+ _CPU_atomic_Init_ptr(object, pointer);
}
/**
@@ -80,7 +80,7 @@ static inline unsigned long _Atomic_Load_ulong(
return _CPU_atomic_Load_ulong( object, order );
}
-static inline uintptr_t _Atomic_Load_ptr(
+static inline void *_Atomic_Load_ptr(
volatile Atomic_Pointer *object,
Atomic_Order order
)
@@ -108,11 +108,11 @@ static inline void _Atomic_Store_ulong(
static inline void _Atomic_Store_ptr(
volatile Atomic_Pointer *object,
- uintptr_t value,
+ void *pointer,
Atomic_Order order
)
{
- _CPU_atomic_Store_ptr( object, value, order );
+ _CPU_atomic_Store_ptr( object, pointer, order );
}
/**
@@ -241,13 +241,13 @@ static inline unsigned long _Atomic_Exchange_ulong(
return _CPU_atomic_Exchange_ulong( object, value, order );
}
-static inline uintptr_t _Atomic_Exchange_ptr(
+static inline void *_Atomic_Exchange_ptr(
volatile Atomic_Pointer *object,
- uintptr_t value,
+ void *pointer,
Atomic_Order order
)
{
- return _CPU_atomic_Exchange_ptr( object, value, order );
+ return _CPU_atomic_Exchange_ptr( object, pointer, order );
}
/**
@@ -278,13 +278,13 @@ static inline bool _Atomic_Compare_exchange_ulong(
static inline bool _Atomic_Compare_exchange_ptr(
volatile Atomic_Pointer *object,
- uintptr_t *old_value,
- uintptr_t new_value,
+ void **old_pointer,
+ void *new_pointer,
Atomic_Order order_succ,
Atomic_Order order_fail
)
{
- return _CPU_atomic_Compare_exchange_ptr( object, old_value, new_value,
+ return _CPU_atomic_Compare_exchange_ptr( object, old_pointer, new_pointer,
order_succ, order_fail );
}
diff --git a/cpukit/score/include/rtems/score/cpustdatomic.h b/cpukit/score/include/rtems/score/cpustdatomic.h
index 546745ea86..0cbefec028 100644
--- a/cpukit/score/include/rtems/score/cpustdatomic.h
+++ b/cpukit/score/include/rtems/score/cpustdatomic.h
@@ -72,7 +72,8 @@ typedef enum {
* @brief atomic data initializer for static initialization.
*/
#define CPU_ATOMIC_INITIALIZER_ULONG(value) ATOMIC_VAR_INIT(value)
-#define CPU_ATOMIC_INITIALIZER_PTR(value) ATOMIC_VAR_INIT(value)
+#define CPU_ATOMIC_INITIALIZER_PTR(pointer) \
+ ATOMIC_VAR_INIT((uintptr_t) pointer)
#define CPU_ATOMIC_INITIALIZER_FLAG ATOMIC_FLAG_INIT
@@ -92,10 +93,10 @@ static inline void _CPU_atomic_Init_ulong(
static inline void _CPU_atomic_Init_ptr(
volatile Atomic_Pointer *object,
- uintptr_t value
+ void *pointer
)
{
- atomic_init(object, value);
+ atomic_init(object, pointer);
}
/**
@@ -114,7 +115,7 @@ static inline unsigned long _CPU_atomic_Load_ulong(
return atomic_load_explicit( object, order );
}
-static inline uintptr_t _CPU_atomic_Load_ptr(
+static inline void *_CPU_atomic_Load_ptr(
volatile Atomic_Pointer *object,
Atomic_Order order
)
@@ -142,11 +143,11 @@ static inline void _CPU_atomic_Store_ulong(
static inline void _CPU_atomic_Store_ptr(
volatile Atomic_Pointer *object,
- uintptr_t value,
+ void *pointer,
Atomic_Order order
)
{
- atomic_store_explicit( object, value, order );
+ atomic_store_explicit( object, pointer, order );
}
/**
@@ -275,13 +276,13 @@ static inline unsigned long _CPU_atomic_Exchange_ulong(
return atomic_exchange_explicit( object, value, order );
}
-static inline uintptr_t _CPU_atomic_Exchange_ptr(
+static inline void *_CPU_atomic_Exchange_ptr(
volatile Atomic_Pointer *object,
- uintptr_t value,
+ void *pointer,
Atomic_Order order
)
{
- return atomic_exchange_explicit( object, value, order );
+ return atomic_exchange_explicit( object, pointer, pointer );
}
/**
@@ -312,14 +313,14 @@ static inline bool _CPU_atomic_Compare_exchange_ulong(
static inline bool _CPU_atomic_Compare_exchange_ptr(
volatile Atomic_Pointer *object,
- uintptr_t *old_value,
- uintptr_t new_value,
+ void **old_pointer,
+ void *new_pointer,
Atomic_Order order_succ,
Atomic_Order order_fail
)
{
- return atomic_compare_exchange_strong_explicit( object, old_value,
- new_value, order_succ, order_fail );
+ return atomic_compare_exchange_strong_explicit( object, old_pointer,
+ new_pointer, order_succ, order_fail );
}
static inline void _CPU_atomic_Flag_clear(