Need help understand how the scheduler table entries work
Gedare Bloom
gedare at rtems.org
Mon Aug 10 15:34:39 UTC 2020
On Mon, Aug 10, 2020 at 9:10 AM Richi Dubey <richidubey at gmail.com> wrote:
>
> Hi,
>
> I want your help to figure out how the table entries for a scheduler work.
>
> For STRONG_APA scheduler, the flow is :
> link
> -------------------------------------------------------------------------------------------------------
> #define RTEMS_SCHEDULER_TABLE_STRONG_APA( name, obj_name ) \
> { \
> &SCHEDULER_STRONG_APA_CONTEXT_NAME( name ).Base.Base.Base, \
> SCHEDULER_STRONG_APA_ENTRY_POINTS, \
> RTEMS_ARRAY_SIZE( \
> SCHEDULER_STRONG_APA_CONTEXT_NAME( name ).Ready \
> ) - 1, \
> ( obj_name ) \
> SCHEDULER_CONTROL_IS_NON_PREEMPT_MODE_SUPPORTED( false ) \
> }
>
> -------------------------------------------------------------------------------------------------------
> which is used for:
> link
> -------------------------------------------------------------------------------------------------------
>
> #ifdef CONFIGURE_SCHEDULER_STRONG_APA
> #ifndef CONFIGURE_SCHEDULER_NAME
> #define CONFIGURE_SCHEDULER_NAME rtems_build_name( 'M', 'A', 'P', 'A' )
> #endif
>
> #ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
> #define CONFIGURE_SCHEDULER \
> RTEMS_SCHEDULER_STRONG_APA( \
> dflt, \
> CONFIGURE_MAXIMUM_PRIORITY + 1 \
> )
>
> #define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
> RTEMS_SCHEDULER_TABLE_STRONG_APA( dflt, CONFIGURE_SCHEDULER_NAME )
> #endif
> #endif
> -------------------------------------------------------------------------------------------------------
>
> which is eventually used for:
>
> link
> -------------------------------------------------------------------------------------------------------
> const Scheduler_Control _Scheduler_Table[] = {
> CONFIGURE_SCHEDULER_TABLE_ENTRIES
> };
>
> -------------------------------------------------------------------------------------------------------
>
> I do not understand what the Scheduler_Table[] or the SCHEDULER_TABLE_ENTRIES should contain.
The type definition of the _Scheduler_Table[] is Scheduler_Control.
This structure is defined in
cpukit/include/rtems/score/scheduler.h:269
> I need help with this because I have to change the RTEMS_SCHEDULER_TABLE_STRONG_APA since I am changing some of the variables in the Scheduler_strong_APA_Context.
>
There is not really anything to change about it. You specialize the
scheduler by the Scheduler_Context and Scheduler_Operations
structures. You still just pass through the context base to the
scheduler table.
> Thank you,
> Richi.
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list