diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-04-05 11:28:46 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-04-05 11:28:46 +0200 |
commit | 46f05b92b20bd5d38bb952f6aaad6a7783ce36c9 (patch) | |
tree | baeecf308721459eb76970794b2935aab8a7affe /cpukit/score/include/rtems/score/processormask.h | |
parent | spcache01: Instruction cache invalidate workaround (diff) | |
download | rtems-46f05b92b20bd5d38bb952f6aaad6a7783ce36c9.tar.bz2 |
SMP: Simplify SMP multicast actions
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/include/rtems/score/processormask.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/processormask.h b/cpukit/score/include/rtems/score/processormask.h index 5a78dd33c6..8ee869a895 100644 --- a/cpukit/score/include/rtems/score/processormask.h +++ b/cpukit/score/include/rtems/score/processormask.h @@ -62,6 +62,37 @@ extern "C" { */ typedef uint32_t Processor_mask[ PROCESSOR_MASK_FIELD_COUNT ]; +RTEMS_INLINE_ROUTINE void _Processor_mask_Zero( Processor_mask mask ) +{ + size_t i; + + for ( i = 0; i < PROCESSOR_MASK_FIELD_COUNT; ++i ) { + mask[ i ] = 0; + } +} + +RTEMS_INLINE_ROUTINE bool _Processor_mask_Is_zero( const Processor_mask mask ) +{ + size_t i; + + for ( i = 0; i < PROCESSOR_MASK_FIELD_COUNT; ++i ) { + if ( mask[ i ] != 0 ) { + return false; + } + } + + return true; +} + +RTEMS_INLINE_ROUTINE void _Processor_mask_Assign( Processor_mask dst, const Processor_mask src ) +{ + size_t i; + + for ( i = 0; i < PROCESSOR_MASK_FIELD_COUNT; ++i ) { + dst[ i ] = src[ i ]; + } +} + RTEMS_INLINE_ROUTINE void _Processor_mask_Set( Processor_mask mask, uint32_t index ) { mask[ PROCESSOR_MASK_FIELD( index ) ] |= PROCESSOR_MASK_BIT( index ); |