summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/scheduler.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-10-13 08:57:29 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-11-02 10:05:43 +0100
commit913864c0b85c9e94140515a44e79d13e999ff9a2 (patch)
tree2bca1b18a07972948290afee551bda967c452185 /cpukit/score/src/scheduler.c
parentscore: Yield support for new SMP helping protocol (diff)
downloadrtems-913864c0b85c9e94140515a44e79d13e999ff9a2.tar.bz2
score: Use scheduler instance specific locks
Update #2556.
Diffstat (limited to 'cpukit/score/src/scheduler.c')
-rw-r--r--cpukit/score/src/scheduler.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/cpukit/score/src/scheduler.c b/cpukit/score/src/scheduler.c
index e7854e1361..e5b9688faf 100644
--- a/cpukit/score/src/scheduler.c
+++ b/cpukit/score/src/scheduler.c
@@ -20,16 +20,24 @@
#include <rtems/score/schedulerimpl.h>
-ISR_LOCK_DEFINE( , _Scheduler_Lock, "Scheduler" )
-
void _Scheduler_Handler_initialization(void)
{
- size_t n = _Scheduler_Count;
+ size_t n;
size_t i;
+ n = _Scheduler_Count;
+
for ( i = 0 ; i < n ; ++i ) {
- const Scheduler_Control *scheduler = &_Scheduler_Table[ i ];
+ const Scheduler_Control *scheduler;
+#if defined(RTEMS_SMP)
+ Scheduler_Context *context;
+#endif
+ scheduler = &_Scheduler_Table[ i ];
+#if defined(RTEMS_SMP)
+ context = _Scheduler_Get_context( scheduler );
+#endif
+ _ISR_lock_Initialize( &context->Lock, "Scheduler" );
( *scheduler->Operations.initialize )( scheduler );
}
}