[rtems commit] score: Add _Scheduler_priority_Get_ready_queues()

Sebastian Huber sebh at rtems.org
Tue Aug 20 08:14:18 UTC 2013


Module:    rtems
Branch:    master
Commit:    f20b3d568da270e603a27699b6707643a3e7e8ad
Changeset: http://git.rtems.org/rtems/commit/?id=f20b3d568da270e603a27699b6707643a3e7e8ad

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug  9 13:34:18 2013 +0200

score: Add _Scheduler_priority_Get_ready_queues()

Add and use _Scheduler_priority_Get_ready_queues()

---

 .../include/rtems/score/schedulerpriorityimpl.h    |   13 +++++++++----
 cpukit/score/src/schedulerpriorityupdate.c         |    7 +++----
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/cpukit/score/include/rtems/score/schedulerpriorityimpl.h b/cpukit/score/include/rtems/score/schedulerpriorityimpl.h
index 7400e58..0fbece6 100644
--- a/cpukit/score/include/rtems/score/schedulerpriorityimpl.h
+++ b/cpukit/score/include/rtems/score/schedulerpriorityimpl.h
@@ -36,6 +36,12 @@ extern "C" {
  */
 /**@{**/
 
+RTEMS_INLINE_ROUTINE Chain_Control *
+_Scheduler_priority_Get_ready_queues( void )
+{
+  return ( Chain_Control * ) _Scheduler.information;
+}
+
 /**
  * @brief Ready queue initialization.
  *
@@ -52,7 +58,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_initialize(void)
   );
 
   /* initialize ready queue structures */
-  ready_queues = (Chain_Control *) _Scheduler.information;
+  ready_queues = _Scheduler_priority_Get_ready_queues();
   for( index=0; index <= PRIORITY_MAXIMUM; index++)
     _Chain_Initialize_empty( &ready_queues[index] );
 }
@@ -181,9 +187,8 @@ RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(
   bool force_dispatch
 )
 {
-  Thread_Control *heir = _Scheduler_priority_Ready_queue_first(
-    (Chain_Control *) _Scheduler.information
-  );
+  Chain_Control *ready_queues = _Scheduler_priority_Get_ready_queues();
+  Thread_Control *heir = _Scheduler_priority_Ready_queue_first( ready_queues );
 
   ( void ) thread;
 
diff --git a/cpukit/score/src/schedulerpriorityupdate.c b/cpukit/score/src/schedulerpriorityupdate.c
index 1935e13..de3f026 100644
--- a/cpukit/score/src/schedulerpriorityupdate.c
+++ b/cpukit/score/src/schedulerpriorityupdate.c
@@ -27,11 +27,10 @@ void _Scheduler_priority_Update(
 {
   Scheduler_priority_Per_thread *sched_info_of_thread =
     _Scheduler_priority_Get_scheduler_info( the_thread );
-  Chain_Control                 *rq;
+  Chain_Control *ready_queues = _Scheduler_priority_Get_ready_queues();
 
-  rq                   = (Chain_Control *) _Scheduler.information;
-
-  sched_info_of_thread->ready_chain = &rq[ the_thread->current_priority ];
+  sched_info_of_thread->ready_chain =
+    &ready_queues[ the_thread->current_priority ];
 
   _Priority_bit_map_Initialize_information(
     &sched_info_of_thread->Priority_map,




More information about the vc mailing list