diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-04-28 14:31:10 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-05-20 09:01:15 +0200 |
commit | 577293f0a959b5368c073d51f3404c57b3680d14 (patch) | |
tree | b7a65ec24fa9c01c721f7e0e5283636d1bf35b01 /cpukit | |
parent | score: Remove unused SMP_MESSAGE_TEST (diff) | |
download | rtems-577293f0a959b5368c073d51f3404c57b3680d14.tar.bz2 |
score: Add _SMP_Synchronize()
Diffstat (limited to '')
-rw-r--r-- | cpukit/include/rtems/score/smpimpl.h | 8 | ||||
-rw-r--r-- | cpukit/score/src/smpmulticastaction.c | 10 |
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 ); +} |