summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-09 13:34:18 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-20 10:14:03 +0200
commitf20b3d568da270e603a27699b6707643a3e7e8ad (patch)
treed3b6320a024f6306a72296cfabe3e72842dcf4fc
parentscore: Add _Scheduler_priority_Get_scheduler_info (diff)
downloadrtems-f20b3d568da270e603a27699b6707643a3e7e8ad.tar.bz2
score: Add _Scheduler_priority_Get_ready_queues()
Add and use _Scheduler_priority_Get_ready_queues()
-rw-r--r--cpukit/score/include/rtems/score/schedulerpriorityimpl.h13
-rw-r--r--cpukit/score/src/schedulerpriorityupdate.c7
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 7400e58734..0fbece6460 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 1935e137f1..de3f02615c 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,