summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-04-28 14:31:10 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-20 09:01:15 +0200
commit577293f0a959b5368c073d51f3404c57b3680d14 (patch)
treeb7a65ec24fa9c01c721f7e0e5283636d1bf35b01 /cpukit
parentscore: Remove unused SMP_MESSAGE_TEST (diff)
downloadrtems-577293f0a959b5368c073d51f3404c57b3680d14.tar.bz2
score: Add _SMP_Synchronize()
Diffstat (limited to '')
-rw-r--r--cpukit/include/rtems/score/smpimpl.h8
-rw-r--r--cpukit/score/src/smpmulticastaction.c10
2 files changed, 18 insertions, 0 deletions
diff --git a/cpukit/include/rtems/score/smpimpl.h b/cpukit/include/rtems/score/smpimpl.h
index c0fe7a03e2..e52a82cf25 100644
--- a/cpukit/include/rtems/score/smpimpl.h
+++ b/cpukit/include/rtems/score/smpimpl.h
@@ -261,6 +261,14 @@ void _SMP_Othercast_action(
void *arg
);
+/**
+ * @brief Ensures that all store operations issued by the current processor
+ * before the call this function are visible to all other online processors.
+ *
+ * Simply calls _SMP_Othercast_action() with an empty multicast action.
+ */
+void _SMP_Synchronize( void );
+
#endif /* defined( RTEMS_SMP ) */
/**
diff --git a/cpukit/score/src/smpmulticastaction.c b/cpukit/score/src/smpmulticastaction.c
index b5d21a4b56..232b3142fd 100644
--- a/cpukit/score/src/smpmulticastaction.c
+++ b/cpukit/score/src/smpmulticastaction.c
@@ -211,3 +211,13 @@ void _SMP_Othercast_action(
_Processor_mask_Clear( &targets, _SMP_Get_current_processor() );
_SMP_Multicast_action( &targets, handler, arg );
}
+
+static void _SMP_Do_nothing_action( void *arg )
+{
+ /* Do nothing */
+}
+
+void _SMP_Synchronize( void )
+{
+ _SMP_Othercast_action( _SMP_Do_nothing_action, NULL );
+}