[PATCH 5/8] score: Add _Per_CPU_Is_boot_processor()

Joel Sherrill joel at rtems.org
Thu Mar 3 15:12:52 UTC 2016


Other than bookkeeping, what is this going to be used for?

How is it configured? The _SMP_Fatal() call at the end of the patch hints
that there is some related configuration.

On Thu, Mar 3, 2016 at 8:47 AM, Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> ---
>  cpukit/score/include/rtems/score/percpu.h | 19 +++++++++++++++++++
>  cpukit/score/src/smp.c                    |  2 ++
>  2 files changed, 21 insertions(+)
>
> diff --git a/cpukit/score/include/rtems/score/percpu.h
> b/cpukit/score/include/rtems/score/percpu.h
> index 2b05b78..19f46d2 100644
> --- a/cpukit/score/include/rtems/score/percpu.h
> +++ b/cpukit/score/include/rtems/score/percpu.h
> @@ -365,6 +365,12 @@ typedef struct Per_CPU_Control {
>       * _CPU_SMP_Start_processor().
>       */
>      bool online;
> +
> +    /**
> +     * @brief Indicates if the processor is the one that performed the
> initial
> +     * system initialization.
> +     */
> +    bool boot;
>    #endif
>
>    Per_CPU_Stats Stats;
> @@ -536,6 +542,19 @@ static inline bool _Per_CPU_Is_processor_online(
>  #endif
>  }
>
> +static inline bool _Per_CPU_Is_boot_processor(
> +  const Per_CPU_Control *cpu
> +)
> +{
> +#if defined( RTEMS_SMP )
> +  return cpu->boot;
> +#else
> +  (void) cpu;
> +
> +  return true;
> +#endif
> +}
> +
>  #if defined( RTEMS_SMP )
>
>  static inline void _Per_CPU_Send_interrupt( const Per_CPU_Control *cpu )
> diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c
> index 68a55ff..8049643 100644
> --- a/cpukit/score/src/smp.c
> +++ b/cpukit/score/src/smp.c
> @@ -57,6 +57,8 @@ static void _SMP_Start_processors( uint32_t cpu_count )
>      } else {
>        started = true;
>
> +      cpu->boot = true;
> +
>        if ( !_Scheduler_Should_start_processor( assignment ) ) {
>          _SMP_Fatal( SMP_FATAL_BOOT_PROCESSOR_NOT_ASSIGNED_TO_SCHEDULER );
>        }
> --
> 1.8.4.5
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160303/96dcb233/attachment-0002.html>


More information about the devel mailing list