diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-14 14:26:34 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-14 16:26:07 +0200 |
commit | edde99bd213d20c55430dd29089e0d8a807ab6d8 (patch) | |
tree | 186fbfb97c296606a1584fd224777b3f6ed5f98e /cpukit/score/include | |
parent | score: Add and use _Thread_Dispatch_if_necessary() (diff) | |
download | rtems-edde99bd213d20c55430dd29089e0d8a807ab6d8.tar.bz2 |
score: Rename rtems_smp_get_number_of_processors()
Rename in rtems_smp_get_processor_count(). Always provide
<rtems/score/smp.h> and <rtems/rtems/smp.h>. Add
_SMP_Get_processor_count(). This function will be a compile time
constant defined to be one on uni-processor configurations. This allows
iterations over all processors without overhead on uni-processor
configurations.
Diffstat (limited to 'cpukit/score/include')
-rw-r--r-- | cpukit/score/include/rtems/score/smp.h | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/cpukit/score/include/rtems/score/smp.h b/cpukit/score/include/rtems/score/smp.h index c7de6d64a9..ea073ac24b 100644 --- a/cpukit/score/include/rtems/score/smp.h +++ b/cpukit/score/include/rtems/score/smp.h @@ -1,10 +1,9 @@ /** - * @file rtems/score/smp.h + * @file * - * @brief Interface to the SuperCore SMP Support used Internally to RTEMS + * @ingroup ScoreSMP * - * This include file defines the interface to the SuperCore - * SMP support that is used internally to RTEMS. + * @brief SuperCore SMP Support API */ /* @@ -19,24 +18,22 @@ #ifndef _RTEMS_SCORE_SMP_H #define _RTEMS_SCORE_SMP_H -#if defined (RTEMS_SMP) -#include <rtems/score/percpu.h> +#include <rtems/score/cpu.h> + +#ifdef __cplusplus +extern "C" { +#endif /** - * @defgroup SuperCoreSMP SMP Support + * @defgroup ScoreSMP SMP Support + * + * @ingroup Score * - * @ingroup Score + * This defines the interface of the SuperCore SMP support. * - * This defines the interface of the SuperCore support - * code for SMP support. + * @{ */ -/**@{*/ - -#ifdef __cplusplus -extern "C" { -#endif - /** * This defines the bit which indicates the interprocessor interrupt * has been requested so that RTEMS will reschedule on this CPU @@ -58,14 +55,20 @@ extern "C" { */ #define RTEMS_BSP_SMP_SHUTDOWN 0x04 -#ifndef ASM -/** - * @brief Number of CPUs in a SMP system. - * - * This variable is set during the SMP initialization sequence to - * indicate the number of CPUs in this system. - */ -SCORE_EXTERN uint32_t _SMP_Processor_count; +#if !defined( ASM ) + +#if defined( RTEMS_SMP ) + SCORE_EXTERN uint32_t _SMP_Processor_count; + + static inline uint32_t _SMP_Get_processor_count( void ) + { + return _SMP_Processor_count; + } +#else + #define _SMP_Get_processor_count() ( ( uint32_t ) 1 ) +#endif + +#if defined( RTEMS_SMP ) /** * @brief Sends a SMP message to a processor. @@ -114,14 +117,15 @@ void _SMP_Request_other_cores_to_dispatch(void); */ void _SMP_Request_other_cores_to_shutdown(void); -#endif +#endif /* defined( RTEMS_SMP ) */ + +#endif /* !defined( ASM ) */ + +/** @} */ #ifdef __cplusplus } #endif #endif - -/**@}*/ -#endif /* end of include file */ |