[rtems commit] score: Use void * for some atomic pointer ops

Sebastian Huber sebh at rtems.org
Tue Sep 3 09:02:55 UTC 2013


Module:    rtems
Branch:    master
Commit:    3bac8a4c405da93be0d222800b559e2f09650c6c
Changeset: http://git.rtems.org/rtems/commit/?id=3bac8a4c405da93be0d222800b559e2f09650c6c

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Sep  3 11:04:33 2013 +0200

score: Use void * for some atomic pointer ops

---

 cpukit/score/include/rtems/score/atomic.h       |   24 ++++++++++----------
 cpukit/score/include/rtems/score/cpustdatomic.h |   27 ++++++++++++-----------
 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 459b55a..cdb75f8 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 546745e..0cbefec 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(




More information about the vc mailing list