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.hu...@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@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel