<div dir="ltr">Thanks,<div> I am assuming this is the code that allocates space:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> #define RTEMS_SCHEDULER_EDF_SMP( name ) \<br>     static struct { \<br>       Scheduler_EDF_SMP_Context Base; \<br>       Scheduler_EDF_SMP_Ready_queue Ready[ CONFIGURE_MAXIMUM_PROCESSORS<br>+ 1 ]; \<br>     } SCHEDULER_EDF_SMP_CONTEXT_NAME( name )</blockquote><div><br></div><div>How do we use or refer to this 'Base'? How do we link this 'Ready' to the 'Ready' inside the EDF_SMP_Context? </div><br>On Thu, Aug 13, 2020 at 6:17 PM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br>><br>> On 13/08/2020 14:42, Richi Dubey wrote:<br>><br>> > I want to use arrays with size _CONFIGURE_MAXIMUM_PROCESSORS. Is it<br>> > okay if I define the arrays with this size while writing the scheduler<br>> > strong APA header file? I am asking this because the value of this<br>> > header gets defined at the time the test case runs while the scheduler<br>> > gets linked to the test case at the time of linking. So how would it<br>> > work?<br>><br>> Do NOT use _CONFIGURE_MAXIMUM_PROCESSORS.<br>><br>> In <rtems/scheduler.h> please use something similar to the EDF scheduler<br>> instantiation:<br>><br>> #ifdef CONFIGURE_SCHEDULER_EDF_SMP<br>>    #include <rtems/score/scheduleredfsmp.h><br>><br>>    #ifndef CONFIGURE_MAXIMUM_PROCESSORS<br>>      #error "CONFIGURE_MAXIMUM_PROCESSORS must be defined to configure<br>> the EDF SMP scheduler"<br>>    #endif<br>><br>>    #define SCHEDULER_EDF_SMP_CONTEXT_NAME( name ) \<br>>      SCHEDULER_CONTEXT_NAME( EDF_SMP_ ## name )<br>><br>>    #define RTEMS_SCHEDULER_EDF_SMP( name ) \<br>>      static struct { \<br>>        Scheduler_EDF_SMP_Context Base; \<br>>        Scheduler_EDF_SMP_Ready_queue Ready[ CONFIGURE_MAXIMUM_PROCESSORS<br>> + 1 ]; \<br>>      } SCHEDULER_EDF_SMP_CONTEXT_NAME( name )<br>><br>>    #define RTEMS_SCHEDULER_TABLE_EDF_SMP( name, obj_name ) \<br>>      { \<br>>        &SCHEDULER_EDF_SMP_CONTEXT_NAME( name ).Base.Base.Base, \<br>>        SCHEDULER_EDF_SMP_ENTRY_POINTS, \<br>>        SCHEDULER_EDF_MAXIMUM_PRIORITY, \<br>>        ( obj_name ) \<br>>        SCHEDULER_CONTROL_IS_NON_PREEMPT_MODE_SUPPORTED( false ) \<br>>      }<br>><br>>    /* Provided for backward compatibility */<br>><br>>    #define RTEMS_SCHEDULER_CONTEXT_EDF_SMP( name, max_cpu_count ) \<br>>      RTEMS_SCHEDULER_EDF_SMP( name )<br>><br>>    #define RTEMS_SCHEDULER_CONTROL_EDF_SMP( name, obj_name ) \<br>>      RTEMS_SCHEDULER_TABLE_EDF_SMP( name, obj_name )<br>> #endif<br>><br></div></div>