summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/schedulersimplesmp.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-08 11:49:15 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-20 10:14:04 +0200
commitaea4a919933d721931f65d81391bf2b13b0f79aa (patch)
tree787ad270058fed0126761404a7bc0541fade95ce /cpukit/score/include/rtems/score/schedulersimplesmp.h
parentsmp: _Scheduler_simple_smp_Allocate_processor() (diff)
downloadrtems-aea4a919933d721931f65d81391bf2b13b0f79aa.tar.bz2
smp: Optimize Simple SMP scheduler
Add Thread_Control::is_in_the_air field if configured for SMP. This helps to simplify the extract operation and avoids superfluous inter-processor interrupts. Move the processor allocation step into the enqueue operation. Add and use _Scheduler_simple_smp_Get_highest_ready(). Add and use _Scheduler_SMP_Get_lowest_scheduled().
Diffstat (limited to 'cpukit/score/include/rtems/score/schedulersimplesmp.h')
-rw-r--r--cpukit/score/include/rtems/score/schedulersimplesmp.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/cpukit/score/include/rtems/score/schedulersimplesmp.h b/cpukit/score/include/rtems/score/schedulersimplesmp.h
index f62068a8af..7d29dda366 100644
--- a/cpukit/score/include/rtems/score/schedulersimplesmp.h
+++ b/cpukit/score/include/rtems/score/schedulersimplesmp.h
@@ -57,7 +57,7 @@ extern "C" {
_Scheduler_simple_smp_Initialize, \
_Scheduler_simple_smp_Schedule, \
_Scheduler_simple_smp_Yield, \
- _Scheduler_simple_smp_Extract, \
+ _Scheduler_simple_smp_Block, \
_Scheduler_simple_smp_Enqueue_priority_fifo, \
_Scheduler_default_Allocate, \
_Scheduler_default_Free, \
@@ -73,6 +73,8 @@ extern "C" {
void _Scheduler_simple_smp_Initialize( void );
+void _Scheduler_simple_smp_Block( Thread_Control *thread );
+
void _Scheduler_simple_smp_Enqueue_priority_fifo( Thread_Control *thread );
void _Scheduler_simple_smp_Enqueue_priority_lifo( Thread_Control *thread );