diff options
Diffstat (limited to 'cpukit/score/include/rtems')
-rw-r--r-- | cpukit/score/include/rtems/score/scheduleredf.h | 12 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/scheduleredfimpl.h | 13 |
2 files changed, 17 insertions, 8 deletions
diff --git a/cpukit/score/include/rtems/score/scheduleredf.h b/cpukit/score/include/rtems/score/scheduleredf.h index 153b882495..2d5f537c59 100644 --- a/cpukit/score/include/rtems/score/scheduleredf.h +++ b/cpukit/score/include/rtems/score/scheduleredf.h @@ -66,6 +66,13 @@ extern "C" { */ #define SCHEDULER_EDF_PRIO_MSB 0x80000000 +typedef struct { + /** + * Top of the ready queue. + */ + RBTree_Control Ready; +} Scheduler_EDF_Control; + /** * @typedef Scheduler_EDF_Queue_state * @@ -97,11 +104,6 @@ typedef struct { } Scheduler_EDF_Per_thread; /** - * Top of the ready queue. - */ -extern RBTree_Control _Scheduler_EDF_Ready_queue; - -/** * @brief Initialize EDF scheduler. * * This routine initializes the EDF scheduler. diff --git a/cpukit/score/include/rtems/score/scheduleredfimpl.h b/cpukit/score/include/rtems/score/scheduleredfimpl.h index 91df20a9a6..aa1d21591f 100644 --- a/cpukit/score/include/rtems/score/scheduleredfimpl.h +++ b/cpukit/score/include/rtems/score/scheduleredfimpl.h @@ -31,12 +31,19 @@ extern "C" { * @{ */ +RTEMS_INLINE_ROUTINE Scheduler_EDF_Control *_Scheduler_EDF_Instance( void ) +{ + return _Scheduler.information; +} + RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Schedule_body( - Thread_Control *thread, - bool force_dispatch + Thread_Control *the_thread + bool force_dispatch ) { - RBTree_Node *first = _RBTree_First(&_Scheduler_EDF_Ready_queue, RBT_LEFT); + Scheduler_EDF_Control *scheduler = + _Scheduler_EDF_Instance(); + RBTree_Node *first = _RBTree_First(&scheduler->Ready, RBT_LEFT); Scheduler_EDF_Per_thread *sched_info = _RBTree_Container_of(first, Scheduler_EDF_Per_thread, Node); Thread_Control *heir = (Thread_Control *) sched_info->thread; |