diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-04-28 14:29:21 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-05-20 08:49:39 +0200 |
commit | 7fdf48aaf241cb050607a8aa441ff19a34a7ddb7 (patch) | |
tree | e89ebda03beaad701aab9a399a6a0da1a2d944b1 /cpukit | |
parent | score: Add _SMP_Broadcast_action() (diff) | |
download | rtems-7fdf48aaf241cb050607a8aa441ff19a34a7ddb7.tar.bz2 |
score: Add _SMP_Othercast_action()
Diffstat (limited to '')
-rw-r--r-- | cpukit/include/rtems/score/smpimpl.h | 15 | ||||
-rw-r--r-- | cpukit/score/src/smpmulticastaction.c | 12 |
2 files changed, 27 insertions, 0 deletions
diff --git a/cpukit/include/rtems/score/smpimpl.h b/cpukit/include/rtems/score/smpimpl.h index bc24f828fe..452f39a3b5 100644 --- a/cpukit/include/rtems/score/smpimpl.h +++ b/cpukit/include/rtems/score/smpimpl.h @@ -284,6 +284,21 @@ void _SMP_Broadcast_action( void *arg ); +/** + * @brief Initiates an SMP multicast action to the set of all online + * processors excluding the current processor. + * + * Simply calls _SMP_Multicast_action() with _SMP_Get_online_processors() as + * the target processor set excluding the current processor. + * + * @param handler The multicast action handler. + * @param arg The multicast action argument. + */ +void _SMP_Othercast_action( + SMP_Action_handler handler, + void *arg +); + #endif /* defined( RTEMS_SMP ) */ /** diff --git a/cpukit/score/src/smpmulticastaction.c b/cpukit/score/src/smpmulticastaction.c index b703ba14a7..f7dd503fae 100644 --- a/cpukit/score/src/smpmulticastaction.c +++ b/cpukit/score/src/smpmulticastaction.c @@ -258,3 +258,15 @@ void _SMP_Broadcast_action( { _SMP_Multicast_action( _SMP_Get_online_processors(), handler, arg ); } + +void _SMP_Othercast_action( + SMP_Action_handler handler, + void *arg +) +{ + Processor_mask targets; + + _Processor_mask_Assign( &targets, _SMP_Get_online_processors() ); + _Processor_mask_Clear( &targets, _SMP_Get_current_processor() ); + _SMP_Multicast_action( &targets, handler, arg ); +} |